faq bundle java lang IncompatibleClassChangeError - padogrid/padogrid GitHub Wiki

When I run a cluster installed from a PadoGrid bundle, I get an exception "Exception in thread "main" java.lang.IncompatibleClassChangeError: Implementing class".

After building a PadoGrid bundle, sometimes I get the following exception.

Exception in thread "main" java.lang.IncompatibleClassChangeError: Implementing class
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
        at org.apache.geode.distributed.internal.InternalDistributedSystem$Builder.build(InternalDistributedSystem.java:3003)
        at org.apache.geode.distributed.internal.InternalDistributedSystem.connectInternal(InternalDistributedSystem.java:282)
        at org.apache.geode.distributed.internal.InternalDistributedSystem.connectInternal(InternalDistributedSystem.java:208)
        at org.apache.geode.internal.cache.InternalCacheBuilder.createInternalDistributedSystem(InternalCacheBuilder.java:346)
        at java.util.Optional.orElseGet(Optional.java:267)
        at org.apache.geode.internal.cache.InternalCacheBuilder.create(InternalCacheBuilder.java:157)
        at org.apache.geode.cache.CacheFactory.create(CacheFactory.java:142)
        at org.apache.geode.distributed.internal.DefaultServerLauncherCacheProvider.createCache(DefaultServerLauncherCacheProvider.java:52)
        at org.apache.geode.distributed.ServerLauncher.createCache(ServerLauncher.java:892)

This occurs when you have built the bundle more than once using different product versions. The exception shown above, for example, is caused by different versions of Geode used to build the bundle. You can fix this problem by cleaning up the lib and plugins dirctories of both the workspace and cluster as shown below.

cd_workspace
rm lib/* plugins/*
cd_cluster
rm lib/* plugins/*

PadoGrid bundles are typically built by running the bundle-specific build_app script. In most cases, the build_app script places the dependency artifacts such as jar files in workspace's lib directory.