in src/main/java/org/apache/bsf/util/event/generator/AdapterClassLoader.java [47:90]
public synchronized Class defineClass(final String name, final byte[] b)
{
if ((c = getLoadedClass(name)) == null)
{
final String tmpName=name.replace('/','.');
try
{
c = defineClass(tmpName, b, 0, b.length); // rgf, 2006-02-03
}
catch (final NoClassDefFoundError e) // note "Error": Java thread would be killed otherwise!
{
// now try the Thread's current context class loader, but don't cache it
final ClassLoader tccl=Thread.currentThread().getContextClassLoader();
if (tccl!=null)
{
try
{
final LocalThreadClassLoader ltcl=new LocalThreadClassLoader(tccl);
return ltcl.defineClass(tmpName,b);
}
catch (final NoClassDefFoundError e1) // (NoClassDefFoundError e1)
{
logger.error("AdapterClassLoader: NoClassDefFoundError ERROR for class ["+tmpName+"]!");
throw e1; // rethrow error
}
}
else
{
logger.error("AdapterClassLoader: NoClassDefFoundError ERROR for class ["+tmpName+"] (info: Thread context class loader is 'null'.)!");
throw e; // rethrow error
}
}
put(name, c);
}
else
{
logger.error("AdapterClassLoader: " + c +
" previously loaded. Can not redefine class.");
}
return c;
}