Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-users] ExceptionInInitializerError in LTW

Hello all,

I try to complete LTW example from AspectJ Cookbook, but it doesn't work.
I created and compiled Java class:

public class MyClass{
	public void foo(int number, String name){
		System.out.println("Inside of foo");
	}

	public static void main(String[] args) {
		MyClass myObject = new MyClass();
		myObject.foo(1, "Str");
	}
}

it works just fine:

c:\TEMP\examples>java MyClass
Inside of foo

Then I created aspect:

public aspect HelloWorld{
	pointcut callPointcut(): call(void MyClass.foo(int, String));

	before() : callPointcut(){
		System.out.println("Hello World from advice");
	}
}

compiled it:

c:\TEMP\examples>c:\tools\aspectj1.8\bin\ajc -outjar my.jar HelloWorld.aj
C:\TEMP\examples\HelloWorld.aj:4 [warning] no match for this type name: MyClass [Xlint:invalidAbsoluteTypeName]
pointcut callPointcut(): call(void MyClass.foo(int, String));
                                   ^^^^^^^^^
        [Xlint:invalidAbsoluteTypeName]

1 warning

And then try to run:

    c:\TEMP\examples>java -classpath "C:\tools\aspectj1.8\lib\aspectjweaver.jar" "-Djava.system.class.loader=org.aspectj.weaver.loadtime.WeavingURLClassLoader" -Daj.class.path=. "-Daj.aspect.path=c:\TEMP\examples" MyClass
    java.lang.ExceptionInInitializerError
            at org.aspectj.weaver.WeaverMessages.<clinit>(WeaverMessages.java:18)
            at org.aspectj.weaver.bcel.ClassPathManager.addPath(ClassPathManager.java:81)
            at org.aspectj.weaver.bcel.ClassPathManager.<init>(ClassPathManager.java:63)
            at org.aspectj.weaver.bcel.BcelWorld.<init>(BcelWorld.java:285)
            at org.aspectj.weaver.tools.WeavingAdaptor.init(WeavingAdaptor.java:176)
            at org.aspectj.weaver.tools.WeavingAdaptor.<init>(WeavingAdaptor.java:109)
            at org.aspectj.weaver.loadtime.WeavingURLClassLoader.<init>(WeavingURLClassLoader.java:75)
            at org.aspectj.weaver.loadtime.WeavingURLClassLoader.<init>(WeavingURLClassLoader.java:52)
            at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
            at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
            at java.lang.reflect.Constructor.newInstance(Unknown Source)
            at java.lang.SystemClassLoaderAction.run(Unknown Source)
            at java.lang.SystemClassLoaderAction.run(Unknown Source)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.lang.ClassLoader.initSystemClassLoader(Unknown Source)
            at java.lang.ClassLoader.getSystemClassLoader(Unknown Source)
    Caused by: java.lang.IllegalStateException: recursive invocation
            at java.lang.ClassLoader.initSystemClassLoader(Unknown Source)
            at java.lang.ClassLoader.getSystemClassLoader(Unknown Source)
            at java.util.ServiceLoader.loadInstalled(Unknown Source)
            at java.util.ResourceBundle.<clinit>(Unknown Source)
            ... 17 more
    Error occurred during initialization of VM
    java.lang.ExceptionInInitializerError
            at org.aspectj.weaver.WeaverMessages.<clinit>(WeaverMessages.java:18)
            at org.aspectj.weaver.bcel.ClassPathManager.addPath(ClassPathManager.java:81)
            at org.aspectj.weaver.bcel.ClassPathManager.<init>(ClassPathManager.java:63)
            at org.aspectj.weaver.bcel.BcelWorld.<init>(BcelWorld.java:285)
            at org.aspectj.weaver.tools.WeavingAdaptor.init(WeavingAdaptor.java:176)
            at org.aspectj.weaver.tools.WeavingAdaptor.<init>(WeavingAdaptor.java:109)
            at org.aspectj.weaver.loadtime.WeavingURLClassLoader.<init>(WeavingURLClassLoader.java:75)
            at org.aspectj.weaver.loadtime.WeavingURLClassLoader.<init>(WeavingURLClassLoader.java:52)
            at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
            at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
            at java.lang.reflect.Constructor.newInstance(Unknown Source)
            at java.lang.SystemClassLoaderAction.run(Unknown Source)
            at java.lang.SystemClassLoaderAction.run(Unknown Source)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.lang.ClassLoader.initSystemClassLoader(Unknown Source)
            at java.lang.ClassLoader.getSystemClassLoader(Unknown Source)
    Caused by: java.lang.IllegalStateException: recursive invocation
            at java.lang.ClassLoader.initSystemClassLoader(Unknown Source)
            at java.lang.ClassLoader.getSystemClassLoader(Unknown Source)
            at java.util.ServiceLoader.loadInstalled(Unknown Source)
            at java.util.ResourceBundle.<clinit>(Unknown Source)
            at org.aspectj.weaver.WeaverMessages.<clinit>(WeaverMessages.java:18)
            at org.aspectj.weaver.bcel.ClassPathManager.addPath(ClassPathManager.java:81)
            at org.aspectj.weaver.bcel.ClassPathManager.<init>(ClassPathManager.java:63)
            at org.aspectj.weaver.bcel.BcelWorld.<init>(BcelWorld.java:285)
            at org.aspectj.weaver.tools.WeavingAdaptor.init(WeavingAdaptor.java:176)
            at org.aspectj.weaver.tools.WeavingAdaptor.<init>(WeavingAdaptor.java:109)
            at org.aspectj.weaver.loadtime.WeavingURLClassLoader.<init>(WeavingURLClassLoader.java:75)
            at org.aspectj.weaver.loadtime.WeavingURLClassLoader.<init>(WeavingURLClassLoader.java:52)
            at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
            at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
            at java.lang.reflect.Constructor.newInstance(Unknown Source)
            at java.lang.SystemClassLoaderAction.run(Unknown Source)
            at java.lang.SystemClassLoaderAction.run(Unknown Source)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.lang.ClassLoader.initSystemClassLoader(Unknown Source)
            at java.lang.ClassLoader.getSystemClassLoader(Unknown Source)

I try different solutions and exception occurs only if I provide -Daj.aspect.path=c:\TEMP\examples, but as far as I understand it is because weaver will load aspect only of this option is provided. Without this option Java program works without any aspects weaved at load time.

-- 
Best regards,
Andrey


Back to the top