Re: [weld-dev] Unique BeanIdentifierIndex every time I restart a server
Thanks Martin. It looks like I have an integration defect to track down. Regards Benjamin From: Martin Kouba <mko...@redhat.com> To: Benjamin Confino/UK/IBM@IBMGB, weld-dev@lists.jboss.org, Cc: Emily Jiang/UK/IBM@IBMGB, Steven Schader <scha...@us.ibm.com> Date: 21/10/2016 08:33 Subject: Re: [weld-dev] Unique BeanIdentifierIndex every time I restart a server Hi Benjamin, it looks like an integration issue. The index hash should be the same unless an ID of a session/conversation scoped bean changes. Its value is computed using java.util.Arrays.hashCode(BeanIdentifier[]). Note that BeanIdentifier.hashCode() is always based on the String representation of the ID. In you case, I can see the difference in: org.eclipse.osgi.internal.loader.EquinoxClassLoader@d6318459 org.eclipse.osgi.internal.loader.EquinoxClassLoader@b3a3f568 It seems the BeanDeploymentArchive.getId() is different between deployments which violates the Weld SPI contract: "The identifier must be consistent between multiple occurrences of this deployment." [1] It's also possible to disable this optimization: http://docs.jboss.org/weld/reference/latest/en-US/html/configure.html#_bean_identifier_index_optimization Martin [1] https://github.com/weld/api/blob/master/weld-spi/src/main/java/org/jboss/weld/bootstrap/spi/BeanDeploymentArchive.java Dne 20.10.2016 v 18:22 Benjamin Confino napsal(a): > Hello. > > I've been investigating a bug relating to session failover and I've > noticed that my BeanIdentifierIndexhas a different hash every time I > start and stop the server. This is consistent across every app I tried. > > For example: > > Upon starting the server I see my debug output > > GREPBeanIdentifierIndex [hash=591986009, indexed=3] > 0: > WELD%AbstractBuiltInBean%invalidBeansXml#com.ibm.ws.transaction.cdi_1.0.15.20161018-1920.additionalClasses%HttpSession > > 1: > WELD%AbstractBuiltInBean%invalidBeansXml#invalidBeansXml.war%HttpSession > 2: > WELD%AbstractBuiltInBean%invalidBeansXml#org.eclipse.osgi.internal.loader.EquinoxClassLoader@d6318459[com.ibm.ws.org.jboss.weld.2.4.0:1.0.15.20161018-1920(id=108)].additionalClasses%HttpSession > > > I stop the server, and start it again > > GREPBeanIdentifierIndex [hash=-375657379, indexed=3] > 0: > WELD%AbstractBuiltInBean%invalidBeansXml#com.ibm.ws.transaction.cdi_1.0.15.20161018-1920.additionalClasses%HttpSession > > 1: > WELD%AbstractBuiltInBean%invalidBeansXml#invalidBeansXml.war%HttpSession > 2: > WELD%AbstractBuiltInBean%invalidBeansXml#org.eclipse.osgi.internal.loader.EquinoxClassLoader@b3a3f568[com.ibm.ws.org.jboss.weld.2.4.0:1.0.15.20161018-1920(id=108)].additionalClasses%HttpSession > > > Same three classes but the hash is completely different. > > My question is simple. Is this the expected behaviour or is this a sign > that something's gone wrong? > > Regards > Benjamin > Unless stated otherwise above: > IBM United Kingdom Limited - Registered in England and Wales with number > 741598. > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU > > > ___ > weld-dev mailing list > weld-dev@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/weld-dev > -- Martin Kouba Software Engineer Red Hat, Czech Republic Unless stated otherwise above: IBM United Kingdom Limited - Registered in England and Wales with number 741598. Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU ___ weld-dev mailing list weld-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/weld-dev
Re: [weld-dev] Unique BeanIdentifierIndex every time I restart a server
Hi Benjamin, it looks like an integration issue. The index hash should be the same unless an ID of a session/conversation scoped bean changes. Its value is computed using java.util.Arrays.hashCode(BeanIdentifier[]). Note that BeanIdentifier.hashCode() is always based on the String representation of the ID. In you case, I can see the difference in: org.eclipse.osgi.internal.loader.EquinoxClassLoader@d6318459 org.eclipse.osgi.internal.loader.EquinoxClassLoader@b3a3f568 It seems the BeanDeploymentArchive.getId() is different between deployments which violates the Weld SPI contract: "The identifier must be consistent between multiple occurrences of this deployment." [1] It's also possible to disable this optimization: http://docs.jboss.org/weld/reference/latest/en-US/html/configure.html#_bean_identifier_index_optimization Martin [1] https://github.com/weld/api/blob/master/weld-spi/src/main/java/org/jboss/weld/bootstrap/spi/BeanDeploymentArchive.java Dne 20.10.2016 v 18:22 Benjamin Confino napsal(a): > Hello. > > I've been investigating a bug relating to session failover and I've > noticed that my BeanIdentifierIndexhas a different hash every time I > start and stop the server. This is consistent across every app I tried. > > For example: > > Upon starting the server I see my debug output > > GREPBeanIdentifierIndex [hash=591986009, indexed=3] > 0: > WELD%AbstractBuiltInBean%invalidBeansXml#com.ibm.ws.transaction.cdi_1.0.15.20161018-1920.additionalClasses%HttpSession > > 1: > WELD%AbstractBuiltInBean%invalidBeansXml#invalidBeansXml.war%HttpSession > 2: > WELD%AbstractBuiltInBean%invalidBeansXml#org.eclipse.osgi.internal.loader.EquinoxClassLoader@d6318459[com.ibm.ws.org.jboss.weld.2.4.0:1.0.15.20161018-1920(id=108)].additionalClasses%HttpSession > > > I stop the server, and start it again > > GREPBeanIdentifierIndex [hash=-375657379, indexed=3] > 0: > WELD%AbstractBuiltInBean%invalidBeansXml#com.ibm.ws.transaction.cdi_1.0.15.20161018-1920.additionalClasses%HttpSession > > 1: > WELD%AbstractBuiltInBean%invalidBeansXml#invalidBeansXml.war%HttpSession > 2: > WELD%AbstractBuiltInBean%invalidBeansXml#org.eclipse.osgi.internal.loader.EquinoxClassLoader@b3a3f568[com.ibm.ws.org.jboss.weld.2.4.0:1.0.15.20161018-1920(id=108)].additionalClasses%HttpSession > > > Same three classes but the hash is completely different. > > My question is simple. Is this the expected behaviour or is this a sign > that something's gone wrong? > > Regards > Benjamin > Unless stated otherwise above: > IBM United Kingdom Limited - Registered in England and Wales with number > 741598. > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU > > > ___ > weld-dev mailing list > weld-dev@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/weld-dev > -- Martin Kouba Software Engineer Red Hat, Czech Republic ___ weld-dev mailing list weld-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/weld-dev
[weld-dev] Unique BeanIdentifierIndex every time I restart a server
Hello. I've been investigating a bug relating to session failover and I've noticed that my BeanIdentifierIndex has a different hash every time I start and stop the server. This is consistent across every app I tried. For example: Upon starting the server I see my debug output GREPBeanIdentifierIndex [hash=591986009, indexed=3] 0: WELD%AbstractBuiltInBean%invalidBeansXml#com.ibm.ws.transaction.cdi_1.0.15.20161018-1920.additionalClasses%HttpSession 1: WELD%AbstractBuiltInBean%invalidBeansXml#invalidBeansXml.war%HttpSession 2: WELD%AbstractBuiltInBean%invalidBeansXml#org.eclipse.osgi.internal.loader.EquinoxClassLoader@d6318459[com.ibm.ws.org.jboss.weld.2.4.0:1.0.15.20161018-1920(id=108)].additionalClasses%HttpSession I stop the server, and start it again GREPBeanIdentifierIndex [hash=-375657379, indexed=3] 0: WELD%AbstractBuiltInBean%invalidBeansXml#com.ibm.ws.transaction.cdi_1.0.15.20161018-1920.additionalClasses%HttpSession 1: WELD%AbstractBuiltInBean%invalidBeansXml#invalidBeansXml.war%HttpSession 2: WELD%AbstractBuiltInBean%invalidBeansXml#org.eclipse.osgi.internal.loader.EquinoxClassLoader@b3a3f568[com.ibm.ws.org.jboss.weld.2.4.0:1.0.15.20161018-1920(id=108)].additionalClasses%HttpSession Same three classes but the hash is completely different. My question is simple. Is this the expected behaviour or is this a sign that something's gone wrong? Regards Benjamin Unless stated otherwise above: IBM United Kingdom Limited - Registered in England and Wales with number 741598. Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU ___ weld-dev mailing list weld-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/weld-dev