3 Replies Latest reply on Jun 11, 2008 11:45 AM by kabirkhan

    AOP and CL warning at undeploy

    alesj

      When stopping server with previously deployed Seam app, I get this nasty warning:

      15:09:13,875 WARN [InjectInterceptorsFactory] WEIRDNESS IN AOP: advisor org.jboss.ejb3.aop.ExtendedManagedObjectAdvisor@1f79045
      15:09:13,890 WARN [InjectInterceptorsFactory] WEIRDNESS IN AOP: advisor org.jboss.ejb3.aop.ExtendedManagedObjectAdvisor@1f79045
      15:09:13,906 WARN [AspectDeployer] Error undeploying xml ejb3-interceptors-aop.xml from org.jboss.aop.AspectManager@1e0e650
      java.lang.RuntimeException: java.lang.IllegalStateException: BaseClassLoader@3daebc{vfszip:/C:/projects/jboss5/trunk/build/output/jboss-5.0.0.CR1/server/default/deploy/jboss-seam-numberguess.ear} classLoader is not connected to a domain (probably und
      eployed?) for class org.jboss.ejb3.annotation.SecurityDomain
       at org.jboss.aop.pointcut.Util.matchesClassExpr(Util.java:137)
       at org.jboss.aop.pointcut.MethodMatcher.matchesClass(MethodMatcher.java:264)
       at org.jboss.aop.pointcut.MethodMatcher.matches(MethodMatcher.java:106)
       at org.jboss.aop.pointcut.MethodMatcher.visit(MethodMatcher.java:100)
       at org.jboss.aop.pointcut.ast.ASTMethod.jjtAccept(ASTMethod.java:44)
       at org.jboss.aop.pointcut.ExecutionMethodMatcher.visit(ExecutionMethodMatcher.java:58)
       at org.jboss.aop.pointcut.ast.ASTExecution.jjtAccept(ASTExecution.java:37)
       at org.jboss.aop.pointcut.MatcherHelper.visit(MatcherHelper.java:89)
       at org.jboss.aop.pointcut.MatcherHelper.matches(MatcherHelper.java:83)
       at org.jboss.aop.pointcut.PointcutExpression.matchesExecution(PointcutExpression.java:119)
       at org.jboss.aop.Advisor.resolveMethodPointcut(Advisor.java:956)
       at org.jboss.aop.ClassAdvisor.resolvePointcuts(ClassAdvisor.java:699)
       at org.jboss.aop.ClassAdvisor.updateInterceptorChains(ClassAdvisor.java:628)
       at org.jboss.aop.ClassAdvisor.doRebuildInterceptors(ClassAdvisor.java:991)
       at org.jboss.aop.ClassAdvisor$RebuildInterceptorsAction$2.rebuildInterceptors(ClassAdvisor.java:2186)
       at org.jboss.aop.ClassAdvisor.rebuildInterceptors(ClassAdvisor.java:971)
       at org.jboss.aop.ClassAdvisor.removeAdviceBindings(ClassAdvisor.java:426)
       at org.jboss.aop.AspectManager.removeBindings(AspectManager.java:1422)
       at org.jboss.aop.Domain.removeBindings(Domain.java:198)
       at org.jboss.aop.AspectXmlLoader.bulkUndeploy(AspectXmlLoader.java:1220)
       at org.jboss.aop.AspectXmlLoader.undeployDomain(AspectXmlLoader.java:1091)
       at org.jboss.aop.AspectXmlLoader.undeployTopElements(AspectXmlLoader.java:1305)
       at org.jboss.aop.AspectXmlLoader.undeployXML(AspectXmlLoader.java:1209)
       at org.jboss.aop.deployers.AspectDeployer.undeployXml(AspectDeployer.java:205)
       at org.jboss.aop.deployers.AspectDeployer.undeployXml(AspectDeployer.java:189)
       at org.jboss.aop.deployers.AspectDeployer.undeploy(AspectDeployer.java:134)
       at org.jboss.deployers.vfs.spi.deployer.AbstractVFSRealDeployer.internalUndeploy(AbstractVFSRealDeployer.java:54)
       at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.undeploy(AbstractRealDeployer.java:112)
       at org.jboss.deployers.plugins.deployers.DeployerWrapper.undeploy(DeployerWrapper.java:197)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.doUninstallParentLast(DeployersImpl.java:1189)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.uninstall(DeployersImpl.java:1144)
       at org.jboss.dependency.plugins.AbstractControllerContext.uninstall(AbstractControllerContext.java:354)
       at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:1406)
       at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1064)
       at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:677)
       at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:455)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:510)
       at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:541)
       at org.jboss.system.server.profileservice.ProfileServiceBootstrap.unload(ProfileServiceBootstrap.java:371)
       at org.jboss.system.server.profileservice.ProfileServiceBootstrap.unloadProfile(ProfileServiceBootstrap.java:332)
       at org.jboss.system.server.profileservice.ProfileServiceBootstrap.shutdown(ProfileServiceBootstrap.java:160)
       at org.jboss.bootstrap.AbstractServerImpl.shutdownServer(AbstractServerImpl.java:508)
       at org.jboss.bootstrap.AbstractServerImpl$ShutdownHook.run(AbstractServerImpl.java:827)
      Caused by: java.lang.IllegalStateException: BaseClassLoader@3daebc{vfszip:/C:/projects/jboss5/trunk/build/output/jboss-5.0.0.CR1/server/default/deploy/jboss-seam-numberguess.ear} classLoader is not connected to a domain (probably undeployed?) for cla
      ss org.jboss.ejb3.annotation.SecurityDomain
       at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:723)
       at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:372)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
       at org.jboss.ejb3.metadata.annotation.AnnotationRepositoryToMetaData.loadClass(AnnotationRepositoryToMetaData.java:209)
       at org.jboss.ejb3.metadata.annotation.AnnotationRepositoryToMetaData.hasClassAnnotation(AnnotationRepositoryToMetaData.java:328)
       at org.jboss.aop.Advisor.hasAnnotation(Advisor.java:412)
       at org.jboss.aop.Advisor.hasAnnotation(Advisor.java:387)
       at org.jboss.aop.pointcut.Util.matchesClassExpr(Util.java:115)
       ... 42 more
      


      I also see the first two warnings at Seam app deploy.

      Test to reproduce this is:
      1) build seam
      2) build one-test -Dtest=org.jboss.test.deployers.seam.test.SeamNumberguessExampleTestCase
      3) shutdown AS

        • 1. Re: AOP and CL warning at undeploy
          kabirkhan

          From a quick glance the problem seems to stem from that the ExtendedManagedObjectAdvisor wrapping the containers are not cleaned up. When the container is stopped, the ExtendedManagedObjectAdvisor has a Set of AdviceBindings. Each AdviceBinding entry has a reference back to the affected advisors. The ExtendedManagedObjectAdvisor needs to remove itself from its bindings.

          • 2. Re: AOP and CL warning at undeploy
            kabirkhan

            Should the AnnotationRepositoryToMetaData.classLoader field not be a WeakReference?

            • 3. Re: AOP and CL warning at undeploy
              kabirkhan

              The advisors referenced by AdviceBinding are the keys of a WeakHashMap. I attached a profiler to figure out if anything is keeping a strong references to the ExtendedManagedObjectAdvisors, but could not find anything. Using the profiler to force a garbage collection between undeployment of the app and shutdown of the server gets rid of the problem.