groovy-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jochen Theodorou <blackd...@gmx.org>
Subject Re: java.lang.LinkageError: loader constraint violation in interface itable
Date Wed, 19 Aug 2015 13:33:22 GMT
Then any idea what jar comes and adds a javax.management.ObjectName ?

Am 19.08.2015 01:13, schrieb William Markito:
> Thanks Jochen, but even with the system classloader I have the same issue.
>
> ------------------------------
> @GrabConfig(systemClassLoader= true)
> @GrabResolver(name='asf-snapshots',
> root="https://repository.apache.org/content/repositories/snapshots")
>
> @Grapes(
>          @Grab(group="org.apache.geode", module ="gemfire-core", version ="1.0.0-incubating-SNAPSHOT")
> )
>
> importcom.gemstone.gemfire.cache.client.ClientCache
> importcom.gemstone.gemfire.cache.client.ClientCacheFactory
>
>
> cache =newClientCacheFactory()
>          .addPoolLocator("localhost",10334)
>          .create();
>
> region = cache.createClientRegionFactory("myRegion")
>
> region.put("1","Hello")
> region.put("2","World")
>
>
> --------------------
> Caught: java.lang.LinkageError: loader constraint violation in interface
> itable initialization: when resolving method
> "com.gemstone.gemfire.internal.cache.control.InternalResourceManager$DummyMemoryPoolMXBean.getObjectName()Ljavax/management/ObjectName;"
> the class loader (instance of org/codehaus/groovy/tools/RootLoader) of
> the current class,
> com/gemstone/gemfire/internal/cache/control/InternalResourceManager$DummyMemoryPoolMXBean,
> and the class loader (instance of <bootloader>) for interface
> java/lang/management/PlatformManagedObject have different Class objects
> for the type javax/management/ObjectName used in the signature
> [info 2015/08/18 16:11:16.526 PDT <Distributed system shutdown hook>
> tid=0xe] VM is exiting - shutting down distributed system
>
> java.lang.LinkageError: loader constraint violation in interface itable
> initialization: when resolving method
> "com.gemstone.gemfire.internal.cache.control.InternalResourceManager$DummyMemoryPoolMXBean.getObjectName()Ljavax/management/ObjectName;"
> the class loader (instance of org/codehaus/groovy/tools/RootLoader) of
> the current class,
> com/gemstone/gemfire/internal/cache/control/InternalResourceManager$DummyMemoryPoolMXBean,
> and the class loader (instance of <bootloader>) for interface
> java/lang/management/PlatformManagedObject have different Class objects
> for the type javax/management/ObjectName used in the signature
> at
> com.gemstone.gemfire.internal.cache.control.InternalResourceManager.<clinit>(InternalResourceManager.java:469)
> at
> com.gemstone.gemfire.internal.cache.GemFireCacheImpl.<init>(GemFireCacheImpl.java:755)
> at
> com.gemstone.gemfire.internal.cache.GemFireCacheImpl.create(GemFireCacheImpl.java:667)
> at
> com.gemstone.gemfire.cache.client.ClientCacheFactory.basicCreate(ClientCacheFactory.java:207)
> at
> com.gemstone.gemfire.cache.client.ClientCacheFactory.create(ClientCacheFactory.java:162)
> at
> com.gemstone.gemfire.cache.client.ClientCacheFactory$create$0.call(Unknown
> Source)
> at HelloWorld.run(HelloWorld.groovy:16)
> at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
>
>
> On Tue, Aug 18, 2015 at 12:40 AM, Jochen Theodorou <blackdrag@gmx.org
> <mailto:blackdrag@gmx.org>> wrote:
>
>     Am 18.08.2015 03:53, schrieb William Markito:
>
>         Hi folks,
>
>             Any recommendations for the following problem ? I'm not sure
>         it's a
>         problem on Geode implementation..
>
>         Thanks!
>
>         ---- Groovy Code --
>
>         @GrabResolver(name='asf-snapshots',
>         root="https://repository.apache.org/content/repositories/snapshots")
>         @Grapes(
>                   @Grab(group="org.apache.geode", module
>         ="gemfire-core", version ="1.0.0-incubating-SNAPSHOT")
>         )
>
>         importcom.gemstone.gemfire.cache.client.ClientCache
>         importcom.gemstone.gemfire.cache.client.ClientCacheFactory
>
>
>         cache =newClientCacheFactory()
>                   .addPoolLocator("localhost",10334)
>                   .create();
>
>         -----
>         ------  Exception
>
>         Caught: java.lang.LinkageError: loader constraint violation in
>         interface
>
>     [...]
>
>     basically it means the bootloader is loading javax.management
>     classes and the RootLoader does so as well.. for the same classes.
>     RootLoader is a child of the bootloader and is normally supposed to
>     redirect request to its parent for class requests and only react if
>     the parent cannot. Now RootLoader violates that constraint on
>     purpose and in most cases this is fine... as long as no normal java
>     classes are involved with that.
>
>     This means the configuration for RootLoader contains a path, that
>     also includes javax.management classes, that duplicate the ones from
>     the jdk. That should not be the case and they should be removed. If
>     you could find out where those come from, it would help a lot. Or
>     are you simply using the default distribution of Groovy? If yes,
>     then we might have to remove a jar in there. That would fix the
>     issue I think. If of course those classes come from gemfire I would
>     argue gemfire is doing something wrong here. Because normally
>     RootLoader is used to add those jars to.
>
>     A @GrabExclude could be used if those classes are pulled in through
>     a dependency of gemfire-core (in that case we should check if the
>     dependency is optional)
>
>     As an alternative you could try to use
>     @GrabConfig(systemClassLoader=true) inside the @Grapes. This will
>     force the Gemfire classes being loaded by the system loader instead,
>     bypassing the issue above maybe.
>
>     bye blackdrag
>
>
>
>         itable initialization: when resolving method
>         "com.gemstone.gemfire.internal.cache.control.InternalResourceManager$DummyMemoryPoolMXBean.getObjectName()Ljavax/management/ObjectName;"
>         the class loader (instance of
>         org/codehaus/groovy/tools/RootLoader) of
>         the current class,
>         com/gemstone/gemfire/internal/cache/control/InternalResourceManager$DummyMemoryPoolMXBean,
>         and the class loader (instance of <bootloader>) for interface
>         java/lang/management/PlatformManagedObject have different Class
>         objects
>         for the type javax/management/ObjectName used in the signature
>         [info 2015/08/17 18:36:43.352 PDT <Distributed system shutdown hook>
>         tid=0xe] VM is exiting - shutting down distributed system
>         java.lang.LinkageError: loader constraint violation in interface
>         itable
>         initialization: when resolving method
>         "com.gemstone.gemfire.internal.cache.control.InternalResourceManager$DummyMemoryPoolMXBean.getObjectName()Ljavax/management/ObjectName;"
>         the class loader (instance of
>         org/codehaus/groovy/tools/RootLoader) of
>         the current class,
>         com/gemstone/gemfire/internal/cache/control/InternalResourceManager$DummyMemoryPoolMXBean,
>         and the class loader (instance of <bootloader>) for interface
>         java/lang/management/PlatformManagedObject have different Class
>         objects
>         for the type javax/management/ObjectName used in the signature
>
>
>
>     --
>     Jochen "blackdrag" Theodorou
>     blog: http://blackdragsview.blogspot.com/
>
>
>
>
> --
>
> William Markito Oliveira
> Enterprise Architect
> -- For questions about Apache Geode, please write to
> *dev@geode.incubator.apache.org <mailto:dev@geode.incubator.apache.org>*
>
>


-- 
Jochen "blackdrag" Theodorou
blog: http://blackdragsview.blogspot.com/


Mime
View raw message