[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