--- ContextConfig.java.orig 2012-07-03 12:36:46.000000000 +0200 +++ ContextConfig.java 2012-07-11 18:08:26.266274487 +0200 @@ -2208,10 +2208,8 @@ Set result = new HashSet(); - JavaClass javaClass = cacheEntry.getJavaClass(); - // Super class - String superClassName = javaClass.getSuperclassName(); + String superClassName = cacheEntry.getSuperclassName(); JavaClassCacheEntry superClassCacheEntry = javaClassCache.get(superClassName); @@ -2231,7 +2229,7 @@ result.addAll(getSCIsForClass(superClassName)); // Interfaces - for (String interfaceName : javaClass.getInterfaceNames()) { +for (String interfaceName : cacheEntry.getInterfaceNames()) { JavaClassCacheEntry interfaceEntry = javaClassCache.get(interfaceName); // A null could mean that the class not present in application or @@ -2675,15 +2673,23 @@ } private static class JavaClassCacheEntry { - private final JavaClass javaClass; + public final String superclassName; + + public final String[] interfaceNames; + private Set sciSet = null; public JavaClassCacheEntry(JavaClass javaClass) { - this.javaClass = javaClass; + superclassName = javaClass.getSuperclassName(); + interfaceNames = javaClass.getInterfaceNames(); + } + + public String getSuperclassName() { + return superclassName; } - public JavaClass getJavaClass() { - return javaClass; + public String[] getInterfaceNames() { + return interfaceNames; } public Set getSciSet() {