You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2012/12/20 15:16:02 UTC

svn commit: r1424479 - in /cxf/trunk/rt/transports: http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java

Author: dkulp
Date: Thu Dec 20 14:16:01 2012
New Revision: 1424479

URL: http://svn.apache.org/viewvc?rev=1424479&view=rev
Log:
[CXF-4714] Better fix by fixing the underlying jetty stream

Modified:
    cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java
    cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java

Modified: cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java?rev=1424479&r1=1424478&r2=1424479&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java (original)
+++ cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java Thu Dec 20 14:16:01 2012
@@ -43,6 +43,7 @@ import org.apache.cxf.configuration.jsse
 import org.apache.cxf.configuration.security.CertificateConstraintsType;
 import org.apache.cxf.continuations.ContinuationProvider;
 import org.apache.cxf.continuations.SuspendedInvocationException;
+import org.apache.cxf.helpers.IOUtils;
 import org.apache.cxf.interceptor.Fault;
 import org.apache.cxf.io.CachedOutputStream;
 import org.apache.cxf.io.CopyingOutputStream;
@@ -394,6 +395,7 @@ public class JettyHTTPDestination extend
     
     static class JettyOutputStream extends FilterOutputStream implements CopyingOutputStream {
         final Output out;
+        boolean written;
         public JettyOutputStream(Output o) {
             super(o);
             out = o;
@@ -401,10 +403,21 @@ public class JettyHTTPDestination extend
 
         @Override
         public int copyFrom(InputStream in) throws IOException {
+            if (written) {
+                return IOUtils.copy(in, out);
+            }
             CountingInputStream c = new CountingInputStream(in);
             out.sendContent(c);
             return c.getCount();
         }
+        public void write(int b) throws IOException {
+            written = true;
+            out.write(b);
+        }
+        public void write(byte b[], int off, int len) throws IOException {
+            written = true;
+            out.write(b, off, len);
+        }
     }
     static class CountingInputStream extends FilterInputStream {
         int count;

Modified: cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java?rev=1424479&r1=1424478&r2=1424479&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java (original)
+++ cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java Thu Dec 20 14:16:01 2012
@@ -696,7 +696,7 @@ public abstract class AbstractHTTPDestin
                 written = true;
             }
             if (wrappedStream != null) {
-                return IOUtils.copy(in, wrappedStream, IOUtils.DEFAULT_BUFFER_SIZE);
+                return IOUtils.copy(in, wrappedStream);
             }
             return IOUtils.copy(in, this, IOUtils.DEFAULT_BUFFER_SIZE);
         }



Re: svn commit: r142447

Posted by Sergey Beryozkin <sb...@gmail.com>.
thanks Dan

On 20/12/12 14:16, dkulp@apache.org wrote:
> Author: dkulp
> Date: Thu Dec 20 14:16:01 2012
> New Revision: 1424479
>
> URL: http://svn.apache.org/viewvc?rev=1424479&view=rev
> Log:
> [CXF-4714] Better fix by fixing the underlying jetty stream
>
> Modified:
>      cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java
>      cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
>
> Modified: cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java
> URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java?rev=1424479&r1=1424478&r2=1424479&view=diff
> ==============================================================================
> --- cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java (original)
> +++ cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java Thu Dec 20 14:16:01 2012
> @@ -43,6 +43,7 @@ import org.apache.cxf.configuration.jsse
>   import org.apache.cxf.configuration.security.CertificateConstraintsType;
>   import org.apache.cxf.continuations.ContinuationProvider;
>   import org.apache.cxf.continuations.SuspendedInvocationException;
> +import org.apache.cxf.helpers.IOUtils;
>   import org.apache.cxf.interceptor.Fault;
>   import org.apache.cxf.io.CachedOutputStream;
>   import org.apache.cxf.io.CopyingOutputStream;
> @@ -394,6 +395,7 @@ public class JettyHTTPDestination extend
>
>       static class JettyOutputStream extends FilterOutputStream implements CopyingOutputStream {
>           final Output out;
> +        boolean written;
>           public JettyOutputStream(Output o) {
>               super(o);
>               out = o;
> @@ -401,10 +403,21 @@ public class JettyHTTPDestination extend
>
>           @Override
>           public int copyFrom(InputStream in) throws IOException {
> +            if (written) {
> +                return IOUtils.copy(in, out);
> +            }
>               CountingInputStream c = new CountingInputStream(in);
>               out.sendContent(c);
>               return c.getCount();
>           }
> +        public void write(int b) throws IOException {
> +            written = true;
> +            out.write(b);
> +        }
> +        public void write(byte b[], int off, int len) throws IOException {
> +            written = true;
> +            out.write(b, off, len);
> +        }
>       }
>       static class CountingInputStream extends FilterInputStream {
>           int count;
>
> Modified: cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
> URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java?rev=1424479&r1=1424478&r2=1424479&view=diff
> ==============================================================================
> --- cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java (original)
> +++ cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java Thu Dec 20 14:16:01 2012
> @@ -696,7 +696,7 @@ public abstract class AbstractHTTPDestin
>                   written = true;
>               }
>               if (wrappedStream != null) {
> -                return IOUtils.copy(in, wrappedStream, IOUtils.DEFAULT_BUFFER_SIZE);
> +                return IOUtils.copy(in, wrappedStream);
>               }
>               return IOUtils.copy(in, this, IOUtils.DEFAULT_BUFFER_SIZE);
>           }
>
>


-- 
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Blog: http://sberyozkin.blogspot.com