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

JBossMarshaller uses wrong class resolver after stop/start

    XMLWordPrintable

Details

    • 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().

      Attachments

        Issue Links

          Activity

            People

              rh-ee-galder Galder ZamarreƱo
              rhn-support-dereed Dennis Reed
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: