Thanks Martin.
It looks like I have an integration defect to track down.
Regards
Benjamin
From: Martin Kouba <mkouba(a)redhat.com>
To: Benjamin Confino/UK/IBM@IBMGB, weld-dev(a)lists.jboss.org,
Cc: Emily Jiang/UK/IBM@IBMGB, Steven Schader <schader(a)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#_be...
Martin
[1]
https://github.com/weld/api/blob/master/weld-spi/src/main/java/org/jboss/...
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
GREP BeanIdentifierIndex [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
GREP BeanIdentifierIndex [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(a)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