private void onNonAssignableClass(String className, Class candidate) { if (expectedType.isInterface()) { if (ClassLoaderUtil.implementsInterfaceWithSameName(candidate, expectedType)) { // this can happen in application containers - different Hazelcast JARs are loaded // by different classloaders. LOGGER.fine("There appears to be a classloading conflict. " + "Class " + className + " loaded by " + candidate.getClassLoader() + " implements " + expectedType.getName() + " from its own class loader, but it does not implement " + expectedType.getName() + " loaded by " + expectedType.getClassLoader()); } else { //the class does not implement interface with the expected name. LOGGER.fine("There appears to be a classloading conflict. " + "Class " + className + " loaded by " + candidate.getClassLoader() + " does not " + "implement an interface with name " + expectedType.getName() + " in both class loaders." + "the interface currently loaded by " + expectedType.getClassLoader()); } } }
private void onNonAssignableClass(String className, Class candidate) { if (expectedType.isInterface()) { if (ClassLoaderUtil.implementsInterfaceWithSameName(candidate, expectedType)) { // this can happen in application containers - different Hazelcast JARs are loaded // by different classloaders. LOGGER.fine("There appears to be a classloading conflict. " + "Class " + className + " loaded by " + candidate.getClassLoader() + " implements " + expectedType.getName() + " from its own class loader, but it does not implement " + expectedType.getName() + " loaded by " + expectedType.getClassLoader()); } else { //the class does not implement interface with the expected name. LOGGER.fine("There appears to be a classloading conflict. " + "Class " + className + " loaded by " + candidate.getClassLoader() + " does not " + "implement an interface with name " + expectedType.getName() + " in both class loaders." + "the interface currently loaded by " + expectedType.getClassLoader()); } } }