dev@grizzly.java.net

Re: PUPreProcessorTest#testTLSPUPreProcessor() is failed

From: Oleksiy Stashok <Oleksiy.Stashok_at_Sun.COM>
Date: Tue, 25 Aug 2009 11:22:08 +0200

Fixed.

Thank you, Bongjae.

WBR,
Alexey.

On Aug 25, 2009, at 7:16 , Bongjae Chang wrote:

> Hi,
>
> Today, I updated grizzly from current svn and I tested the unit test
> case of PUPreProcessorTest.
>
> But PUPreProcessorTest#testTLSPUPreProcessor() unit test is failed.
>
> Here are logs.
>
> ---
> In com.sun.grizzly.portunif.PUPreProcessorTest.txt,
>
> -------------------------------------------------------------------------------
> Test set: com.sun.grizzly.portunif.PUPreProcessorTest
> -------------------------------------------------------------------------------
> Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed:
> 3.297 sec <<< FAILURE!
> testTLSPUPreProcessor(com.sun.grizzly.portunif.PUPreProcessorTest)
> Time elapsed: 3.265 sec <<< ERROR!
> java.io.EOFException: Unexpected client EOF!
> at
> com
> .sun
> .grizzly
> .utils.NonBlockingTCPIOClient.receive(NonBlockingTCPIOClient.java:86)
> at
> com
> .sun
> .grizzly
> .utils.NonBlockingTCPIOClient.receive(NonBlockingTCPIOClient.java:78)
> at
> com
> .sun
> .grizzly
> .portunif
> .PUPreProcessorTest.testTLSPUPreProcessor(PUPreProcessorTest.java:135)
> ---
>
> ---
> In my console log,
>
> °æ°í: PortUnification exception
> java.nio.BufferOverflowException
> at java.nio.HeapByteBuffer.put(HeapByteBuffer.java:182)
> at
> com
> .sun
> .grizzly.portunif.TLSPUPreProcessor.process(TLSPUPreProcessor.java:
> 226)
> at com.sun.grizzly.portunif.PUReadFilter.execute(PUReadFilter.java:
> 177)
> at
> com
> .sun
> .grizzly
> .DefaultProtocolChain
> .executeProtocolFilter(DefaultProtocolChain.java:135)
> at
> com
> .sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:
> 102)
> at
> com
> .sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:
> 88)
> at
> com
> .sun
> .grizzly
> .ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
> at
> com
> .sun
> .grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
> at com.sun.grizzly.NIOContext.execute(NIOContext.java:510)
> at
> com
> .sun
> .grizzly
> .SelectorHandlerRunner.handleSelectedKey(SelectorHandlerRunner.java:
> 357)
> at
> com
> .sun
> .grizzly
> .SelectorHandlerRunner.handleSelectedKeys(SelectorHandlerRunner.java:
> 257)
> at
> com
> .sun
> .grizzly.SelectorHandlerRunner.doSelect(SelectorHandlerRunner.java:
> 194)
> at
> com.sun.grizzly.SelectorHandlerRunner.run(SelectorHandlerRunner.java:
> 129)
> at com.sun.grizzly.util.FixedThreadPool
> $BasicWorker.dowork(FixedThreadPool.java:379)
> at com.sun.grizzly.util.FixedThreadPool
> $BasicWorker.run(FixedThreadPool.java:360)
> at java.lang.Thread.run(Thread.java:619)
> 2009. 8. 25 ¿ÀÈÄ 1:50:53 com.sun.grizzly.portunif.PUReadFilter execute
> °æ°í: PortUnification exception
> java.io.EOFException
> at
> com
> .sun
> .grizzly.portunif.TLSPUPreProcessor.process(TLSPUPreProcessor.java:
> 263)
> at com.sun.grizzly.portunif.PUReadFilter.execute(PUReadFilter.java:
> 177)
> at
> com
> .sun
> .grizzly
> .DefaultProtocolChain
> .executeProtocolFilter(DefaultProtocolChain.java:135)
> at
> com
> .sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:
> 102)
> at
> com
> .sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:
> 88)
> at
> com
> .sun
> .grizzly
> .ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
> at
> com
> .sun
> .grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
> at com.sun.grizzly.NIOContext.execute(NIOContext.java:510)
> at
> com
> .sun
> .grizzly
> .SelectorHandlerRunner.handleSelectedKey(SelectorHandlerRunner.java:
> 357)
> at
> com
> .sun
> .grizzly
> .SelectorHandlerRunner.handleSelectedKeys(SelectorHandlerRunner.java:
> 257)
> at
> com
> .sun
> .grizzly.SelectorHandlerRunner.doSelect(SelectorHandlerRunner.java:
> 194)
> at
> com.sun.grizzly.SelectorHandlerRunner.run(SelectorHandlerRunner.java:
> 129)
> at com.sun.grizzly.util.FixedThreadPool
> $BasicWorker.dowork(FixedThreadPool.java:379)
> at com.sun.grizzly.util.FixedThreadPool
> $BasicWorker.run(FixedThreadPool.java:360)
> at java.lang.Thread.run(Thread.java:619)
>
> java.io.EOFException: Unexpected client EOF!
> at
> com
> .sun
> .grizzly
> .utils.NonBlockingTCPIOClient.receive(NonBlockingTCPIOClient.java:86)
> at
> com
> .sun
> .grizzly
> .utils.NonBlockingTCPIOClient.receive(NonBlockingTCPIOClient.java:78)
> at
> com
> .sun
> .grizzly
> .portunif
> .PUPreProcessorTest.testTLSPUPreProcessor(PUPreProcessorTest.java:135)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun
> .reflect
> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun
> .reflect
> .DelegatingMethodAccessorImpl
> .invoke(DelegatingMethodAccessorImpl.java:25)
> at
> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:
> 40)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun
> .reflect
> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun
> .reflect
> .DelegatingMethodAccessorImpl
> .invoke(DelegatingMethodAccessorImpl.java:25)
> at com.intellij.rt.execution.application.AppMain.main(AppMain.java:
> 90)
>
> ---
>
> When I reviewed the error simply, it seemed that the problem had
> been caused by rev.3539.
>
> ---
> New Revision: 3539
>
> Modified:
> trunk/code/modules/utils/src/main/java/com/sun/grizzly/util/
> SSLUtils.java
>
> Log:
> + return inputBB to original state, even if Exception occurred
>
> Modified: trunk/code/modules/utils/src/main/java/com/sun/grizzly/
> util/SSLUtils.java
> Url: https://grizzly.dev.java.net/source/browse/grizzly/trunk/code/modules/utils/src/main/java/com/sun/grizzly/util/SSLUtils.java?view=diff&rev=3539&p1=trunk/code/modules/utils/src/main/java/com/sun/grizzly/util/SSLUtils.java&p2=trunk/code/modules/utils/src/main/java/com/sun/grizzly/util/SSLUtils.java&r1=3538&r2=3539
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- trunk/code/modules/utils/src/main/java/com/sun/grizzly/util/
> SSLUtils.java (original)
> +++ trunk/code/modules/utils/src/main/java/com/sun/grizzly/util/
> SSLUtils.java 2009-08-24 12:08:24+0000
> @@ -260,9 +260,13 @@
> }
> }
>
> - inputBB.flip();
> - SSLEngineResult result = sslEngine.unwrap(inputBB,
> byteBuffer);
> - inputBB.compact();
> + inputBB.flip();
> + SSLEngineResult result;
> + try {
> + result = sslEngine.unwrap(inputBB, byteBuffer);
> + } finally {
> + inputBB.compact();
> + }
>
> // Logging block
> if (LoggerUtils.getLogger().isLoggable(Level.FINE)) {
> ---
>
> When I reverted the changes experimentally, I could see that the
> test passed. :)
>
> Alexey, could you please review this regression?
>
> Thanks!
>
> --
> Bongjae Chang