Author: davsclaus Date: Thu Apr 14 21:26:16 2011 New Revision: 1092521 URL: http://svn.apache.org/viewvc?rev=1092521&view=rev Log: Poilshed
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/osgi/Activator.java Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/osgi/Activator.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/osgi/Activator.java?rev=1092521&r1=1092520&r2=1092521&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/osgi/Activator.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/osgi/Activator.java Thu Apr 14 21:26:16 2011 @@ -292,24 +292,29 @@ public class Activator implements Bundle in.close(); Class cls = bundle.loadClass(className); if (!ScriptEngineFactory.class.isAssignableFrom(cls)) { - throw new IllegalStateException("Invalid script engine factory " + cls.getName()); + throw new IllegalStateException("Invalid ScriptEngineFactory: " + cls.getName()); } ScriptEngineFactory factory = (ScriptEngineFactory) cls.newInstance(); List<String> names = factory.getNames(); for (String test : names) { if (test.equals(name)) { ClassLoader old = Thread.currentThread().getContextClassLoader(); - // JRuby seems to require the correct TCCL to call getScriptEngine - Thread.currentThread().setContextClassLoader(factory.getClass().getClassLoader()); - ScriptEngine engine = factory.getScriptEngine(); - Thread.currentThread().setContextClassLoader(old); + ScriptEngine engine; + try { + // JRuby seems to require the correct TCCL to call getScriptEngine + Thread.currentThread().setContextClassLoader(factory.getClass().getClassLoader()); + engine = factory.getScriptEngine(); + } finally { + Thread.currentThread().setContextClassLoader(old); + } + LOG.trace("Resolved ScriptEngineFactory: {} for expected name: {}", engine, name); return engine; } } - LOG.debug("Script Engine Factory for " + factory.getEngineName() + " does not match " + name); + LOG.debug("ScriptEngineFactory: {} does not match expected name: {}", factory.getEngineName(), name); return null; } catch (Exception e) { - LOG.warn("Unable to create script engine factory: " + e.getClass().getName(), e); + LOG.warn("Cannot create ScriptEngineFactory: " + e.getClass().getName(), e); return null; } }