Enjoying talking to myself. ;)
This looks like another variant on the problem discussed at
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4126757#... .
FieldBasedSessionPassivationTestCase.testRedeploy() tests redeploying a war and still
being able to access sessions. The sessions are passivated to disk on undeploy and after
redeploy can be activated.
Problem is JBC isn't handling the classloader very well during activation. It has
logic to determine the correct classloader to use for deserialization based on the FQN of
the node being deserialized. But that is broken in the case of deserializing passivated
nodes. The effect is that JBC is using the cache's classloader to deserialize rather
than the TCCL. This results in hitting the internal JVM caching problem Adrian was talking
about on the other thread.
I don't really want to support retrieving sessions from disk following a cluster
restart anyway, so this test is testing something that won't exist in CR1. But I
don't want to disable the test now since it has highlighted an important problem.
I'll see if I can rearrange how test execution happens so this failure doesn't
cause 30+ other tests to fail -- one failure is enough.
I'll add a test to the JBC testsuite for the underlying issue, and for CR1 will add a
couple general classloading tests to the AS to test what happens when the first usage of a
type following a redeploy is via deserialization.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4127222#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...