Fixed.
Thanks a lot for the patch!!!
WBR,
Alexey.
On May 16, 2009, at 9:49 , Bongjae Chang wrote:
> I filed the issue and attached the diff.
>
> https://grizzly.dev.java.net/issues/show_bug.cgi?id=603
>
> Thanks.
> --
> Bongjae Chang
>
>
> ----- Original Message -----
> From: Oleksiy Stashok
> To: dev_at_grizzly.dev.java.net
> Sent: Friday, May 15, 2009 9:31 PM
> Subject: Re: About test case failure
>
> You're right!
> Can you pls. file the issue and attach the patch?
>
> WBR,
> Alexey.
>
> On May 15, 2009, at 9:40 , Bongjae Chang wrote:
>
>> Hi,
>>
>> I have a problem when I run Grizzly's test cases with 4 CPU.
>>
>> Many test cases was failed and here is sample.
>>
>> ----
>> -------------------------------------------------------------------------------
>> Test set: com.sun.grizzly.DefaultControllerTest
>> -------------------------------------------------------------------------------
>> Tests run: 3, Failures: 0, Errors: 2, Skipped: 0, Time elapsed:
>> 14.047 sec <<< FAILURE!
>> testSimplePacket(com.sun.grizzly.DefaultControllerTest) Time
>> elapsed: 5.016 sec <<< ERROR!
>> java.nio.channels.NotYetConnectedException
>> at
>> com.sun.grizzly.TCPConnectorHandler.write(TCPConnectorHandler.java:
>> 403)
>> at
>> com
>> .sun
>> .grizzly
>> .utils.NonBlockingTCPIOClient.send(NonBlockingTCPIOClient.java:74)
>> at
>> com
>> .sun
>> .grizzly
>> .utils.NonBlockingTCPIOClient.send(NonBlockingTCPIOClient.java:70)
>> at
>> com
>> .sun
>> .grizzly
>> .DefaultControllerTest.testSimplePacket(DefaultControllerTest.java:
>> 83)
>>
>> testSeveralPackets(com.sun.grizzly.DefaultControllerTest) Time
>> elapsed: 8.031 sec <<< ERROR!
>> java.nio.channels.NotYetConnectedException
>> at
>> com.sun.grizzly.TCPConnectorHandler.write(TCPConnectorHandler.java:
>> 403)
>> at
>> com
>> .sun
>> .grizzly
>> .utils.NonBlockingTCPIOClient.send(NonBlockingTCPIOClient.java:74)
>> at
>> com
>> .sun
>> .grizzly
>> .utils.NonBlockingTCPIOClient.send(NonBlockingTCPIOClient.java:70)
>> at
>> com
>> .sun
>> .grizzly
>> .DefaultControllerTest
>> .testSeveralPackets(DefaultControllerTest.java:108)
>> ----
>>
>> When I reviewed it, I could know that failed test cases used
>> NonBlockingTCPIOClient.
>>
>> At first, NonBlockingTCPIOClient didn't initialize the Controller,
>> then TCPConnectorHandler initialized the Controller lazily like
>> this when TCPIOClient#connect() was called.
>>
>> In TCPConnectorHandler.java
>> ----
>> public void connect(SocketAddress remoteAddress, SocketAddress
>> localAddress) throws IOException {
>> ...
>> if( controller == null ) {
>> isStandalone = true;
>> controller = new Controller();
>> ...
>> ExecutorService threadPool = new DefaultThreadPool();
>> controller.setThreadPool(threadPool);
>> ...
>>
>> }
>> ...
>>
>> }
>> ----
>>
>> Above, TCPConnectorHandler overwrites the thread pool, so
>> controller becomes to have new thread pool which has only default
>> core and pool size.
>>
>> Then, tasks of standalone controller will be waited in
>> ThreadPoolExecutor's queue. It is similar to http://www.nabble.com/Default-thread-pool-size-issue-td23419849.html
>> which I said.
>>
>> So I think that the following is enough because the controller
>> already creates the thread pool by autoconfigure.
>>
>> In TCPConnectorHandler.java
>> ----
>> public void connect(SocketAddress remoteAddress, SocketAddress
>> localAddress) throws IOException {
>> ...
>> if( controller == null ) {
>> isStandalone = true;
>> controller = new Controller();
>> ...
>> //ExecutorService threadPool = new DefaultThreadPool();
>> //controller.setThreadPool(threadPool);
>> ...
>>
>> }
>> ...
>>
>> }
>> ----
>>
>> And I think all XXXConnectorHandlers should be modified.
>>
>> Thanks.
>>
>> --
>> Bongjae Chang
>>
>>
>
>