4 Replies Latest reply on Apr 28, 2008 5:17 AM by Kevin Conner

    Invalid usage of undeployed classloader...

    Kent Peterson Newbie

      Have an esb-flow with some actions deployed in the esb-server. I successfully redeploy some arbitrary number
      of times but sooner or later I'll get an error indicating "Invalid usage of undeployed classloader".

      Anyone experienced this and/or have an explanation why this error occurs?

      Below a stacktrace written when trying to execute the flow after a redeploy.

      2008-04-25 16:12:00,966 WARN [pool-72-thread-1] [org.jboss.soa.esb.listeners.message.ActionProcessingPipeline] Unexpected exception notifying processor of pipeline failure
      java.lang.IllegalStateException: Invalid usage of undeployed classloader
       at org.jboss.mx.loading.RepositoryClassLoader.findClass(RepositoryClassLoader.java:625)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
       at org.jboss.mx.loading.RepositoryClassLoader.loadClassImpl(RepositoryClassLoader.java:467)
       at org.jboss.mx.loading.RepositoryClassLoader.loadClass(RepositoryClassLoader.java:408)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
       at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
       at ownNamespace.OwnActionClass.ownMethod(OwnActionClass.java:94)
       at ownNamespace.OwnActionClass.processException(OwnActionClass.java:70)
       at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.notifyException(ActionProcessingPipeline.java:582)
       at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(ActionProcessingPipeline.java:330)
       at org.jboss.soa.esb.listeners.message.MessageAwareListener$TransactionalRunner.run(MessageAwareListener.java:566)
       at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
       at java.lang.Thread.run(Thread.java:595)

        • 1. Re: Invalid usage of undeployed classloader...
          Kent Peterson Newbie

          If I stop the server, clean up the work and tmp directories and then start the server again I'll get rid of the problem (for a while - until it shows up again).

          • 2. Re: Invalid usage of undeployed classloader...
            Kevin Conner Master

            Did the service shutdown cleanly from the previous deployment? Any errors in the log?

            Also, can you describe what this service is doing and let us know which version of the ESB you are using?

            • 3. Re: Invalid usage of undeployed classloader...
              Kent Peterson Newbie

              Cannot see anything strange in the logs when redepolying so
              from this point of view the redeploy looks ok.

              I'm using the ESB "JBESB_4_2_1_GA_CP1" version.

              The service has two structural blocks of which one part consist of actions
              executing in the process phase doing some transformations (informat->xml,
              xml->pojo and pojo->outFormat), payloadlocation activities, schemavalidation
              etc and one part consiting of actions executing in the outcome phase
              (processSuccess and processException) where the message is prepared for file
              transfer, email feedback etc. and finally the payload is delivered by ftp
              and a feedback message is sent by email (both ftp and email is handled by
              the existing notifiers (NotifyFTP and NotifyEmail).

              The exception can happen in any action but so far (and as far as I remember)
              only in the outcome phase.

              Some of the actions used in the flow are packaged in my own esb-archive and
              some are packaged in 3:rd party archives or own gen/common-like esb-archives.
              Also have some inheritance to classes in jboss archives and own gen/common-
              like esb-archives.

              • 4. Re: Invalid usage of undeployed classloader...
                Kevin Conner Master

                There are two possibilities that I am aware of.

                The first is that the listener was unable to cleanly bring down the executor and, if so, you should see the following message, 'Tasks remain active in executor'.

                The second is that the action class has a reference to an object from a classloader that has been undeployed. If this is the case then the code reference by the following may shed some light on the matter.

                at ownNamespace.OwnActionClass.ownMethod(OwnActionClass.java:94)

                Is this something that you can provide a simple test case for?