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