Summary: | java.lang.ArrayIndexOutOfBoundsException: 2 (at org.aspectj.weaver.ResolvedType.getMemberParameterizationMap(ResolvedType.java:970)) | ||
---|---|---|---|
Product: | [Tools] AspectJ | Reporter: | Miika Vesti <miika.vesti> |
Component: | Compiler | Assignee: | aspectj inbox <aspectj-inbox> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | P3 | CC: | aclement, miika.vesti |
Version: | 1.8.11 | ||
Target Milestone: | 1.9.0 | ||
Hardware: | PC | ||
OS: | Linux | ||
Whiteboard: |
Description
Miika Vesti
2017-10-13 02:14:16 EDT
From the line of code: parameterizationMap.put(tvs[i].getName(), typeParameters[i]); I think there are less typeParameters than we expect. I've added some diagnostics for this problem to a 1.8.12.BUILD-SNAPSHOT - can you try with that? It is in the maven repo: <repository> <id>spring-maven-snapshot</id> <name>Spring Maven Snapshot Repository</name> <url>http://maven.springframework.org/snapshot</url> </repository> It should tell us what types were involved in the problem in an IllegalStateException then we can dig a little deeper. (Although I haven't been able to exactly test it because I can't recreate). thanks! Thanks for the response. I tried to use 1.8.12.BUILD-SNAPSHOT and found the problem: [ERROR] Failed to execute goal org.codehaus.mojo:aspectj-maven-plugin:1.10:compile (default) on project oneportal: AJC compiler errors: [ERROR] abort ABORT -- (IllegalStateException) Problem occurred whilst calling isAssignableFrom for Lorg/springframework/beans/factory/aspectj/AbstractInterfaceDrivenDependencyInjectionAspect$ConfigurableDeserializationSupport; and L---REDACTED_PACKAGE---/BaseEntity; [ERROR] Problem occurred whilst calling isAssignableFrom for Lorg/springframework/beans/factory/aspectj/AbstractInterfaceDrivenDependencyInjectionAspect$ConfigurableDeserializationSupport; and L---REDACTED_PACKAGE---/BaseEntity; [ERROR] java.lang.IllegalStateException: Problem occurred whilst calling isAssignableFrom for Lorg/springframework/beans/factory/aspectj/AbstractInterfaceDrivenDependencyInjectionAspect$ConfigurableDeserializationSupport; and L---REDACTED_PACKAGE---/BaseEntity; [ERROR] at org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:651) [ERROR] at org.aspectj.weaver.ResolvedType.isTopmostImplementor(ResolvedType.java:2346) [ERROR] at org.aspectj.weaver.ResolvedTypeMunger.matches(ResolvedTypeMunger.java:133) [ERROR] at org.aspectj.weaver.ConcreteTypeMunger.matches(ConcreteTypeMunger.java:81) [ERROR] at org.aspectj.ajdt.internal.compiler.lookup.AjLookupEnvironment.weaveInterTypeDeclarations(AjLookupEnvironment.java:783) [ERROR] at org.aspectj.ajdt.internal.compiler.lookup.AjLookupEnvironment.weaveInterTypeDeclarations(AjLookupEnvironment.java:646) [ERROR] at org.aspectj.ajdt.internal.compiler.lookup.AjLookupEnvironment.doPendingWeaves(AjLookupEnvironment.java:421) [ERROR] at org.aspectj.ajdt.internal.compiler.lookup.AjLookupEnvironment.completeTypeBindings(AjLookupEnvironment.java:201) [ERROR] at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.internalBeginToCompile(Compiler.java:859) [ERROR] at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.beginToCompile(Compiler.java:385) [ERROR] at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:435) [ERROR] at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:417) [ERROR] at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation(AjBuildManager.java:1036) [ERROR] at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performBuild(AjBuildManager.java:272) [ERROR] at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:185) [ERROR] at org.aspectj.ajdt.ajc.AjdtCommand.doCommand(AjdtCommand.java:114) [ERROR] at org.aspectj.ajdt.ajc.AjdtCommand.runCommand(AjdtCommand.java:60) [ERROR] at org.aspectj.tools.ajc.Main.run(Main.java:371) [ERROR] at org.aspectj.tools.ajc.Main.runMain(Main.java:248) [ERROR] at org.codehaus.mojo.aspectj.AbstractAjcCompiler.execute(AbstractAjcCompiler.java:544) [ERROR] at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) [ERROR] at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207) [ERROR] at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) [ERROR] at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) [ERROR] at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) [ERROR] at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) [ERROR] at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) [ERROR] at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) [ERROR] at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) [ERROR] at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) [ERROR] at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) [ERROR] at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863) [ERROR] at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) [ERROR] at org.apache.maven.cli.MavenCli.main(MavenCli.java:199) [ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [ERROR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [ERROR] at java.lang.reflect.Method.invoke(Method.java:498) [ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) [ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) [ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) [ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) [ERROR] Caused by: java.lang.IllegalStateException: 525972: Mismatch when building parameterization map. For type Porg/springframework/data/domain/Auditable<Ljava/lang/String;Ljava/lang/String;>; expecting 3: U ID T type parameters but found 2:Ljava/lang/String; Ljava/lang/String; [ERROR] at org.aspectj.weaver.ResolvedType.getMemberParameterizationMap(ResolvedType.java:970) [ERROR] at org.aspectj.weaver.ReferenceType.getDeclaredInterfaces(ReferenceType.java:752) [ERROR] at org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:629) [ERROR] at org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:635) [ERROR] at org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:648) [ERROR] ... 41 more There is one dependency library in my project that also must be updated to support spring-data-mongodb-2.0.0, so this is not a bug in aspectj but a bug in our code. The modification you made is still extremely useful because it allowed me to quickly locate the problem. Thank you! Thanks for digging into that and trying my debug version. Even if there was an issue for you it shouldn't surface as an exception in AspectJ so I will think about including some form of better diagnostics. I added a guard to prevent the AIOOBE and a message that includes the info I was including in those exceptions. I can't add a testcase - I'm having trouble recreating it precisely. Hopefully these changes will help next time the situation arises though. |