-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Won't Fix
-
Affects Version/s: 2.1
-
Fix Version/s: None
-
Component/s: spring
-
Labels:None
We have dependency of GridResourceBasicInjector class in GridSpringResourceContextImpl.
This cause issues when core and spring jars are loaded with different classloaders.
Refreshing org.springframework.context.support.GenericApplicationContext@4bf48f6: startup date [Tue Oct 24 17:58:14 EEST 2017]; root of context hierarchy Exception in thread "main" java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at murex.mice.boot.launch.MainLauncher.launch(MainLauncher.java:53) at murex.mice.boot.Main.main(Main.java:82) Caused by: java.lang.IllegalAccessError: tried to access class org.apache.ignite.internal.processors.resource.GridResourceBasicInjector from class org.apache.ignite.internal.processors.resource.GridSpringResourceContextImpl at org.apache.ignite.internal.processors.resource.GridSpringResourceContextImpl.<init>(GridSpringResourceContextImpl.java:39) at org.apache.ignite.internal.util.spring.IgniteSpringHelperImpl.loadConfigurations(IgniteSpringHelperImpl.java:144) at org.apache.ignite.internal.util.spring.IgniteSpringHelperImpl.loadConfigurations(IgniteSpringHelperImpl.java:124) at org.apache.ignite.internal.IgnitionEx.loadConfigurations(IgnitionEx.java:689) at murex.mice.ignite.configuration.ConfigurationHelper.loadConfiguration(ConfigurationHelper.java:48) at murex.mice.ignite.cluster.IgniteClusterManagerConfig.createClusterManager(IgniteClusterManagerConfig.java:33) at murex.mice.launchers.registry.RegistryLauncher.start(RegistryLauncher.java:39) at murex.mice.launchers.registry.RegistryLauncher.main(RegistryLauncher.java:87) ... 6 more
GridSpringResourceContextImpl tries to create GridResourceBasicInjector explicitly that has package visibility and located in different jar.
Possible solution is to have static util method that will has return type GridResourceInjector and return GridResourceBasicInjector instance.