[ https://issues.apache.org/jira/browse/GERONIMO-6111?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13085649#comment-13085649 ]
Kevan Miller commented on GERONIMO-6111: ---------------------------------------- Thanks Kavithia. This is almost certainly a JAXB bug. http://www.java.net/node/661561 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: https://issues.apache.org/jira/browse/GERONIMO-6111 > 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 > http://geronimo.apache.org/ > 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(CollisionCheckStack.java:112) > at > com.sun.xml.bind.v2.util.CollisionCheckStack.push(CollisionCheckStack.java:53) > at > com.sun.xml.bind.v2.runtime.XMLSerializer.pushObject(XMLSerializer.java:471) > at > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:574) > at > com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:113) > at > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:98) > at > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:127) > at > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:244) > at > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:251) > at > com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:33) > at > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:461) > at > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:292) > at > com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:221) > at > javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:96) > at > org.apache.geronimo.system.configuration.AttributesXmlUtil.writeAttribute(AttributesXmlUtil.java:71) > at > org.apache.geronimo.system.configuration.AttributesXmlUtil.extractAttributeValue(AttributesXmlUtil.java:75) > at > org.apache.geronimo.system.configuration.GBeanOverride.<init>(GBeanOverride.java:197) > at > org.apache.geronimo.system.configuration.ConfigurationOverride.<init>(ConfigurationOverride.java:79) > at > org.apache.geronimo.system.configuration.ServerOverride.<init>(ServerOverride.java:42) > at > org.apache.geronimo.system.configuration.LocalAttributeManager.read(LocalAttributeManager.java:354) > at > org.apache.geronimo.system.configuration.LocalAttributeManager.load(LocalAttributeManager.java:334) > at > org.apache.geronimo.system.configuration.LocalAttributeManager.doStart(LocalAttributeManager.java:527) > at > org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:998) > at > org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:268) > at > org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102) > at > org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:124) > at > org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:555) > at > org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:379) > at > org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:456) > at > org.apache.geronimo.kernel.config.ConfigurationUtil.loadBootstrapConfiguration(ConfigurationUtil.java:208) > at > org.apache.geronimo.kernel.config.ConfigurationUtil.loadBootstrapConfiguration(ConfigurationUtil.java:167) > at > org.apache.geronimo.kernel.util.MainConfigurationBootstrapper.loadBootConfiguration(MainConfigurationBootstrapper.java:84) > at > org.apache.geronimo.kernel.util.MainConfigurationBootstrapper.getMain(MainConfigurationBootstrapper.java:57) > at > org.apache.geronimo.kernel.util.MainConfigurationBootstrapper.main(MainConfigurationBootstrapper.java:38) > at > org.apache.geronimo.cli.AbstractCLI.executeMain(AbstractCLI.java:67) > 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 > http://www.java.net/node/661561 > 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: http://www.atlassian.com/software/jira