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