spring-projects / spring-framework

Spring Framework
https://spring.io/projects/spring-framework
Apache License 2.0
56.37k stars 38.04k forks source link

Spring Aspects 2.5.4 doesn't work with AspectJ 1.5.4 or 1.6.0 [SPR-4773] #9450

Closed spring-projects-issues closed 16 years ago

spring-projects-issues commented 16 years ago

Matt Raible opened SPR-4773 and commented

[INFO] [aspectj:compile {execution: default}] [ERROR] ABORT May 2, 2008 7:18:13 PM org.aspectj.weaver.tools.Jdk14Trace info INFO: Dumping to /Users/mraible/Work/appfuse-2.0/service/./ajcore.20080502.191813.928.txt

Contents of file:

---- AspectJ Properties --- AspectJ Compiler 1.5.4 built on Thursday Dec 20, 2007 at 13:44:10 GMT ---- Dump Properties --- Dump file: ajcore.20080502.191813.928.txt Dump reason: org.aspectj.weaver.BCException Dump on exception: true Dump at exit condition: abort ---- Exception Information --- ---- System Properties --- java.runtime.name=Java(TM) 2 Runtime Environment, Standard Edition sun.boot.library.path=/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Libraries java.vm.version=1.5.0_13-119 awt.nativeDoubleBuffering=true gopherProxySet=false java.vm.vendor=Apple Inc. java.vendor.url=http://www.apple.com/ path.separator=: java.vm.name=Java HotSpot(TM) Client VM file.encoding.pkg=sun.io sun.java.launcher=SUN_STANDARD user.country=US sun.os.patch.level=unknown java.vm.specification.name=Java Virtual Machine Specification user.dir=/Users/mraible/Work/appfuse-2.0/service java.runtime.version=1.5.0_13-b05-237 java.awt.graphicsenv=apple.awt.CGraphicsEnvironment java.endorsed.dirs=/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/endorsed os.arch=i386 java.io.tmpdir=/tmp line.separator=

java.vm.specification.vendor=Sun Microsystems Inc. os.name=Mac OS X classworlds.conf=/opt/tools/maven2/bin/m2.conf sun.jnu.encoding=MacRoman java.library.path=/Applications/JProfiler4/bin/macos:.:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java java.specification.name=Java Platform API Specification java.class.version=49.0 sun.management.compiler=HotSpot Client Compiler os.version=10.5.2 http.nonProxyHosts=local|.local|169.254/16|.169.254/16 user.home=/Users/mraible user.timezone=America/Denver java.awt.printerjob=apple.awt.CPrinterJob file.encoding=MacRoman java.specification.version=1.5 java.class.path=/opt/tools/maven2/boot/classworlds-1.1.jar user.name=mraible java.vm.specification.version=1.0 java.home=/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home sun.arch.data.model=32 user.language=en java.specification.vendor=Sun Microsystems Inc. awt.toolkit=apple.awt.CToolkit java.vm.info=mixed mode java.version=1.5.0_13 java.ext.dirs=/Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext sun.boot.class.path=/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/ui.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/laf.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/sunrsasign.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jsse.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jce.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/charsets.jar java.vendor=Apple Inc. maven.home=/opt/tools/maven2 file.separator=/ spring.version=2.5.4 java.vendor.url.bug=http://bugreport.apple.com/ sun.io.unicode.encoding=UnicodeLittle sun.cpu.endian=little mrj.version=1040.1.5.0_13-237 socksNonProxyHosts=local|.local|169.254/16|.169.254/16 ftp.nonProxyHosts=local|.local|169.254/16|.169.254/16 sun.cpu.isalist= ---- Command Line --- -1.5 -showWeaveInfo -source 1.5 -verbose -classpath /Users/mraible/.m2/repository/antlr/antlr/2.7.6/antlr-2.7.6.jar:/Users/mraible/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar:/Users/mraible/.m2/repository/asm/asm/1.5.3/asm-1.5.3.jar:/Users/mraible/.m2/repository/asm/asm-attrs/1.5.3/asm-attrs-1.5.3.jar:/Users/mraible/.m2/repository/backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar:/Users/mraible/.m2/repository/cglib/cglib/2.1_3/cglib-2.1_3.jar:/Users/mraible/.m2/repository/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar:/Users/mraible/.m2/repository/commons-codec/commons-codec/1.3/commons-codec-1.3.jar:/Users/mraible/.m2/repository/commons-collections/commons-collections/3.2/commons-collections-3.2.jar:/Users/mraible/.m2/repository/commons-httpclient/commons-httpclient/3.0/commons-httpclient-3.0.jar:/Users/mraible/.m2/repository/commons-lang/commons-lang/2.3/commons-lang-2.3.jar:/Users/mraible/.m2/repository/commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.jar:/Users/mraible/.m2/repository/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar:/Users/mraible/.m2/repository/javax/activation/activation/1.1/activation-1.1.jar:/Users/mraible/.m2/repository/javax/mail/mail/1.4/mail-1.4.jar:/Users/mraible/.m2/repository/javax/persistence/persistence-api/1.0/persistence-api-1.0.jar:/Users/mraible/.m2/repository/javax/transaction/jta/1.0.1B/jta-1.0.1B.jar:/Users/mraible/.m2/repository/jdom/jdom/1.0/jdom-1.0.jar:/Users/mraible/.m2/repository/jmock/jmock/1.1.0/jmock-1.1.0.jar:/Users/mraible/.m2/repository/junit/junit/4.4/junit-4.4.jar:/Users/mraible/.m2/repository/log4j/log4j/1.2.13/log4j-1.2.13.jar:/Users/mraible/.m2/repository/mysql/mysql-connector-java/5.1.6/mysql-connector-java-5.1.6.jar:/Users/mraible/.m2/repository/net/java/dev/stax-utils/stax-utils/20040917/stax-utils-20040917.jar:/Users/mraible/.m2/repository/net/sf/ehcache/ehcache/1.4.1/ehcache-1.4.1.jar:/Users/mraible/.m2/repository/net/sf/jsr107cache/jsr107cache/1.0/jsr107cache-1.0.jar:/Users/mraible/.m2/repository/org/apache/xbean/xbean-spring/2.8/xbean-spring-2.8.jar:/Users/mraible/.m2/repository/org/appfuse/appfuse-data-common/2.0.2-SNAPSHOT/appfuse-data-common-2.0.2-SNAPSHOT.jar:/Users/mraible/.m2/repository/org/appfuse/appfuse-hibernate/2.0.2-SNAPSHOT/appfuse-hibernate-2.0.2-SNAPSHOT.jar:/Users/mraible/.m2/repository/org/aspectj/aspectjrt/1.5.4/aspectjrt-1.5.4.jar:/Users/mraible/.m2/repository/org/aspectj/aspectjweaver/1.5.4/aspectjweaver-1.5.4.jar:/Users/mraible/.m2/repository/org/codehaus/woodstox/wstx-asl/3.2.0/wstx-asl-3.2.0.jar:/Users/mraible/.m2/repository/org/codehaus/xfire/xfire-aegis/1.2.6/xfire-aegis-1.2.6.jar:/Users/mraible/.m2/repository/org/codehaus/xfire/xfire-annotations/1.2.6/xfire-annotations-1.2.6.jar:/Users/mraible/.m2/repository/org/codehaus/xfire/xfire-core/1.2.6/xfire-core-1.2.6.jar:/Users/mraible/.m2/repository/org/codehaus/xfire/xfire-java5/1.2.6/xfire-java5-1.2.6.jar:/Users/mraible/.m2/repository/org/codehaus/xfire/xfire-spring/1.2.6/xfire-spring-1.2.6.jar:/Users/mraible/.m2/repository/org/codehaus/xfire/xfire-xmlbeans/1.2.6/xfire-xmlbeans-1.2.6.jar:/Users/mraible/.m2/repository/org/hibernate/hibernate/3.2.6.ga/hibernate-3.2.6.ga.jar:/Users/mraible/.m2/repository/org/hibernate/hibernate-annotations/3.3.0.ga/hibernate-annotations-3.3.0.ga.jar:/Users/mraible/.m2/repository/org/hibernate/hibernate-commons-annotations/3.3.0.ga/hibernate-commons-annotations-3.3.0.ga.jar:/Users/mraible/.m2/repository/org/springframework/spring-aop/2.5.4/spring-aop-2.5.4.jar:/Users/mraible/.m2/repository/org/springframework/spring-aspects/2.5.4/spring-aspects-2.5.4.jar:/Users/mraible/.m2/repository/org/springframework/spring-beans/2.5.4/spring-beans-2.5.4.jar:/Users/mraible/.m2/repository/org/springframework/spring-context/2.5.4/spring-context-2.5.4.jar:/Users/mraible/.m2/repository/org/springframework/spring-context-support/2.5.4/spring-context-support-2.5.4.jar:/Users/mraible/.m2/repository/org/springframework/spring-core/2.5.4/spring-core-2.5.4.jar:/Users/mraible/.m2/repository/org/springframework/spring-jdbc/2.5.3/spring-jdbc-2.5.3.jar:/Users/mraible/.m2/repository/org/springframework/spring-orm/2.5.3/spring-orm-2.5.3.jar:/Users/mraible/.m2/repository/org/springframework/spring-test/2.5.4/spring-test-2.5.4.jar:/Users/mraible/.m2/repository/org/springframework/spring-tx/2.5.3/spring-tx-2.5.3.jar:/Users/mraible/.m2/repository/org/springframework/security/spring-security-core/2.0.1/spring-security-core-2.0.1.jar:/Users/mraible/.m2/repository/org/springframework/security/spring-security-core-tiger/2.0.1/spring-security-core-tiger-2.0.1.jar:/Users/mraible/.m2/repository/stax/stax-api/1.0.1/stax-api-1.0.1.jar:/Users/mraible/.m2/repository/velocity/velocity/1.4/velocity-1.4.jar:/Users/mraible/.m2/repository/wsdl4j/wsdl4j/1.6.1/wsdl4j-1.6.1.jar:/Users/mraible/.m2/repository/xfire/xfire-jsr181-api/1.0-M1/xfire-jsr181-api-1.0-M1.jar:/Users/mraible/.m2/repository/xmlbeans/xbean/2.2.0/xbean-2.2.0.jar:/Users/mraible/Work/appfuse-2.0/service/target/classes -aspectpath /Users/mraible/.m2/repository/org/springframework/spring-aspects/2.5.4/spring-aspects-2.5.4.jar -d /Users/mraible/Work/appfuse-2.0/service/target/classes /Users/mraible/Work/appfuse-2.0/service/src/main/java/org/appfuse/service/UniversalManager.java /Users/mraible/Work/appfuse-2.0/service/src/main/java/org/appfuse/service/UserSecurityAdvice.java /Users/mraible/Work/appfuse-2.0/service/src/main/java/org/appfuse/service/impl/BaseManagerMockTestCase.java /Users/mraible/Work/appfuse-2.0/service/src/main/java/org/appfuse/service/impl/RoleManagerImpl.java /Users/mraible/Work/appfuse-2.0/service/src/main/java/org/appfuse/util/TimestampConverter.java /Users/mraible/Work/appfuse-2.0/service/src/main/java/org/appfuse/service/BaseManagerTestCase.java /Users/mraible/Work/appfuse-2.0/service/src/main/java/org/appfuse/service/impl/UserManagerImpl.java /Users/mraible/Work/appfuse-2.0/service/src/main/java/org/appfuse/util/CurrencyConverter.java /Users/mraible/Work/appfuse-2.0/service/src/main/java/org/appfuse/service/impl/UniversalManagerImpl.java /Users/mraible/Work/appfuse-2.0/service/src/main/java/org/appfuse/service/MailEngine.java /Users/mraible/Work/appfuse-2.0/service/src/main/java/org/appfuse/service/RoleManager.java /Users/mraible/Work/appfuse-2.0/service/src/main/java/org/appfuse/service/impl/GenericManagerImpl.java /Users/mraible/Work/appfuse-2.0/service/src/main/java/org/appfuse/util/ConvertUtil.java /Users/mraible/Work/appfuse-2.0/service/src/main/java/org/appfuse/service/UserExistsException.java /Users/mraible/Work/appfuse-2.0/service/src/main/java/org/appfuse/service/impl/LookupManagerImpl.java /Users/mraible/Work/appfuse-2.0/service/src/main/java/org/appfuse/util/DateConverter.java /Users/mraible/Work/appfuse-2.0/service/src/main/java/org/appfuse/service/UserManager.java /Users/mraible/Work/appfuse-2.0/service/src/main/java/org/appfuse/service/UserService.java /Users/mraible/Work/appfuse-2.0/service/src/main/java/org/appfuse/util/DateUtil.java /Users/mraible/Work/appfuse-2.0/service/src/main/java/org/appfuse/service/GenericManager.java /Users/mraible/Work/appfuse-2.0/service/src/main/java/org/appfuse/service/LookupManager.java ---- Full Classpath --- Empty ---- Compiler Messages --- info directory classpath entry does not exist: /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/sunrsasign.jar abort ABORT -- (BCException) Unable to continue, this version of AspectJ supports classes built with weaver version 3.0 but the class org.springframework.beans.factory.aspectj.AbstractBeanConfigurerAspect is version 5.0 when batch building BuildConfig[null] #Files=21

Unable to continue, this version of AspectJ supports classes built with weaver version 3.0 but the class org.springframework.beans.factory.aspectj.AbstractBeanConfigurerAspect is version 5.0 when batch building BuildConfig[null] #Files=21

org.aspectj.weaver.BCException: Unable to continue, this version of AspectJ supports classes built with weaver version 3.0 but the class org.springframework.beans.factory.aspectj.AbstractBeanConfigurerAspect is version 5.0 when batch building BuildConfig[null] #Files=21

at org.aspectj.weaver.bcel.BcelAttributes.readAjAttributes(BcelAttributes.java:53)
at org.aspectj.weaver.bcel.BcelObjectType.ensureAspectJAttributesUnpacked(BcelObjectType.java:312)
at org.aspectj.weaver.bcel.BcelObjectType.<init>(BcelObjectType.java:142)
at org.aspectj.weaver.bcel.BcelWorld.buildBcelDelegate(BcelWorld.java:360)
at org.aspectj.weaver.bcel.BcelWorld.addSourceObjectType(BcelWorld.java:422)
at org.aspectj.weaver.bcel.BcelWeaver.addAspectsFromJarFile(BcelWeaver.java:250)
at org.aspectj.weaver.bcel.BcelWeaver.addLibraryJarFile(BcelWeaver.java:225)
at org.aspectj.ajdt.internal.core.builder.AjBuildManager.initBcelWorld(AjBuildManager.java:802)
at org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild(AjBuildManager.java:243)
at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:180)
at org.aspectj.ajdt.ajc.AjdtCommand.doCommand(AjdtCommand.java:112)
at org.aspectj.ajdt.ajc.AjdtCommand.runCommand(AjdtCommand.java:60)
at org.aspectj.tools.ajc.Main.run(Main.java:378)
at org.aspectj.tools.ajc.Main.runMain(Main.java:253)
at org.codehaus.mojo.aspectj.AbstractAjcCompiler.execute(AbstractAjcCompiler.java:378)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:451)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:558)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:499)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:478)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:330)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:291)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:142)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:336)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:287)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)

---- org.aspectj.weaver.bcel.BcelWorld@5d1f6a ---- Shadow mungers: Empty Type mungers: Empty Late Type mungers: Empty


No further details from SPR-4773

spring-projects-issues commented 16 years ago

Matt Raible commented

This is not a bug. I'm using the aspectj-maven-plugin and its AspectJ dependencies are version 1.5.4. After manually overriding the plugins' dependencies to specify version 1.6.0, the problem went away.

spring-projects-issues commented 16 years ago

Juergen Hoeller commented

Indeed, Spring 2.5.4 requires AspectJ 1.6 for use of spring-aspects.jar (while remaining compatible with AspectJ 1.5.4 for pointcut expression usage with proxy-based Spring AOP). Good to hear that it does work with AspectJ 1.6 for you now... In any case, we need to state clearly that AspectJ 1.6 is required for some use cases as of Spring 2.5.4.

Juergen

spring-projects-issues commented 16 years ago

Szczepan Kuzniarz commented

You should also update pom.xml for spring-aspects. Current version in central Maven repository at http://repo1.maven.org/maven2 depends on AspectJ 1.5.4:

\ \4.0.0\ \org.springframework\ \spring-aspects\ ... \2.5.4\ ... \ \ \aspectj\ \aspectjrt\ \1.5.4\ \ \ \aspectj\ \aspectjweaver\ \1.5.4\ \ ...

spring-projects-issues commented 16 years ago

Juergen Hoeller commented

Indeed, the pom wasn't updated there. Fortunately this has been fixed for 2.5.5 already - to be available early next week.

Juergen

spring-projects-issues commented 16 years ago

Eric Walker commented

I have been seeing a similar problem. My issue involves Spring, AspectJ and perhaps GWT. I am new to all of them and am not sure how much information will be helpful. Please let me know if you could use more information.

I have been trying for some time now to get Spring to use the @Configurable annotation to inject a dependency into a GWT servlet that provides an RPC service. After trying a number of things out and learning a lot in the process, I finally tracked one of my difficulties down to library dependencies. The jar files that finally worked were:

aspectjrt-1.6.0.jar aspectjweaver-1.6.0.jar spring-agent-2.5.x.jar (5390 bytes) spring-2.5.x.jar (2839KB) spring-aspects-2.5.x.jar (16419 bytes) gwt-user-1.5.0.jar

JRE 1.6.0_06 Eclipse 3.3.2

The AspectJ files come from the AJDT 1.5.2 library for Eclipse. The version "2.5.x" for the Spring files refers to the fact that I got them from a zip file "spring-framework-2.5.zip" which I must have downloaded sometime back, at a time that I was not keeping track of version numbers very carefully. Once I figured out there was a dependency problem, I tried to get Spring files with more specific versions to work, but I was unable to find any that did. Jar files for Spring 2.5.4, 2.5.5 and 2.6.0-547 did not act upon the @Configurable annotation, perhaps because they were conflicting with one another, with the AspectJ libraries or possibly with GWT or MySQL. It should also be mentioned that the problem didn't seem to be in spring-agent.jar, which worked for all versions that I tried.

I hope this helps.

Getting this setup to work has involved the steepest learning curve I remember going through for a long time. If I hadn't had that "2.5" Spring zip file lying around, I doubt I would have stumbled upon the right configuration. It's not clear at this point what would have made things easier, though.