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