[jboss-dev] WarAnnotationMetaDataDeployer and AOP failures

Ales Justin ales.justin at gmail.com
Tue Jan 26 15:53:08 EST 2010


Eh, replied few secs too late. :-)

The answer is yes, but *if* you do it via xml config, as string, this  
is then just additional "helper" string.
AOP usage is completely transparent.

Sent from my iPod

On 26.1.2010, at 21:39, Brian Stansberry <brian.stansberry at redhat.com>  
wrote:

> Will AopMetaDataDeployerOutput always be attached?
>
> On 01/26/2010 02:17 PM, Kabir Khan wrote:
>> 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
>>
>>
>> _______________________________________________
>> jboss-development mailing list
>> jboss-development at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/jboss-development
>
>
> -- 
> Brian Stansberry
> Lead, AS Clustering
> JBoss by Red Hat
> _______________________________________________
> 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