Andrew Mashenkov created IGNITE-6764:
----------------------------------------

             Summary: Avoid dependency of package visible 
GridResourceBasicInjector class from Spring module.
                 Key: IGNITE-6764
                 URL: https://issues.apache.org/jira/browse/IGNITE-6764
             Project: Ignite
          Issue Type: Bug
      Security Level: Public (Viewable by anyone)
          Components: spring
    Affects Versions: 2.1
            Reporter: Andrew Mashenkov


We have dependency of GridResourceBasicInjector class in 
GridSpringResourceContextImpl.
This cause issues when core and spring jars are loaded with different 
classloaders.
{noformat}
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 
{noformat}

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.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to