[jboss-dev] WarAnnotationMetaDataDeployer and AOP failures
Kabir Khan
kabir.khan at jboss.com
Tue Jan 26 15:17:26 EST 2010
The AOP deployer has AopMetaDataDeployerOutput.class as an output, so I added that to the WarAnnotationMetaDataDeployer as an input. Is that the right way?
On 26 Jan 2010, at 18:39, Kabir Khan wrote:
> Flavia and I are debugging the scoped AOP test failures in AS and have found something odd going on when deploying an ear with a war with classes. Basically WarAnnotationMetaDataDeployer loads all the classes in the war [1] before the AOPDeploymentAopMetaDataDeployer has the chance to add the bindings to the aspect manager [2]. This means that the classes in the war are loaded before the bindings are added, so they do not get woven. The deployers are in the same deployer stage POST_CLASSLOADER, what is the best way to change their orders around?
>
> [1]
> Daemon System Thread [RMI TCP Connection(6)-127.0.0.1] (Suspended (breakpoint at line 69 in SuperClassesFirstWeavingStrategy))
> SuperClassesFirstWeavingStrategy.translate(AspectManager, String, ClassLoader, byte[]) line: 69
> ScopedVFSClassLoaderDomain(AspectManager).translate(String, ClassLoader, byte[]) line: 1071
> ScopedVFSClassLoaderDomain(AspectManager).transform(ClassLoader, String, Class, ProtectionDomain, byte[]) line: 1015
> AOPTransformer.aspectTransform(String, ClassLoader, Class<?>, ProtectionDomain, byte[]) line: 87
> AOPTransformer.transform(ClassLoader, String, Class<?>, ProtectionDomain, byte[]) line: 75
> TransformerManager.transform(ClassLoader, String, Class, ProtectionDomain, byte[]) line: 169
> InstrumentationImpl.transform(ClassLoader, String, Class, ProtectionDomain, byte[], boolean) line: 365
> ClassLoader.defineClass1(String, byte[], int, int, ProtectionDomain, String) line: not available [native method]
> BaseClassLoader(ClassLoader).defineClass(String, byte[], int, int, ProtectionDomain) line: 698
> BaseClassLoader.access$200(BaseClassLoader, String, byte[], int, int, ProtectionDomain) line: 64
> BaseClassLoader$2.run() line: 577
> BaseClassLoader$2.run() line: 537
> AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
> BaseClassLoader.loadClassLocally(String, boolean) line: 535
> BaseClassLoader.loadClassLocally(String) line: 512
> FilteredDelegateLoader(BaseDelegateLoader).loadClass(String) line: 134
> FilteredDelegateLoader.loadClass(String) line: 131
> ClassLoadingTask$ThreadTask.run() line: 455
> ClassLoaderManager.nextTask(Thread, ClassLoadingTask) line: 267
> ClassLoaderManager.process(Thread, ClassLoadingTask) line: 166
> ClassLoaderDomain(BaseClassLoaderDomain).loadClass(BaseClassLoader, String, boolean) line: 265
> ClassLoaderDomain(BaseClassLoaderDomain).loadClass(BaseClassLoader, String) line: 1124
> BaseClassLoader.loadClassFromDomain(String, boolean) line: 805
> BaseClassLoader.loadClass(String, boolean) line: 445
> BaseClassLoader(ClassLoader).loadClass(String) line: 250
> AnnotatedClassFilter.accepts(VirtualFile) line: 121
> AnnotatedClassFilter.visit(VirtualFile) line: 102
> WrappingVirtualFileHandlerVisitor.visit(VirtualFileHandler) line: 62
> FileSystemContext(AbstractVFSContext).visit(VirtualFileHandler, VirtualFileHandlerVisitor, boolean, boolean, boolean, boolean, VirtualFileFilter) line: 362
> FileSystemContext(AbstractVFSContext).visit(VirtualFileHandler, VirtualFileHandlerVisitor, boolean, boolean, boolean, boolean, VirtualFileFilter) line: 374
> FileSystemContext(AbstractVFSContext).visit(VirtualFileHandler, VirtualFileHandlerVisitor, boolean, boolean, boolean, boolean, VirtualFileFilter) line: 374
> FileSystemContext(AbstractVFSContext).visit(VirtualFileHandler, VirtualFileHandlerVisitor, boolean, boolean, boolean, boolean, VirtualFileFilter) line: 374
> FileSystemContext(AbstractVFSContext).visit(VirtualFileHandler, VirtualFileHandlerVisitor, boolean, boolean, boolean, boolean, VirtualFileFilter) line: 374
> FileSystemContext(AbstractVFSContext).visit(VirtualFileHandler, VirtualFileHandlerVisitor, boolean, boolean, boolean, boolean, VirtualFileFilter) line: 374
> FileSystemContext(AbstractVFSContext).visit(VirtualFileHandler, VirtualFileHandlerVisitor, boolean, boolean, boolean, boolean, VirtualFileFilter) line: 374
> FileSystemContext(AbstractVFSContext).visit(VirtualFileHandler, VirtualFileHandlerVisitor) line: 307
> VFS.visit(VirtualFile, VirtualFileVisitor) line: 438
> VirtualFile.visit(VirtualFileVisitor) line: 448
> WarAnnotationMetaDataDeployer.getClasses(VFSDeploymentUnit, VirtualFile) line: 172
> WarAnnotationMetaDataDeployer.processMetaData(VFSDeploymentUnit, List<VirtualFile>) line: 146
> WarAnnotationMetaDataDeployer.deploy(VFSDeploymentUnit) line: 125
> WarAnnotationMetaDataDeployer.deploy(DeploymentUnit) line: 78
> DeployerWrapper.deploy(DeploymentUnit) line: 179
> DeployersImpl.doDeploy(Deployer, DeploymentUnit) line: 1660
> DeployersImpl.doInstallParentFirst(Deployer, DeploymentContext) line: 1378
> DeployersImpl.doInstallParentFirst(Deployer, DeploymentContext) line: 1431
> DeployersImpl.install(ControllerContext, ControllerState, ControllerState) line: 1319
> DeploymentControllerContext(AbstractControllerContext).install(ControllerState, ControllerState) line: 378
> AbstractKernelController(AbstractController).install(ControllerContext, ControllerState, ControllerState) line: 1890
> AbstractKernelController(AbstractController).incrementState(ControllerContext, boolean) line: 1019
> AbstractKernelController(AbstractController).executeOrIncrementStateDirectly(ControllerContext, boolean) line: 1251
> AbstractKernelController(AbstractController).resolveContexts(ControllerState, ControllerState, boolean) line: 1175
> AbstractKernelController(AbstractController).resolveContexts(boolean) line: 1073
> AbstractKernelController(AbstractController).change(ControllerContext, ControllerState, boolean) line: 887
> AbstractKernelController(AbstractController).change(ControllerContext, ControllerState) line: 602
> DeployersImpl.process(List<DeploymentContext>, List<DeploymentContext>) line: 898
> MainDeployerImpl.process() line: 677
> MainDeployer.deploy(URL) line: 370
> MainDeployer.redeploy(URL) line: 277
>
>
> [2]
> Daemon System Thread [RMI TCP Connection(6)-127.0.0.1] (Suspended (breakpoint at line 146 in AspectBinding))
> AspectBinding.start() line: 146
> GeneratedMethodAccessor192.invoke(Object, Object[]) line: not available
> DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
> Method.invoke(Object, Object...) line: 597
> ReflectionUtils.invoke(Method, Object, Object[]) line: 59
> ReflectMethodInfoImpl.invoke(Object, Object[]) line: 151
> BasicMethodJoinPoint.dispatch() line: 66
> KernelControllerContextAction$JoinpointDispatchWrapper.execute() line: 257
> KernelControllerContextAction$JoinpointDispatchWrapper(ExecutionWrapper).execute(AccessControlContext) line: 47
> KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContext, ExecutionWrapper) line: 125
> KernelControllerContextAction.dispatchJoinPoint(KernelControllerContext, Joinpoint) line: 72
> StartStopLifecycleAction(LifecycleAction).installActionInternal(KernelControllerContext) line: 202
> StartStopLifecycleAction(InstallsAwareAction).installAction(KernelControllerContext) line: 54
> StartStopLifecycleAction(InstallsAwareAction).installAction(ControllerContext) line: 42
> StartStopLifecycleAction(SimpleControllerContextAction<T>).simpleInstallAction(T) line: 62
> StartStopLifecycleAction(AccessControllerContextAction<S,T>).install(ControllerContext) line: 71
> KernelControllerContextActions(AbstractControllerContextActions).install(ControllerContext, ControllerState, ControllerState) line: 51
> AbstractKernelControllerContext(AbstractControllerContext).install(ControllerState, ControllerState) line: 378
> ScopedKernelController(AbstractController).install(ControllerContext, ControllerState, ControllerState) line: 1890
> ScopedKernelController(AbstractController).incrementState(ControllerContext, boolean) line: 1019
> ScopedKernelController(AbstractController).executeOrIncrementStateDirectly(ControllerContext, boolean) line: 1251
> ScopedKernelController(AbstractController).resolveContexts(ControllerState, ControllerState, boolean) line: 1175
> ScopedKernelController(AbstractController).resolveContexts(boolean) line: 1073
> AbstractKernelController(AbstractController).resolveContexts(boolean) line: 1104
> AbstractKernelController(AbstractController).install(ControllerContext, boolean) line: 842
> AbstractKernelController(AbstractController).install(ControllerContext) line: 589
> AbstractAopMetaDataDeployer$MyBeanMetaDataDeployer.deploy(FakeComponentUnit, BeanMetaData) line: 363
> AbstractAopMetaDataDeployer$MyBeanMetaDataDeployer.access$100(AbstractAopMetaDataDeployer$MyBeanMetaDataDeployer, FakeComponentUnit, BeanMetaData) line: 329
> AOPDeploymentAopMetaDataDeployer(AbstractAopMetaDataDeployer<T>).deployBeans(VFSDeploymentUnit, AopMetaDataDeployerOutput) line: 269
> AOPDeploymentAopMetaDataDeployer(AbstractAopMetaDataDeployer<T>).deploy(VFSDeploymentUnit, T) line: 133
> AOPDeploymentAopMetaDataDeployer.deploy(VFSDeploymentUnit, AOPDeployment) line: 46
> AOPDeploymentAopMetaDataDeployer.deploy(VFSDeploymentUnit, Object) line: 36
> AOPDeploymentAopMetaDataDeployer(AbstractSimpleVFSRealDeployer<T>).deploy(DeploymentUnit, T) line: 56
> AOPDeploymentAopMetaDataDeployer(AbstractSimpleRealDeployer<T>).internalDeploy(DeploymentUnit) line: 62
> AOPDeploymentAopMetaDataDeployer(AbstractRealDeployer).deploy(DeploymentUnit) line: 55
> DeployerWrapper.deploy(DeploymentUnit) line: 179
> DeployersImpl.doDeploy(Deployer, DeploymentUnit) line: 1660
> DeployersImpl.doInstallParentFirst(Deployer, DeploymentContext) line: 1378
> DeployersImpl.doInstallParentFirst(Deployer, DeploymentContext) line: 1431
> DeployersImpl.install(ControllerContext, ControllerState, ControllerState) line: 1319
> DeploymentControllerContext(AbstractControllerContext).install(ControllerState, ControllerState) line: 378
> AbstractKernelController(AbstractController).install(ControllerContext, ControllerState, ControllerState) line: 1890
> AbstractKernelController(AbstractController).incrementState(ControllerContext, boolean) line: 1019
> AbstractKernelController(AbstractController).executeOrIncrementStateDirectly(ControllerContext, boolean) line: 1251
> AbstractKernelController(AbstractController).resolveContexts(ControllerState, ControllerState, boolean) line: 1175
> AbstractKernelController(AbstractController).resolveContexts(boolean) line: 1073
> AbstractKernelController(AbstractController).change(ControllerContext, ControllerState, boolean) line: 887
> AbstractKernelController(AbstractController).change(ControllerContext, ControllerState) line: 602
> DeployersImpl.process(List<DeploymentContext>, List<DeploymentContext>) line: 898
> MainDeployerImpl.process() line: 677
> MainDeployer.deploy(URL) line: 370
> MainDeployer.redeploy(URL) line: 277
>
>
> _______________________________________________
> jboss-development mailing list
> jboss-development at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/jboss-development
More information about the jboss-development
mailing list