[jboss-jira] [JBoss JIRA] Created: (JBMICROCONT-147) Improve error reporting of aspect mismatches

Scott M Stark (JIRA) jira-events at jboss.com
Wed Feb 7 02:02:31 EST 2007


Improve error reporting of aspect mismatches
--------------------------------------------

                 Key: JBMICROCONT-147
                 URL: http://jira.jboss.com/jira/browse/JBMICROCONT-147
             Project: JBoss MicroContainer
          Issue Type: Feature Request
          Components: AOP
            Reporter: Scott M Stark


Given an aspect like:

public class MainDeployerAspect 
{
   public String getName()
   {
      return this.getClass().getName();
   }

   public Object process(Invocation invocation) throws Throwable
   {
      return invocation.invokeNext();
   }
}

and an aop:lifecycle-configure like:

<aop:lifecycle-configure xmlns:aop="urn:jboss:aop-beans:1.0"
     name="MainDeployerAspect"
     class="org.jboss.profileservice.aop.MainDeployerAspect"
     classes="org.jboss.deployers.spi.deployment.MainDeployer"
     manager-bean="AspectManager"
     manager-property="aspectManager"
     pointcut="execution(* $instanceof{org.jboss.deployers.spi.deployment.MainDeployer}->process(..))">
</aop:lifecycle-configure>

startup of jboss5 fails with:

22:47:05,635 ERROR [AbstractKernelController] Error installing to Described: name=MainDeployer state=Not Installed
java.lang.RuntimeException: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
        at org.jboss.aop.advice.AdviceFactory.create(AdviceFactory.java:72)
        at org.jboss.aop.Advisor.createInterceptorChain(Advisor.java:778)
        at org.jboss.aop.Advisor.pointcutResolved(Advisor.java:1072)
        at org.jboss.aop.MethodMatchInfo.applyBinding(MethodMatchInfo.java:139)        at org.jboss.aop.MethodMatchInfo.overridePopulateBindings(MethodMatchInfo.java:130)
        at org.jboss.aop.MethodMatchInfo.populateBindings(MethodMatchInfo.java:79)
        at org.jboss.aop.Advisor.finalizeMethodChain(Advisor.java:823)
        at org.jboss.aop.ClassContainer.createInterceptorChains(ClassContainer.java:257)
        at org.jboss.aop.ClassContainer.rebuildInterceptors(ClassContainer.java:123)
        at org.jboss.aop.ClassContainer.initializeClassContainer(ClassContainer.java:60)
        at org.jboss.aop.proxy.container.ClassProxyContainer.initialise(ClassProxyContainer.java:174)
        at org.jboss.aop.proxy.container.ContainerCache.createContainer(ContainerCache.java:183)
        at org.jboss.aop.proxy.container.ContainerCache.createAndCacheContainer(ContainerCache.java:171)
        at org.jboss.aop.proxy.container.ContainerCache.initClassContainer(ContainerCache.java:159)
        at org.jboss.aop.proxy.container.ContainerCache.initialise(ContainerCache.java:92)
        at org.jboss.aop.proxy.container.ContainerCache.initialise(ContainerCache.java:72)
        at org.jboss.aop.microcontainer.integration.AOPDependencyBuilderDelegate.getDependencies(AOPDependencyBuilderDelegate.java:94)
        at org.jboss.aop.microcontainer.integration.AOPDependencyBuilder.getDependencies(AOPDependencyBuilder.java:51)
        at org.jboss.classadapter.plugins.BasicClassAdapter.getDependencies(BasicClassAdapter.java:79)
        at org.jboss.beans.info.plugins.AbstractBeanInfo.getDependencies(AbstractBeanInfo.java:163)
        at org.jboss.kernel.plugins.dependency.DescribeAction.installActionInternal(DescribeAction.java:64)
        at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.installAction(KernelControllerContextAction.java:197)
        at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.install(KernelControllerContextAction.java:136)
        at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
        at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:233)
        at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:709)
        at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:430)
        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:540)
        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:474)
        at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:274)
        at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:177)
        at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.deployBean(AbstractKernelDeployer.java:302)
        at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.deployBeans(AbstractKernelDeployer.java:272)
        at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.deploy(AbstractKernelDeployer.java:119)
        at org.jboss.kernel.plugins.deployment.BasicKernelDeployer.deploy(BasicKernelDeployer.java:64)
        at org.jboss.kernel.plugins.deployment.xml.BasicXMLDeployer.deploy(BasicXMLDeployer.java:76)
        at org.jboss.kernel.plugins.deployment.xml.BasicXMLDeployer.deploy(BasicXMLDeployer.java:146)
        at org.jboss.system.server.profileservice.ProfileServiceBootstrap.deploy(ProfileServiceBootstrap.java:291)
        at org.jboss.system.server.profileservice.ProfileServiceBootstrap.bootstrap(ProfileServiceBootstrap.java:222)
        at org.jboss.kernel.plugins.bootstrap.AbstractBootstrap.run(AbstractBootstrap.java:89)
        at org.jboss.system.server.profileservice.ServerImpl.doStart(ServerImpl.java:403)
        at org.jboss.system.server.profileservice.ServerImpl.start(ServerImpl.java:342)
        at org.jboss.Main.boot(Main.java:210)
        at org.jboss.Main$1.run(Main.java:508)
        at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
        at java.util.ArrayList.RangeCheck(ArrayList.java:546)
        at java.util.ArrayList.get(ArrayList.java:321)
        at org.jboss.aop.advice.PerVmAdvice.generateInterceptor(PerVmAdvice.java:175)
        at org.jboss.aop.advice.PerVmAdvice.generateOptimized(PerVmAdvice.java:53)
        at org.jboss.aop.advice.AdviceFactory.create(AdviceFactory.java:68)
        ... 44 more

The problem is that there is no invoke(..) in the aspect. The error should be clearer, and there should be a way to map the pointcut to a method of the aspect.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list