You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by wt...@apache.org on 2009/02/27 05:59:46 UTC

svn commit: r748393 - in /camel/branches/camel-1.x: ./ components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java components/camel-restlet/src/test/java/org/apache/camel/component/restlet/RestletFaultTest.java

Author: wtam
Date: Fri Feb 27 04:59:45 2009
New Revision: 748393

URL: http://svn.apache.org/viewvc?rev=748393&view=rev
Log:
Merged revisions 748392 via svnmerge from 
https://svn.apache.org/repos/asf/camel/trunk

........
  r748392 | wtam | 2009-02-26 23:55:02 -0500 (Thu, 26 Feb 2009) | 1 line
  
  [CAMEL-1400] Restlet default binding does not acknowledge Fault message in the exchange when creating a response
........

Added:
    camel/branches/camel-1.x/components/camel-restlet/src/test/java/org/apache/camel/component/restlet/RestletFaultTest.java
      - copied unchanged from r748392, camel/trunk/components/camel-restlet/src/test/java/org/apache/camel/component/restlet/RestletFaultTest.java
Modified:
    camel/branches/camel-1.x/   (props changed)
    camel/branches/camel-1.x/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java

Propchange: camel/branches/camel-1.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Feb 27 04:59:45 2009
@@ -1 +1 @@
-/camel/trunk:736980,739733,739904,740251,740295,740306,740596,740663,741848,742231,742705,742739,742854,742856,742898,742906,743613,743762,743773,743920,743959-743960,744123,745105,745367,745541,745751,745826,745978,746269,746872,746895,746962,747258,747678-747704
+/camel/trunk:736980,739733,739904,740251,740295,740306,740596,740663,741848,742231,742705,742739,742854,742856,742898,742906,743613,743762,743773,743920,743959-743960,744123,745105,745367,745541,745751,745826,745978,746269,746872,746895,746962,747258,747678-747704,748392

Propchange: camel/branches/camel-1.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: camel/branches/camel-1.x/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java?rev=748393&r1=748392&r2=748393&view=diff
==============================================================================
--- camel/branches/camel-1.x/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java (original)
+++ camel/branches/camel-1.x/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java Fri Feb 27 04:59:45 2009
@@ -17,6 +17,8 @@
 package org.apache.camel.component.restlet;
 
 import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
 import java.util.Map;
 
 import javax.xml.transform.dom.DOMSource;
@@ -166,8 +168,26 @@
     public void populateRestletResponseFromExchange(Exchange exchange,
             Response response) {
         
+        Message out = null;
+        if (exchange.isFailed()) {
+            // 500 for internal server error which can be overridden by response code in header
+            response.setStatus(Status.valueOf(500));
+            out = exchange.getFault(false);
+            if (out == null) {
+                Throwable t = exchange.getException();
+                if (t != null) {
+                    StringWriter sw = new StringWriter();
+                    PrintWriter pw = new PrintWriter(sw);
+                    t.printStackTrace(pw);
+                    response.setEntity(sw.toString(), MediaType.TEXT_PLAIN);
+                    return;
+                }
+            } 
+        } else {
+            out = exchange.getOut();
+        }
+        
         // get content type
-        Message out = exchange.getOut();
         MediaType mediaType = out.getHeader(RestletConstants.MEDIA_TYPE, MediaType.class);
         if (mediaType == null) {
             Object body = out.getBody();