return super.defineClass(name, b, 0, b.length, DOMAIN);
Class c = super.defineClass(name, b, 0, b.length, DOMAIN); postProcess(c); return c;
    public Class loadClass(String name) throws ClassNotFoundException {                Class loaded = findLoadedClass(name);                if( loaded != null ){            if( loaded.getClassLoader() == this ){               return loaded;            }//else reload with this class loader        }                if (!filter.accept(name)) {            return super.loadClass(name);        }        ClassReader r;        try {                       java.io.InputStream is = classPath.getResourceAsStream(                        name.replace('.','/') + ".class"                  );                       if (is == null) {                             throw new ClassNotFoundException(name);                         }           try {                              r = new ClassReader(is);                       } finally {                             is.close();                        }        } catch (IOException e) {            throw new ClassNotFoundException(name + ":" + e.getMessage());        }        try {            ClassWriter w =  new DebuggingClassWriter(true);            getGenerator(r).generateClass( w );            byte[] b = w.toByteArray();            return super.defineClass(name, b, 0, b.length, DOMAIN);        } catch (RuntimeException e) {            throw e;        } catch (Error e) {            throw e;        } catch (Exception e) {            throw new CodeGenerationException(e);        }    }