You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by kk...@apache.org on 2011/11/07 03:16:17 UTC

svn commit: r1198602 - in /tomcat/trunk: java/org/apache/coyote/http11/filters/FlushableGZIPOutputStream.java test/org/apache/coyote/http11/filters/TestFlushableGZIPOutputStream.java

Author: kkolinko
Date: Mon Nov  7 02:16:17 2011
New Revision: 1198602

URL: http://svn.apache.org/viewvc?rev=1198602&view=rev
Log:
Add test for FlushableGZIPOutputStream.write(int).
Remove unneeded &0xff in int->byte conversion from the method.
According to JLS 3rd ed ch.5.1.3, narrowing of int to byte
"simply discards all but the n lowest order bits".

Modified:
    tomcat/trunk/java/org/apache/coyote/http11/filters/FlushableGZIPOutputStream.java
    tomcat/trunk/test/org/apache/coyote/http11/filters/TestFlushableGZIPOutputStream.java

Modified: tomcat/trunk/java/org/apache/coyote/http11/filters/FlushableGZIPOutputStream.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/filters/FlushableGZIPOutputStream.java?rev=1198602&r1=1198601&r2=1198602&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/filters/FlushableGZIPOutputStream.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/filters/FlushableGZIPOutputStream.java Mon Nov  7 02:16:17 2011
@@ -62,7 +62,7 @@ public class FlushableGZIPOutputStream e
     @Override
     public synchronized void write(int i) throws IOException {
         flushLastByte();
-        rememberLastByte((byte) (i & 0xFF));
+        rememberLastByte((byte) i);
     }
 
     @Override

Modified: tomcat/trunk/test/org/apache/coyote/http11/filters/TestFlushableGZIPOutputStream.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/coyote/http11/filters/TestFlushableGZIPOutputStream.java?rev=1198602&r1=1198601&r2=1198602&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/coyote/http11/filters/TestFlushableGZIPOutputStream.java (original)
+++ tomcat/trunk/test/org/apache/coyote/http11/filters/TestFlushableGZIPOutputStream.java Mon Nov  7 02:16:17 2011
@@ -89,6 +89,48 @@ public class TestFlushableGZIPOutputStre
     }
 
     /**
+     * Test for {@code write(int)}.
+     */
+    @Test
+    public void testWriteChar() throws Exception {
+        String phrase = "Apache Tomcat "
+                + "\u0410\u043f\u0430\u0447\u0435 \u0422\u043e\u043c\u043a\u0430\u0442 ";
+        byte[] data = phrase.getBytes("UTF-8");
+
+        ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
+        OutputStream output = new FlushableGZIPOutputStream(byteOutStream);
+
+        output.write(data);
+        for (int i=0; i<data.length; i++) {
+            output.write(data[i]);
+        }
+        output.flush();
+        for (int i=0; i<data.length; i++) {
+            output.write(data[i]);
+        }
+        output.write(data);
+        output.close();
+
+        ByteArrayInputStream byteInStream =
+                new ByteArrayInputStream(byteOutStream.toByteArray());
+
+        GZIPInputStream inflaterStream = new GZIPInputStream(byteInStream);
+        ByteArrayOutputStream sink = new ByteArrayOutputStream();
+        try {
+            IOTools.flow(inflaterStream, sink);
+        } finally {
+            sink.close();
+        }
+
+        byte[] decompressedBytes = sink.toByteArray();
+        assertEquals(data.length * 4, decompressedBytes.length);
+        for (int i = 0; i < 4; i++) {
+            assertArrayEquals(data, Arrays.copyOfRange(decompressedBytes,
+                    data.length * i, data.length * (i + 1)));
+        }
+    }
+
+    /**
      * Loads file into memory.
      */
     private byte[] loadFile(File file) throws IOException {



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org