Author: trustin
Date: Tue Feb 19 19:18:28 2008
New Revision: 629330

URL: http://svn.apache.org/viewvc?rev=629330&view=rev
Log:
Fixed issue: DIRMINA-530 (Compression filter - trivial bug fix and fix for use 
with SSL)
* applied Justin's patch
** Replaced inBuffer.limit() with inBuffer.remaining()
** Changed CompressionFilter.messageReceived not to process non-IoBuffer 
messages


Modified:
    
mina/branches/1.0/filter-compression/src/main/java/org/apache/mina/filter/CompressionFilter.java
    
mina/branches/1.0/filter-compression/src/main/java/org/apache/mina/filter/support/Zlib.java
    
mina/branches/1.1/filter-compression/src/main/java/org/apache/mina/filter/CompressionFilter.java
    
mina/branches/1.1/filter-compression/src/main/java/org/apache/mina/filter/support/Zlib.java
    
mina/trunk/filter-compression/src/main/java/org/apache/mina/filter/compression/CompressionFilter.java
    
mina/trunk/filter-compression/src/main/java/org/apache/mina/filter/compression/Zlib.java

Modified: 
mina/branches/1.0/filter-compression/src/main/java/org/apache/mina/filter/CompressionFilter.java
URL: 
http://svn.apache.org/viewvc/mina/branches/1.0/filter-compression/src/main/java/org/apache/mina/filter/CompressionFilter.java?rev=629330&r1=629329&r2=629330&view=diff
==============================================================================
--- 
mina/branches/1.0/filter-compression/src/main/java/org/apache/mina/filter/CompressionFilter.java
 (original)
+++ 
mina/branches/1.0/filter-compression/src/main/java/org/apache/mina/filter/CompressionFilter.java
 Tue Feb 19 19:18:28 2008
@@ -145,7 +145,7 @@
 
     public void messageReceived(NextFilter nextFilter, IoSession session,
             Object message) throws Exception {
-        if (!compressInbound) {
+        if (!compressInbound || !(message instanceof ByteBuffer)) {
             nextFilter.messageReceived(session, message);
             return;
         }

Modified: 
mina/branches/1.0/filter-compression/src/main/java/org/apache/mina/filter/support/Zlib.java
URL: 
http://svn.apache.org/viewvc/mina/branches/1.0/filter-compression/src/main/java/org/apache/mina/filter/support/Zlib.java?rev=629330&r1=629329&r2=629330&view=diff
==============================================================================
--- 
mina/branches/1.0/filter-compression/src/main/java/org/apache/mina/filter/support/Zlib.java
 (original)
+++ 
mina/branches/1.0/filter-compression/src/main/java/org/apache/mina/filter/support/Zlib.java
 Tue Feb 19 19:18:28 2008
@@ -100,9 +100,11 @@
             throw new IllegalStateException("not initialized as INFLATER");
         }
 
-        byte[] inBytes = new byte[inBuffer.limit()];
+        byte[] inBytes = new byte[inBuffer.remaining()];
         inBuffer.get(inBytes).flip();
 
+        // We could probably do this better, if we're willing to return 
multiple buffers
+        //  (e.g. with a callback function)
         byte[] outBytes = new byte[inBytes.length * 2];
         ByteBuffer outBuffer = ByteBuffer.allocate(outBytes.length);
         outBuffer.setAutoExpand(true);
@@ -155,7 +157,7 @@
             throw new IllegalStateException("not initialized as DEFLATER");
         }
 
-        byte[] inBytes = new byte[inBuffer.limit()];
+        byte[] inBytes = new byte[inBuffer.remaining()];
         inBuffer.get(inBytes).flip();
 
         // according to spec, destination buffer should be 0.1% larger

Modified: 
mina/branches/1.1/filter-compression/src/main/java/org/apache/mina/filter/CompressionFilter.java
URL: 
http://svn.apache.org/viewvc/mina/branches/1.1/filter-compression/src/main/java/org/apache/mina/filter/CompressionFilter.java?rev=629330&r1=629329&r2=629330&view=diff
==============================================================================
--- 
mina/branches/1.1/filter-compression/src/main/java/org/apache/mina/filter/CompressionFilter.java
 (original)
+++ 
mina/branches/1.1/filter-compression/src/main/java/org/apache/mina/filter/CompressionFilter.java
 Tue Feb 19 19:18:28 2008
