Hi all,
As of some of the observations I had with Anjana while trying to resolve
issue causing Linkage errors with jaxb, we figured out follows regarding
the $subject.
*Observations:*
1. If we remove jaxb form bundles.info file, still the server starts
without any difference.
2. Current jaxb orbit bundle has following pom.xml file.
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.2.5</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-xjc</artifactId>
<version>2.2.5</version>
</dependency>
<!--dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.2.6</version>
<optional>true</optional>
<exclusions>
<exclusion>
<groupId>javax.xml.stream</groupId>
<artifactId>stax-api</artifactId>
</exclusion>
</exclusions>
</dependency-->
<Export-Package>
com.sun.*,
org.relaxng.*,
org.kohsuke.*,
</Export-Package>
In here since the jaxb-api is commented out those packages are retrieved
from jdk (added to launch.ini) . So the effective version of jaxb-api for
java 1.6.0_33 is 2.1.10 as of one of my previous mails. But jaxb-impl is
still there and those packages are exported from jaxb orbit bundle.
3. Carbon has been running for more than 1 month without any complains
since the jaxb version upgrade except for this linkage error problem.
i.e. since jaxb-api is loaded from JVM, it gives linkage error when
unmarshaller is called with a bundle loaded
javax.xml.stream.XMLStreamReader class object
*Conclusions:
*
Catch in here is that jaxb-api is loaded form JVM. Therefore all what it
consumes are also should be loaded from JVM as of the Java class loading
mechanism, unless equinox does some tweaks on this. If that's the case
jaxb-impl should also be loaded from JVM. @Pradeep can you please verify
this?
*If we assume that's the case,* it implies exported packages in jaxb-impl
under jaxb bundle are not used by JVM loaded jaxb-api. That's why carbon
starts even without jaxb orbit bundle.
In that case, effective jaxb version running at current carbon builds is
JVM dependant and for java 1.6.0_33 it's jaxb 2.1.10.
*Actions we can take:*
If that's the case we can safely revert back to previous jaxb orbit bundle
(2.1.7.wso2v1) given that current jaxb bundle has been not effectively used
and the used jaxb version for last month was JVM shipped jaxb (2.1.10 for
java 1.6.0_33)
Shall we revert back to jaxb 2.1.7.wso2v1 orbit bundle from current jaxb
bundle (2.2.5.wso2v1) ?
--
Chethiya Abeysinghe
Software Engineer; WSO2, Inc.; http://wso2.com/
email: chethiya at wso2.com <[email protected]>
blog: chethiya3000.blogspot.com
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev