Updated Branches:
  refs/heads/camel-2.11.x 1fd52ef1b -> b8c850025
  refs/heads/master 48c7fc8ec -> 82bb28403


CAMEL-6680: mvel compiles expression setting TCCL to classloader from mvel to 
improve OSGi compatability.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/82bb2840
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/82bb2840
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/82bb2840

Branch: refs/heads/master
Commit: 82bb28403b98ad3a06e30439fc077c8fd35282cd
Parents: 48c7fc8
Author: Claus Ibsen <davscl...@apache.org>
Authored: Thu Aug 29 11:48:50 2013 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Thu Aug 29 11:48:50 2013 +0200

----------------------------------------------------------------------
 .../java/org/apache/camel/language/mvel/MvelExpression.java  | 8 ++++++++
 1 file changed, 8 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/82bb2840/components/camel-mvel/src/main/java/org/apache/camel/language/mvel/MvelExpression.java
----------------------------------------------------------------------
diff --git 
a/components/camel-mvel/src/main/java/org/apache/camel/language/mvel/MvelExpression.java
 
b/components/camel-mvel/src/main/java/org/apache/camel/language/mvel/MvelExpression.java
index 802559e..d842493 100644
--- 
a/components/camel-mvel/src/main/java/org/apache/camel/language/mvel/MvelExpression.java
+++ 
b/components/camel-mvel/src/main/java/org/apache/camel/language/mvel/MvelExpression.java
@@ -32,10 +32,18 @@ public class MvelExpression extends ExpressionSupport {
     public MvelExpression(MvelLanguage language, String expressionString, 
Class<?> type) {
         this.expressionString = expressionString;
         this.type = type;
+
+        // see http://jira.codehaus.org/browse/MVEL-250
+        final ClassLoader tccl = 
Thread.currentThread().getContextClassLoader();
         try {
+            // set the TCCL to the MVEL
+            
Thread.currentThread().setContextClassLoader(org.mvel2.MVEL.class.getClassLoader());
             this.compiled = org.mvel2.MVEL.compileExpression(expressionString);
         } catch (Exception e) {
             throw new ExpressionIllegalSyntaxException(expressionString, e);
+        } finally {
+            // restore
+            Thread.currentThread().setContextClassLoader(tccl);
         }
     }
 

Reply via email to