@@ -145,7 +145,7 @@
 
     public void messageReceived(NextFilter nextFilter, IoSession session,
             Object message) throws Exception {
-        if (!compressInbound) {
+        if (!compressInbound || !(message instanceof ByteBuffer)) {
             nextFilter.messageReceived(session, message);
             return;
         }

Modified: 
mina/branches/1.1/filter-compression/src/main/java/org/apache/mina/filter/support/Zlib.java
URL: 
http://svn.apache.org/viewvc/mina/branches/1.1/filter-compression/src/main/java/org/apache/mina/filter/support/Zlib.java?rev=629330&r1=629329&r2=629330&view=diff
==============================================================================
--- 
mina/branches/1.1/filter-compression/src/main/java/org/apache/mina/filter/support/Zlib.java
 (original)
+++ 
mina/branches/1.1/filter-compression/src/main/java/org/apache/mina/filter/support/Zlib.java
 Tue Feb 19 19:18:28 2008
@@ -100,9 +100,11 @@
             throw new IllegalStateException("not initialized as INFLATER");
         }
 
-        byte[] inBytes = new byte[inBuffer.limit()];
+        byte[] inBytes = new byte[inBuffer.remaining()];
         inBuffer.get(inBytes).flip();
 
+        // We could probably do this better, if we're willing to return 
multiple buffers
+        //  (e.g. with a callback function)
         byte[] outBytes = new byte[inBytes.length * 2];
         ByteBuffer outBuffer = ByteBuffer.allocate(outBytes.length);
         outBuffer.setAutoExpand(true);
@@ -155,7 +157,7 @@
             throw new IllegalStateException("not initialized as DEFLATER");
         }
 
-        byte[] inBytes = new byte[inBuffer.limit()];
+        byte[] inBytes = new byte[inBuffer.remaining()];
         inBuffer.get(inBytes).flip();
 
         // according to spec, destination buffer should be 0.1% larger

Modified: 
mina/trunk/filter-compression/src/main/java/org/apache/mina/filter/compression/CompressionFilter.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/filter-compression/src/main/java/org/apache/mina/filter/compression/CompressionFilter.java?rev=629330&r1=629329&r2=629330&view=diff
==============================================================================
--- 
mina/trunk/filter-compression/src/main/java/org/apache/mina/filter/compression/CompressionFilter.java
 (original)
+++ 
mina/trunk/filter-compression/src/main/java/org/apache/mina/filter/compression/CompressionFilter.java
 Tue Feb 19 19:18:28 2008
@@ -143,7 +143,7 @@
     @Override
     public void messageReceived(NextFilter nextFilter, IoSession session,
             Object message) throws Exception {
-        if (!compressInbound) {
+        if (!compressInbound || !(message instanceof IoBuffer)) {
             nextFilter.messageReceived(session, message);
             return;
         }

Modified: 
mina/trunk/filter-compression/src/main/java/org/apache/mina/filter/compression/Zlib.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/filter-compression/src/main/java/org/apache/mina/filter/compression/Zlib.java?rev=629330&r1=629329&r2=629330&view=diff
==============================================================================
--- 
mina/trunk/filter-compression/src/main/java/org/apache/mina/filter/compression/Zlib.java
 (original)
+++ 
mina/trunk/filter-compression/src/main/java/org/apache/mina/filter/compression/Zlib.java
 Tue Feb 19 19:18:28 2008
@@ -99,9 +99,11 @@
             throw new IllegalStateException("not initialized as INFLATER");
         }
 
-        byte[] inBytes = new byte[inBuffer.limit()];
+        byte[] inBytes = new byte[inBuffer.remaining()];
         inBuffer.get(inBytes).flip();
 
+        // We could probably do this better, if we're willing to return 
multiple buffers
+        // (e.g. with a callback function)
         byte[] outBytes = new byte[inBytes.length * 2];
         IoBuffer outBuffer = IoBuffer.allocate(outBytes.length);
         outBuffer.setAutoExpand(true);
@@ -152,7 +154,7 @@
             throw new IllegalStateException("not initialized as DEFLATER");
         }
 
-        byte[] inBytes = new byte[inBuffer.limit()];
+        byte[] inBytes = new byte[inBuffer.remaining()];
         inBuffer.get(inBytes).flip();
 
         // according to spec, destination buffer should be 0.1% larger


Reply via email to