geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kevan Miller (JIRA)" <>
Subject [jira] [Commented] (GERONIMO-6111) geronimo-tomcat6-javaee5-2.1.7 does not start in 64 bit Platform when using JAVA 7
Date Tue, 16 Aug 2011 12:05:27 GMT


Kevan Miller commented on GERONIMO-6111:

Thanks Kavithia. 

This is almost certainly a JAXB bug. provides a bit more information.
I didn't find a concrete bug report for the issue, but there is probably one, somewhere...

IIUC, CollisionCheckStack is using System.identifyHashCode() and %'ing (remainder operator)
by the array size. Since identityHashCode() can be negative, bad things can happen (like ArrayIndexOutOfBoundsException).

Hopefully, there's an updated version of JAXB. Anybody willing to investigate?

> geronimo-tomcat6-javaee5-2.1.7 does not start in 64 bit Platform when using JAVA 7 
> -----------------------------------------------------------------------------------
>                 Key: GERONIMO-6111
>                 URL:
>             Project: Geronimo
>          Issue Type: Bug
>      Security Level: public(Regular issues) 
>          Components: geronimo-maven-plugin
>    Affects Versions: 2.1.7
>         Environment: Windows AMD64
>            Reporter: Kavitha Varadarajan
> Problem recreation Steps:
> 1) Download Geronimo version geronimo-tomcat6-javaee5-2.1.7 from
> 2) set JAVA_HOME to the jvm you want to test 
> 3) run gsh geronimo/start-server
> this results in ArrayOutofBounds Exception..Here is the call Stack
> java.lang.ArrayIndexOutOfBoundsException: Array index out of range: -2
> 		 at com.sun.xml.bind.v2.util.CollisionCheckStack.findDuplicate(
> 		 at com.sun.xml.bind.v2.util.CollisionCheckStack.push(
> 		 at com.sun.xml.bind.v2.runtime.XMLSerializer.pushObject(
> 		 at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
> 		 at
> 		 at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(
> 		 at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(
> 		 at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(
> 		 at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(
> 		 at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(
> 		 at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(
> 		 at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(
> 		 at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(
> 		 at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(
> 		 at org.apache.geronimo.system.configuration.AttributesXmlUtil.writeAttribute(
> 		 at org.apache.geronimo.system.configuration.AttributesXmlUtil.extractAttributeValue(
> 		 at org.apache.geronimo.system.configuration.GBeanOverride.<init>(
> 		 at org.apache.geronimo.system.configuration.ConfigurationOverride.<init>(
> 		 at org.apache.geronimo.system.configuration.ServerOverride.<init>(
> 		 at
> 		 at org.apache.geronimo.system.configuration.LocalAttributeManager.load(
> 		 at org.apache.geronimo.system.configuration.LocalAttributeManager.doStart(
> 		 at org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(
> 		 at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(
> 		 at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(
> 		 at org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(
> 		 at org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(
> 		 at org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(
> 		 at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(
> 		 at org.apache.geronimo.kernel.config.ConfigurationUtil.loadBootstrapConfiguration(
> 		 at org.apache.geronimo.kernel.config.ConfigurationUtil.loadBootstrapConfiguration(
> 		 at org.apache.geronimo.kernel.util.MainConfigurationBootstrapper.loadBootConfiguration(
> 		 at org.apache.geronimo.kernel.util.MainConfigurationBootstrapper.getMain(
> 		 at org.apache.geronimo.kernel.util.MainConfigurationBootstrapper.main(
> 		 at org.apache.geronimo.cli.AbstractCLI.executeMain(
> Analysis:
> Irrespective of the JAVA 7 build we specify in the JAVA_HOME, geronimo uses the JAXB-impl.jar/jaxb-xjc.jar
that is shipped along with geronimo, I confirmed it tracing the classloading. JAXB jar used
by geronimo for serialization is from  geronimo-bin/repository/com/sun/xml/bind/jaxb-impl/2.0.5/jaxb-impl-2.0.5.jar
. This is a very old version of JAXB, and upon search it is evident that this
> version of JAXB has issues w.r.t 64 bit platform. Here is a related issue We could trace
in JAXB forum 
> IUC, CollisionCheckStack is using System.identifyHashCode() and %'ing (remainder operator)
by the array size. Since identityHashCode() can be negative, bad things can happen
> Problem is that Apache geronimo is using very old JAXB (2.0.5), which has a bug listed
above. Can you move it to use updated JAXB ?
> Please let me know if you need more information.
> Thanks!

This message is automatically generated by JIRA.
For more information on JIRA, see:


View raw message