That would be great. Thanks! Volker
On Fri, Oct 18, 2013 at 4:54 PM, Erik Joelsson <erik.joels...@oracle.com> wrote: > Hello Volker, > > Looks good to me. I can sponsor the change. > > /Erik > > > On 2013-10-18 16:41, Volker Simonis wrote: >> >> Hi, >> >> could somebody please review and sponsor (i.e. push) the following small >> fix: >> >> http://cr.openjdk.java.net/~simonis/webrevs/8026874/ >> https://bugs.openjdk.java.net/browse/JDK-8026874 >> >> >> During the JAXWS build the newly built JAXP classes should be in the >> bootclasspath because the JAXWS build relies on internal JAXP >> implementation features which may be not fullfilled in the boot JDK. >> Currently the newly generated JAXP classes are only in the classpath >> which leads to the following build error if building with a >> non-OpenJDK based boot JDK: >> >> >> /usr/work/d046063/OpenJDK/ppc-aix-port/stage_0014_0015/jaxws/src/share/jaxws_classes/com/sun/xml/internal/messaging/saaj/soap/SOAPDocumentImpl.java:106: >> error: incompatible types: SOAPDocumentImpl cannot be converted to >> CoreDocumentImpl >> return new SOAPDocumentFragment(this); >> >> This is because in the OpenJDK JAXP implementation DocumentImpl >> extends CoreDocumentImpl - both in the package >> com.sun.org.apache.xerces.internal.dom. More detailed, the class >> defintions look as follows: >> >> package com.sun.org.apache.xerces.internal.dom; >> >> public class DocumentImpl >> extends CoreDocumentImpl >> implements DocumentTraversal, DocumentEvent, DocumentRange { >> >> public class CoreDocumentImpl >> extends ParentNode >> implements Document { >> >> Other Java7 compliant VMs (i.e. IBM J9) can implement these internal >> classes differently: >> >> package com.sun.org.apache.xerces.internal.dom; >> >> public class CoreDocumentImpl extends >> org.apache.xerces.dom.CoreDocumentImpl { >> >> class DocumentImpl extends org.apache.xerces.dom.DocumentImpl >> >> >> This leads to problems during the compilation of JAXWS if this is done >> with a non-OpenJDK boot JDK because some JAXWS class require that >> DocumentImpl is derived from CoreDocumentImpl. E.g.: >> >> package com.sun.xml.internal.messaging.saaj.soap; >> import com.sun.org.apache.xerces.internal.dom.DocumentImpl; >> >> public class SOAPDocumentImpl extends DocumentImpl implements SOAPDocument >> { >> ... >> public DocumentFragment createDocumentFragment() { >> return new SOAPDocumentFragment(this); >> } >> ... >> } >> >> >> package com.sun.xml.internal.messaging.saaj.soap; >> import com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl; >> import com.sun.org.apache.xerces.internal.dom.DocumentFragmentImpl; >> >> public class SOAPDocumentFragment extends DocumentFragmentImpl { >> >> public SOAPDocumentFragment(CoreDocumentImpl ownerDoc) { >> super(ownerDoc); >> } >> >> public SOAPDocumentFragment() { >> super(); >> } >> >> } >> >> Therefore building with an arbitrary Java 7 compliant JDK can only >> work if we prepend the newly compiled JAXP classes to the boot >> classpath during the compilation of the JAXWS classes. Currently >> however they are only in the classpath which doesn't help because in >> the case described below the JAXP implementation of the boot JDK will >> be used which doesn't fullfill the requirements of the OpenJDKs JAXWS >> classes. > >