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;
             }
         }


Reply via email to