You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by js...@apache.org on 2007/11/15 15:22:07 UTC

svn commit: r595310 - in /activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder: ExpressionBuilder.java ProcessorBuilder.java xml/MessageVariableResolver.java

Author: jstrachan
Date: Thu Nov 15 06:22:06 2007
New Revision: 595310

URL: http://svn.apache.org/viewvc?rev=595310&view=rev
Log:
further modifications for this issue :  http://www.nabble.com/setBody%28el%28-%29%29-creates-null-body-tf4805396s22882.html#a13747750 to ensure that we don't ever accidentally create an OUT message when we don't want/need one

Modified:
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ProcessorBuilder.java
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/xml/MessageVariableResolver.java

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java?rev=595310&r1=595309&r2=595310&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java Thu Nov 15 06:22:06 2007
@@ -91,7 +91,11 @@
     public static <E extends Exchange> Expression<E> outHeaderExpression(final String headerName) {
         return new Expression<E>() {
             public Object evaluate(E exchange) {
-                Object header = exchange.getOut().getHeader(headerName);
+                Message out = exchange.getOut(false);
+                if (out == null) {
+                    return null;
+                }
+                Object header = out.getHeader(headerName);
                 if (header == null) {
                     // lets try the exchange header
                     header = exchange.getProperty(headerName);
@@ -255,7 +259,11 @@
     public static <E extends Exchange> Expression<E> outBodyExpression() {
         return new Expression<E>() {
             public Object evaluate(E exchange) {
-                return exchange.getOut().getBody();
+                Message out = exchange.getOut(false);
+                if (out == null) {
+                    return null;
+                }
+                return out.getBody();
             }
 
             @Override
@@ -272,7 +280,11 @@
     public static <E extends Exchange, T> Expression<E> outBodyExpression(final Class<T> type) {
         return new Expression<E>() {
             public Object evaluate(E exchange) {
-                return exchange.getOut().getBody(type);
+                Message out = exchange.getOut(false);
+                if (out == null) {
+                    return null;
+                }
+                return out.getBody(type);
             }
 
             @Override

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ProcessorBuilder.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ProcessorBuilder.java?rev=595310&r1=595309&r2=595310&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ProcessorBuilder.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ProcessorBuilder.java Thu Nov 15 06:22:06 2007
@@ -19,6 +19,7 @@
 import org.apache.camel.Exchange;
 import org.apache.camel.Expression;
 import org.apache.camel.Processor;
+import org.apache.camel.Message;
 
 /**
  * A builder of a number of different {@link Processor} implementations
@@ -174,7 +175,10 @@
     public static Processor removeOutHeader(final String name) {
         return new Processor() {
             public void process(Exchange exchange) {
-                exchange.getOut().removeHeader(name);
+                Message out = exchange.getOut(false);
+                if (out != null) {
+                    out.removeHeader(name);
+                }
             }
 
             @Override

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/xml/MessageVariableResolver.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/xml/MessageVariableResolver.java?rev=595310&r1=595309&r2=595310&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/xml/MessageVariableResolver.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/xml/MessageVariableResolver.java Thu Nov 15 06:22:06 2007
@@ -90,10 +90,12 @@
                 answer = in.getBody();
             }
         } else if (uri.equals(OUT_NAMESPACE)) {
-            Message out = exchange.getOut();
-            answer = out.getHeader(localPart);
-            if (answer == null && localPart.equals("body")) {
-                answer = out.getBody();
+            Message out = exchange.getOut(false);
+            if (out != null) {
+                answer = out.getHeader(localPart);
+                if (answer == null && localPart.equals("body")) {
+                    answer = out.getBody();
+                }
             }
         }