Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-2330

JBossMarshaller uses wrong class resolver after stop/start

    Details

    • Steps to Reproduce:
      Hide

      Start two EAP 6 instances in a cluster.
      Deploy two <distributable/> war applications to both instances.

      Redeploy one of the applications
      (this stops the cache for that application, but not the Infinispan subsystem since the other application is still deployed, then starts the same cache again).

      Expected result: no errors
      Actual result: the wrong class resolver is used, resulting in an error:
      WARN [org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher] (OOB-19,null) Problems unmarshalling remote command from byte buffer: java.lang.ClassNotFoundException: org.infinispan.util.ImmutableListCopy from [Module "org.jboss.as.clustering.jgroups:main" from local module loader @35549f94 (roots: /home/dereed/jboss62/modules)]

      Show
      Start two EAP 6 instances in a cluster. Deploy two <distributable/> war applications to both instances. Redeploy one of the applications (this stops the cache for that application, but not the Infinispan subsystem since the other application is still deployed, then starts the same cache again). Expected result: no errors Actual result: the wrong class resolver is used, resulting in an error: WARN [org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher] (OOB-19,null) Problems unmarshalling remote command from byte buffer: java.lang.ClassNotFoundException: org.infinispan.util.ImmutableListCopy from [Module "org.jboss.as.clustering.jgroups:main" from local module loader @35549f94 (roots: /home/dereed/jboss62/modules)]

      Description

      org.infinispan.marshall.jboss.JBossMarshaller initializes the classResolver in its inject() method and clears it in its stop() method.

      If the cache is stopped and restarted (for example when redeploying a clustered web app in EAP), the wrong class resolver is used.

      Either the classResolver should not be removed in stop() (testing with it removed did not show any class leaking issues), or it should be reset in start().

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  galder.zamarreno Galder ZamarreƱo
                  Reporter:
                  dereed Dennis Reed
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  5 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: