Hi Tom, I don't think that is a valid classname for the load (i.e. including the generics) and so it looks like a problem where a class reference in the constant pool has incorrectly included generics information. javap -private -verbose on the woven PlantMatrixServiceImpl class and look for that classname being referenced - I'm happy to look at the output if you want to send me that to me privately. Do you want to raise an AspectJ bug to pursue it further? You can do that here: https://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ
You could quickly try AspectJ 1.6.12 instead of the 1.7 version (since the 1.7 version had substantial changes in - a new version of the JDT compiler). It would be interesting to know if it had the same problem - it should be fine with the latest Spring. That AspectJ version will not produce the extra verifier attributes that a 1.7 JVM would be looking for so you would *probably* have to run your JVM with option -XX:-UseSplitVerifier - which tells it to switch back to the Java6 verification scheme. (If this option is required and you don't supply it you will probably see errors about missing StackMaps). Actually, there is a small possibility that it is addressed by a change last week that addressed a problem of mistakenly including some generics signatures in stackmap attributes. I've just created a new dev build that includes this fix. You can grab it from here: http://www.eclipse.org/downloads/download.php?file=/tools/aspectj/dev/aspectj-DEVELOPMENT-20121118123000.jar cheers, Andy On 16 November 2012 10:05, Tom Duffey <[email protected]> wrote: > Hello, > > We are attempting to upgrade an application to the Java 7 platform. This is a > web-based app using Spring 3.0.5 and AspectJ compile time weaving. We use Ant > to build and set our iajc task to target the 1.7 JDK. Everything builds but > we are experiencing runtime errors in the application that I'm having trouble > understanding and believe might be related to the AspectJ compiler: > > java.lang.NoClassDefFoundError: > com/utilivisor/domain/model/DomainObject<com/utilivisor/domain/model/SimpleIdentity> > at > com.utilivisor.service.plantAnalysis.PlantMatrixServiceImpl.calculateOperatingModes(PlantMatrixServiceImpl.java:79) > at > com.utilivisor.service.plantAnalysis.PlantMatrixServiceImpl.calculateMatrix(PlantMatrixServiceImpl.java:53) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > at > org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) > at > org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) > at > org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) > at $Proxy391.calculateMatrix(Unknown Source) > at > com.utilivisor.job.plantAnalysis.CalculateOperatingModesJob.performJob(CalculateOperatingModesJob.java:47) > at com.utilivisor.job.AbstractJob.executeInternal(AbstractJob.java:171) > at > org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86) > at org.quartz.core.JobRunShell.run(JobRunShell.java:202) > at > org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525) > Caused by: java.lang.ClassNotFoundException: > com.utilivisor.domain.model.DomainObject<com.utilivisor.domain.model.SimpleIdentity> > at > org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) > at > org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) > ... 18 more > > Line 79 of PlantMatrixServiceImpl: > > OperatingModeCalculator calculator = new OperatingModeCalculator(matrix); > > The DomainObject class it is complaining about is a generic class with a > definition like: > > public abstract class DomainObject<PK extends Identity> implements > Serializable, Comparable<DomainObject> { ... } > > The OperatingModeCalculator class above does not extend DomainObject so not > sure why the error is listed as coming from there. > > com.utilivisor is our package and the code is definitely there in a JAR in > the WEB-INF/lib folder so I am confused. Any ideas how to fix or further > troubleshoot this? More info about our environment: > > - Oracle 64-bit JDK 1.7.0_09-b05 on Linux > - Tried AspectJ 1.7.1 and latest dev > - Spring 3.0.5, tried 3.0.7 and 3.1.0 > > Tom > > -- > Tom Duffey > [email protected] > 414-751-0600 x102 > > > > > > _______________________________________________ > aspectj-users mailing list > [email protected] > https://dev.eclipse.org/mailman/listinfo/aspectj-users _______________________________________________ aspectj-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/aspectj-users
