private Class<?> defineClassInSingleServingLoader( ICompilableTypeInternal gsClass, SingleServingGosuClassLoader loader) { Class<?> result = loader._defineClass(gsClass); // Define all inner classes and blocks, too. Otherwise, they eventually could be loaded through // URL handler. for (int i = 0; i < gsClass.getBlockCount(); i++) { defineClassInSingleServingLoader((ICompilableTypeInternal) gsClass.getBlock(i), loader); } if (gsClass.getInnerClasses() != null) { for (IType inner : gsClass.getInnerClasses()) { try { defineClassInSingleServingLoader((ICompilableTypeInternal) inner, loader); } catch (LinkageError le) { // ignore case when we've already loaded the class } } } return result; }