You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2010/12/15 17:28:44 UTC
svn commit: r1049635 - in /camel/trunk/camel-core/src:
main/java/org/apache/camel/builder/ExpressionBuilder.java
test/java/org/apache/camel/builder/PredicateBuilderTest.java
Author: davsclaus
Date: Wed Dec 15 16:28:44 2010
New Revision: 1049635
URL: http://svn.apache.org/viewvc?rev=1049635&view=rev
Log:
CAMEL-3433: Fixed in predicate to handle null results from expressions.
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
camel/trunk/camel-core/src/test/java/org/apache/camel/builder/PredicateBuilderTest.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java?rev=1049635&r1=1049634&r2=1049635&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java Wed Dec 15 16:28:44 2010
@@ -935,12 +935,16 @@ public final class ExpressionBuilder {
public static Expression convertToExpression(final Expression expression, final Class type) {
return new ExpressionAdapter() {
public Object evaluate(Exchange exchange) {
- return expression.evaluate(exchange, type);
+ if (type != null) {
+ return expression.evaluate(exchange, type);
+ } else {
+ return expression;
+ }
}
@Override
public String toString() {
- return "" + expression + ".convertTo(" + type.getCanonicalName() + ".class)";
+ return "" + expression;
}
};
}
@@ -952,12 +956,17 @@ public final class ExpressionBuilder {
public static Expression convertToExpression(final Expression expression, final Expression type) {
return new ExpressionAdapter() {
public Object evaluate(Exchange exchange) {
- return expression.evaluate(exchange, type.evaluate(exchange, Object.class).getClass());
+ Object result = type.evaluate(exchange, Object.class);
+ if (result != null) {
+ return expression.evaluate(exchange, result.getClass());
+ } else {
+ return expression;
+ }
}
@Override
public String toString() {
- return "" + expression + ".convertToEvaluatedType(" + type + ")";
+ return "" + expression;
}
};
}
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/builder/PredicateBuilderTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/PredicateBuilderTest.java?rev=1049635&r1=1049634&r2=1049635&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/builder/PredicateBuilderTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/builder/PredicateBuilderTest.java Wed Dec 15 16:28:44 2010
@@ -85,6 +85,11 @@ public class PredicateBuilderTest extend
assertMatches(header("name").in("Hiram", "Jonathan", "James", "Claus"));
}
+ public void testEmptyHeaderValueIn() throws Exception {
+ // there is no header with xxx
+ assertDoesNotMatch(header("xxx").in("Hiram", "Jonathan", "James", "Claus"));
+ }
+
public void testStartsWith() throws Exception {
assertMatches(header("name").startsWith("J"));
assertMatches(header("name").startsWith("James"));