You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by "Frederic Bregier (JIRA)" <ji...@apache.org> on 2007/04/18 10:58:15 UTC

[jira] Commented: (DIRMINA-279) CompressionFilter returns error -5 (Z_BUF_ERROR) from jzlib in MINA 1.0 but not in MINA 0.9.4

    [ https://issues.apache.org/jira/browse/DIRMINA-279?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12489656 ] 

Frederic Bregier commented on DIRMINA-279:
------------------------------------------

Hi Trustin, it seems the fix generates something wrong in ProtocolCodecFilter.
In fact, right now, even if I don't use compression (most if the time I don't use compression),
for every sent message, I get an exception from server point of vue.
Of course this was not the case before updating.
Here is the error I get since I updated a few minutes ago from svn trunk (MINA 2-M1).

org.apache.mina.filter.codec.ProtocolDecoderException: java.lang.NullPointerException (Hexdump: 00 00 00 55 AC ED 00 05 73 72 00 2A 6F 70 65 6E 6C 73 64 2E 6E 65 74 77 6F 72 6B 2E 63 6F 6D 6D 6F 6E 2E 6D 65 73 73 61 67 65 2E 4C 53 44 4D 73 67 41 64 6D 69 6E 78 70 68 80 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 01 74 00 0C 61 62 63 64 65 66 67 68 69 6A 6B 6C)
	at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:189)
	at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:395)
	at org.apache.mina.common.support.AbstractIoFilterChain.access$5(AbstractIoFilterChain.java:389)
	at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:835)
	at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:256)
	at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:318)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
	at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NullPointerException
	at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:175)
	... 8 more

Should it be considered as a new issue or as the same unresolved ?

Perhaps it could be considered as unresolved on trunk ?
Frederic

> CompressionFilter returns error -5 (Z_BUF_ERROR) from jzlib in MINA 1.0 but not in MINA 0.9.4
> ---------------------------------------------------------------------------------------------
>
>                 Key: DIRMINA-279
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-279
>             Project: MINA
>          Issue Type: Bug
>          Components: Core, Filter
>    Affects Versions: 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.1.0
>         Environment: Windows XP JDK 1.5.0.6 SUN With and Without Backport
>            Reporter: Frederic Bregier
>         Assigned To: Trustin Lee
>             Fix For: 1.0.4, 1.1.1
>
>         Attachments: test.zip
>
>
> I found an issue in MINA 1.0 that was not present in MINA 0.9.4 with the compression filter.
> I was able to reproduced the problem in small example that I will attach.
> The example use both compression and serialization from MINA filters.
> The example has two kind of servers : one using demuxingIoHandler and another one without such an IoHandler (simpler).
> The example was inspired from the SumUp example. This one should also bug but it was not detected
> since the SumUp example was not printing any error while an exception occurs.
> The exception is the following, both on the client and server :
> java.io.IOException: Compression failed with return value : -5
> 	at org.apache.mina.filter.support.Zlib.deflate(Zlib.java:181)
> 	at org.apache.mina.filter.CompressionFilter.filterWrite(CompressionFilter.java:198)
> 	at org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(AbstractIoFilterChain.java:573)
> 	at org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:52)
> 	at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.filterWrite(AbstractIoFilterChain.java:789)
> 	at org.apache.mina.filter.codec.ProtocolCodecFilter.filterWrite(ProtocolCodecFilter.java:221)
> 	at org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(AbstractIoFilterChain.java:573)
> 	at org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:52)
> 	at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.filterWrite(AbstractIoFilterChain.java:789)
> 	at org.apache.mina.common.support.AbstractIoFilterChain$2.filterWrite(AbstractIoFilterChain.java:213)
> 	at org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(AbstractIoFilterChain.java:573)
> 	at org.apache.mina.common.support.AbstractIoFilterChain.fireFilterWrite(AbstractIoFilterChain.java:564)
> 	at org.apache.mina.transport.socket.nio.SocketSessionImpl.write0(SocketSessionImpl.java:186)
> 	at org.apache.mina.common.support.BaseIoSession.write(BaseIoSession.java:146)
> 	at org.apache.mina.common.support.BaseIoSession.write(BaseIoSession.java:132)
> 	at test.ClientSessionHandler.sessionOpened(ClientSessionHandler.java:30)
> 	at org.apache.mina.common.support.AbstractIoFilterChain$2.sessionOpened(AbstractIoFilterChain.java:156)
> 	at org.apache.mina.common.support.AbstractIoFilterChain.callNextSessionOpened(AbstractIoFilterChain.java:431)
> 	at org.apache.mina.common.support.AbstractIoFilterChain.access$600(AbstractIoFilterChain.java:52)
> 	at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.sessionOpened(AbstractIoFilterChain.java:752)
> 	at org.apache.mina.common.IoFilterAdapter.sessionOpened(IoFilterAdapter.java:63)
> 	at org.apache.mina.common.support.AbstractIoFilterChain.callNextSessionOpened(AbstractIoFilterChain.java:431)
> 	at org.apache.mina.common.support.AbstractIoFilterChain.access$600(AbstractIoFilterChain.java:52)
> 	at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.sessionOpened(AbstractIoFilterChain.java:752)
> 	at org.apache.mina.common.IoFilterAdapter.sessionOpened(IoFilterAdapter.java:63)
> 	at org.apache.mina.common.support.AbstractIoFilterChain.callNextSessionOpened(AbstractIoFilterChain.java:431)
> 	at org.apache.mina.common.support.AbstractIoFilterChain.access$600(AbstractIoFilterChain.java:52)
> 	at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.sessionOpened(AbstractIoFilterChain.java:752)
> 	at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:261)
> 	at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:305)
> 	at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
> 	at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
> 	at java.lang.Thread.run(Thread.java:595)
> I have one idea for the reason of the bug but I am not sure since I am not an expert on jzlib usage :
> In Mina 0.9.4, the threadpool was inside Mina using its own way.
> In Mina 1.0, the threadpool is using backport (or native JDK 1.5 if change are made in Mina code).
> (both case are in bugs, with and without backport)
> Perhaps the reason of the bug could be any persistent data needed by jzlib in order to compressed
> that are not persistent in Mina 1.0.
> However, the bug is relative both to the server and the client (which is not supposed to use any thread pool).
> And the bug is immediate with only one client making only one connection and from the first write.
> So it should not be this way.
> Frederic

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.