You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Peter Rossbach <pr...@objektpark.de> on 2006/10/30 14:30:17 UTC

It seems that Http11NioProtocol handler not working at mac os x 10.4.8 ppc

Hi Filip,

I am starting testing your new NioProtocol handler, but I got  
following exception:

30.10.2006 13:37:24 org.apache.tomcat.util.net.NioEndpoint  
setSocketOptions
SCHWERWIEGEND:
java.net.SocketException: Invalid argument
         at sun.nio.ch.Net.setIntOption0(Native Method)
         at sun.nio.ch.Net.setIntOption(Net.java:152)
         at sun.nio.ch.SocketChannelImpl$1.setInt 
(SocketChannelImpl.java:372)
         at sun.nio.ch.SocketOptsImpl.setInt(SocketOptsImpl.java:46)
         at sun.nio.ch.SocketOptsImpl$IP.typeOfService 
(SocketOptsImpl.java:249)
         at sun.nio.ch.OptionAdaptor.setTrafficClass 
(OptionAdaptor.java:158)
         at sun.nio.ch.SocketAdaptor.setTrafficClass 
(SocketAdaptor.java:320)
         at org.apache.tomcat.util.net.SocketProperties.setProperties 
(SocketProperties.java:107)
         at org.apache.tomcat.util.net.NioEndpoint.setSocketOptions 
(NioEndpoint.java:742)
         at org.apache.tomcat.util.net.NioEndpoint$Worker.run 
(NioEndpoint.java:1423)
         at java.lang.Thread.run(Thread.java:613)


==

My connector config is:

     <Connector port="8080"
                maxThreads="150" connectionTimeout="20000"
                redirectPort="8443"
                protocol="org.apache.coyote.http11.Http11NioProtocol" />

After some google search I found that soTrafficClass are not  
supported at mac os x :-(
s. http://jira.safehaus.org/browse/PENROSE-71

I comment out  L 106 at class o.a.t.util.net.SocketProperties.

//        socket.setTrafficClass(soTrafficClass);

Before I did this: I check starting connector with some different  
values without success

ex.
     <Connector port="8080"
                maxThreads="150" connectionTimeout="20000"
                redirectPort="8443"
                protocol="org.apache.coyote.http11.Http11NioProtocol"
		socket.soTrafficClass="2" />

After that patch the Connector work, but with the comet style chat  
example I have more trouble:

INFO: Server startup in 3025 ms
Exception in thread "http-8080-1" java.lang.NullPointerException
         at org.apache.tomcat.util.net.NioEndpoint$Worker.run 
(NioEndpoint.java:1441)
         at java.lang.Thread.run(Thread.java:613)
Exception in thread "http-8080-2" java.lang.NullPointerException
         at org.apache.tomcat.util.net.NioEndpoint$Worker.run 
(NioEndpoint.java:1441)
         at java.lang.Thread.run(Thread.java:613)

--
Chat example really working? I see the posted messages only after  
socket is closed (with Firefox 1.5)...

Next I test the chat example with APR handler, again.

Regards
Peter Roßbach
pr@objektpark.de




Re: It seems that Http11NioProtocol handler not working at mac os x 10.4.8 ppc

Posted by Filip Hanik - Dev Lists <de...@hanik.com>.
interesting, I will take a look

thanks for the feedback
Filip

Peter Rossbach wrote:
> Hi Filip,
>
> I found that MAC OS X only support setTrafficClass with following JDK 
> option
>
> -Djava.net.preferIPv4Stack=true
>
> http://lists.apple.com/archives/java-dev/2006/Jun/msg00414.html
>
> It seems a older IPV6 bug. At which place we can document those 
> things? -> F&Q
>
>
> The chat example flush the messages only I got NPE:
>
> INFO: Server startup in 2642 ms
> Exception in thread "http-8080-1" java.lang.NullPointerException
>         at 
> org.apache.tomcat.util.net.NioEndpoint$Worker.run(NioEndpoint.java:1441)
>         at java.lang.Thread.run(Thread.java:613)
>
> After this NPE the messages flush to the browser an connection are 
> closed.
>
> Regards
> Peter
>
>
> Am 30.10.2006 um 15:04 schrieb Filip Hanik - Dev Lists:
>
>> try to set the property socket.soTrafficClass to some other value,
>> if it's not working, what JDK are you running, here is the flag 
>> described by SUN
>>
>> http://java.sun.com/j2se/1.5.0/docs/api/java/net/Socket.html#setTrafficClass(int) 
>>
>>
>>
>>
>> Peter Rossbach wrote:
>>> Hi Filip,
>>>
>>> I am starting testing your new NioProtocol handler, but I got 
>>> following exception:
>>>
>>> 30.10.2006 13:37:24 org.apache.tomcat.util.net.NioEndpoint 
>>> setSocketOptions
>>> SCHWERWIEGEND:
>>> java.net.SocketException: Invalid argument
>>>         at sun.nio.ch.Net.setIntOption0(Native Method)
>>>         at sun.nio.ch.Net.setIntOption(Net.java:152)
>>>         at 
>>> sun.nio.ch.SocketChannelImpl$1.setInt(SocketChannelImpl.java:372)
>>>         at sun.nio.ch.SocketOptsImpl.setInt(SocketOptsImpl.java:46)
>>>         at 
>>> sun.nio.ch.SocketOptsImpl$IP.typeOfService(SocketOptsImpl.java:249)
>>>         at 
>>> sun.nio.ch.OptionAdaptor.setTrafficClass(OptionAdaptor.java:158)
>>>         at 
>>> sun.nio.ch.SocketAdaptor.setTrafficClass(SocketAdaptor.java:320)
>>>         at 
>>> org.apache.tomcat.util.net.SocketProperties.setProperties(SocketProperties.java:107) 
>>>
>>>         at 
>>> org.apache.tomcat.util.net.NioEndpoint.setSocketOptions(NioEndpoint.java:742) 
>>>
>>>         at 
>>> org.apache.tomcat.util.net.NioEndpoint$Worker.run(NioEndpoint.java:1423) 
>>>
>>>         at java.lang.Thread.run(Thread.java:613)
>>>
>>>
>>> ==
>>>
>>> My connector config is:
>>>
>>>     <Connector port="8080"
>>>                maxThreads="150" connectionTimeout="20000"
>>>                redirectPort="8443"
>>>                protocol="org.apache.coyote.http11.Http11NioProtocol" />
>>>
>>> After some google search I found that soTrafficClass are not 
>>> supported at mac os x :-(
>>> s. http://jira.safehaus.org/browse/PENROSE-71
>>>
>>> I comment out  L 106 at class o.a.t.util.net.SocketProperties.
>>>
>>> //        socket.setTrafficClass(soTrafficClass);
>>>
>>> Before I did this: I check starting connector with some different 
>>> values without success
>>>
>>> ex.
>>>     <Connector port="8080"
>>>                maxThreads="150" connectionTimeout="20000"
>>>                redirectPort="8443"
>>>                protocol="org.apache.coyote.http11.Http11NioProtocol"
>>>         socket.soTrafficClass="2" />
>>>
>>> After that patch the Connector work, but with the comet style chat 
>>> example I have more trouble:
>>>
>>> INFO: Server startup in 3025 ms
>>> Exception in thread "http-8080-1" java.lang.NullPointerException
>>>         at 
>>> org.apache.tomcat.util.net.NioEndpoint$Worker.run(NioEndpoint.java:1441) 
>>>
>>>         at java.lang.Thread.run(Thread.java:613)
>>> Exception in thread "http-8080-2" java.lang.NullPointerException
>>>         at 
>>> org.apache.tomcat.util.net.NioEndpoint$Worker.run(NioEndpoint.java:1441) 
>>>
>>>         at java.lang.Thread.run(Thread.java:613)
>>>
>>> --Chat example really working? I see the posted messages only after 
>>> socket is closed (with Firefox 1.5)...
>>>
>>> Next I test the chat example with APR handler, again.
>>>
>>> Regards
>>> Peter Roßbach
>>> pr@objektpark.de
>>>
>>>
>>>
>>>
>>> ------------------------------------------------------------------------ 
>>>
>>>
>>> No virus found in this incoming message.
>>> Checked by AVG Free Edition.
>>> Version: 7.1.408 / Virus Database: 268.13.17/505 - Release Date: 
>>> 10/27/2006
>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: dev-help@tomcat.apache.org
>>
>>
>
>
> ------------------------------------------------------------------------
>
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.1.408 / Virus Database: 268.13.17/505 - Release Date: 10/27/2006
>
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: It seems that Http11NioProtocol handler not working at mac os x 10.4.8 ppc

Posted by Remy Maucherat <re...@apache.org>.
Peter Rossbach wrote:
> Hi Filip,
> 
> ok, next step:
> 
> 30.10.2006 19:51:44 org.apache.catalina.core.ApplicationContext log
> INFO: ChatServlet: Begin for session: DC3A87204AA3AE2A441848596CF77373
> 30.10.2006 19:52:27 org.apache.catalina.core.ApplicationContext log
> INFO: ChatServlet: Error for session: DC3A87204AA3AE2A441848596CF77373
> 
> ===
> 
> It seems that the buffer flush at ChatServlet work, but browser not 
> showing the result. The connection connection timeout
> close the socket and then browser get the results.
> 
> Can you send me a working comet style example?

The example doesn't "really" work right now, as the browser won't 
render. The data was sent last time I checked (that's all I was 
interested in).

It would be good to improve it :)

Rémy


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: It seems that Http11NioProtocol handler not working at mac os x 10.4.8 ppc

Posted by Peter Rossbach <pr...@objektpark.de>.
Hi Filip,

ok, next step:

30.10.2006 19:51:44 org.apache.catalina.core.ApplicationContext log
INFO: ChatServlet: Begin for session: DC3A87204AA3AE2A441848596CF77373
30.10.2006 19:52:27 org.apache.catalina.core.ApplicationContext log
INFO: ChatServlet: Error for session: DC3A87204AA3AE2A441848596CF77373

===

It seems that the buffer flush at ChatServlet work, but browser not  
showing the result. The connection connection timeout
close the socket and then browser get the results.

Can you send me a working comet style example?

Regards
Peter






Am 30.10.2006 um 18:58 schrieb Filip Hanik - Dev Lists:

> ok, I fixed the NPE, thanks for bringing to my attention. I haven't  
> used the chat app yet, so I can't speak for how it works.
>
> Filip
>
> Peter Rossbach wrote:
>> Hi Filip,
>>
>> I have use newest tomcat 6 svn head, with jdk 1.5.0_06, MAC OS X  
>> 10.4.8, PPC,
>> fresh build.
>>
>> Used Safari and FireFox 1.5
>>
>> Open a Window 1
>>
>> http://localhost:8080/examples/jsp/chat/login.jsp
>> -> get post.jsp dialog
>>
>> Open new Window 2 with
>> http://localhost:8080/examples/jsp/chat/chat
>>
>> -> send a message at window 1
>>
>> result: see nothing at window 2
>> after 20 Sec (connectiontimeout from connector)
>> the messages flush at window 2
>>
>> without my patch I git before a NPE at catalina.out.
>>
>> Regards
>> Peter
>>
>>
>> Am 30.10.2006 um 16:52 schrieb Filip Hanik - Dev Lists:
>>
>>> how do you reproduce this? I've added in your fix, but cant  
>>> reproduce the problem
>>>
>>> Filip
>>>
>>> Peter Rossbach wrote:
>>>> Hi Filip.
>>>>
>>>> you see at my situation the key can be null:
>>>>
>>>> 30.10.2006 16:03:20 org.apache.tomcat.util.net.NioEndpoint 
>>>> $Worker run
>>>> INFO:  
>>>> socket=org.apache.tomcat.util.net.NioChannel@58473e:java.nio.channe 
>>>> ls.SocketChannel[connected local=/127.0.0.1:8080 remote=/ 
>>>> 127.0.0.1:50517] key=sun.nio.ch.SelectionKeyImpl@5138a4
>>>> 30.10.2006 16:03:40 org.apache.tomcat.util.net.NioEndpoint 
>>>> $Worker run
>>>> INFO:  
>>>> socket=org.apache.tomcat.util.net.NioChannel@a6343d:java.nio.channe 
>>>> ls.SocketChannel[closed] key=null
>>>>                                                                     
>>>>                                                                     
>>>>                                                         
>>>> #################
>>>>
>>>> Exception in thread "http-8080-2" java.lang.NullPointerException
>>>>         at org.apache.tomcat.util.net.NioEndpoint$Worker.run 
>>>> (NioEndpoint.java:1442)
>>>>         at java.lang.Thread.run(Thread.java:613)
>>>>
>>>>
>>>> Here my patch:
>>>>
>>>> === L 1436 f
>>>>
>>>>                         NioChannel socket = (NioChannel)channel;
>>>>
>>>>                         SelectionKey key = socket.getIOChannel 
>>>> ().keyFor(socket.getPoller().getSelector());
>>>>                         int handshake = -1;
>>>>                         log.info("socket=" + socket + " key=" +  
>>>> key );
>>>>                         if(key != null) {
>>>>                             try {
>>>>                                 handshake = socket.handshake 
>>>> (key.isReadable(), key.isWritable());
>>>>                             }catch ( IOException x ) {
>>>>                                 handshake = -1;
>>>>                                 if ( log.isDebugEnabled() )  
>>>> log.debug("Error during SSL handshake",x);
>>>>                             }catch ( CancelledKeyException ckx ) {
>>>>                                 handshake = -1;
>>>>                             }
>>>>                         } else {
>>>>                                handshake = -1;
>>>>                         }
>>>>
>>>>                         if ( handshake == 0 ) {
>>>>                             // Process the request from this socket
>>>>                             if ((status != null) &&  
>>>> (handler.event(socket, status) == Handler.SocketState.CLOSED)) {
>>>>                                 // Close socket and pool
>>>>                                 try {
>>>>                                     KeyAttachment att =  
>>>> (KeyAttachment)socket.getAttachment(true);
>>>>                                     try {socket.close();}catch  
>>>> (Exception ignore){}
>>>>                                     if ( socket.isOpen() )  
>>>> socket.close(true);
>>>>                                     nioChannels.offer(socket);
>>>>                                     if ( att!=null )  
>>>> keyCache.offer(att);
>>>>                                 }catch ( Exception x ) {
>>>>                                     log.error("",x);
>>>>                                 }
>>>>                             } else if ((status == null) &&  
>>>> (handler.process(socket) == Handler.SocketState.CLOSED)) {
>>>>                                 // Close socket and pool
>>>>                                 try {
>>>>                                     KeyAttachment att =  
>>>> (KeyAttachment)socket.getAttachment(true);
>>>>                                     try {socket.close();}catch  
>>>> (Exception ignore){}
>>>>                                     if ( socket.isOpen() )  
>>>> socket.close(true);
>>>>                                     nioChannels.offer(socket);
>>>>                                     if ( att!=null )  
>>>> keyCache.offer(att);
>>>>                                 }catch ( Exception x ) {
>>>>                                     log.error("",x);
>>>>                                 }
>>>>                             }
>>>>                         } else if (handshake == -1 ) {
>>>>                             if ( key != null && key.isValid() )  
>>>> key.cancel();
>>>>                             try {socket.close(true);}catch  
>>>> (IOException ignore){}
>>>>                             nioChannels.offer(socket);
>>>>                         } else {
>>>>                             final SelectionKey fk = key;
>>>>                             final int intops = handshake;
>>>>                             final KeyAttachment ka =  
>>>> (KeyAttachment)fk.attachment();
>>>>                             ka.getPoller().add(socket,intops);
>>>>                         }
>>>>                     }
>>>>                 } finally {
>>>>                     //dereference socket to let GC do its job
>>>>                     socket = null;
>>>>                     // Finish up this request
>>>>                     recycleWorkerThread(this);
>>>>                 }
>>>>             }
>>>>         }
>>>>
>>>> ====
>>>>
>>>> But why the chat messages don't responce only as socket close?
>>>>
>>>>     <Connector port="8080"
>>>>                maxThreads="150" connectionTimeout="20000"
>>>>                redirectPort="8443"
>>>>                 
>>>> protocol="org.apache.coyote.http11.Http11NioProtocol"
>>>>                />
>>>>
>>>> I only see comet begin event?
>>>> ==
>>>> 30.10.2006 16:19:28 org.apache.catalina.core.ApplicationContext log
>>>> INFO: ContextListener: attributeAdded 
>>>> ('org.apache.jasper.runtime.JspApplicationC
>>>> ontextImpl',  
>>>> 'org.apache.jasper.runtime.JspApplicationContextImpl@428ffa')
>>>> 30.10.2006 16:19:32 org.apache.catalina.core.ApplicationContext log
>>>> INFO: SessionListener: attributeReplaced 
>>>> ('C3E6394AC176D22B752C75D55343AA02', 'ni
>>>> ckname', 'pero')
>>>> 30.10.2006 16:19:35 org.apache.catalina.core.ApplicationContext log
>>>> INFO: ChatServlet: Begin for session:  
>>>> C3E6394AC176D22B752C75D55343AA02
>>>> 30.10.2006 16:25:17 org.apache.catalina.core.ApplicationContext log
>>>> INFO: SessionListener: contextDestroyed()
>>>> 30.10.2006 16:25:17 org.apache.catalina.core.ApplicationContext log
>>>> INFO: ContextListener: contextDestroyed()
>>>> 30.10.2006 16:25:22 org.apache.catalina.core.ApplicationContext log
>>>> INFO: ContextListener: contextInitialized()
>>>> 30.10.2006 16:25:22 org.apache.catalina.core.ApplicationContext log
>>>> INFO: SessionListener: contextInitialized()
>>>> 30.10.2006 16:25:33 org.apache.catalina.core.ApplicationContext log
>>>> INFO: ContextListener: attributeAdded 
>>>> ('org.apache.jasper.runtime.JspApplicationC
>>>> ontextImpl',  
>>>> 'org.apache.jasper.runtime.JspApplicationContextImpl@428ffa')
>>>> 30.10.2006 16:25:36 org.apache.catalina.core.ApplicationContext log
>>>> INFO: SessionListener: attributeReplaced 
>>>> ('C3E6394AC176D22B752C75D55343AA02', 'ni
>>>> ckname', 'pero')
>>>> 30.10.2006 16:25:40 org.apache.catalina.core.ApplicationContext log
>>>> INFO: ChatServlet: Begin for session:  
>>>> C3E6394AC176D22B752C75D55343AA02
>>>>
>>>> ===
>>>>
>>>> Regards
>>>> Peter
>>>>
>>>>
>>>>
>>>> Am 30.10.2006 um 15:53 schrieb Peter Rossbach:
>>>>
>>>>> Hi Filip,
>>>>>
>>>>> I found that MAC OS X only support setTrafficClass with  
>>>>> following JDK option
>>>>>
>>>>> -Djava.net.preferIPv4Stack=true
>>>>>
>>>>> http://lists.apple.com/archives/java-dev/2006/Jun/msg00414.html
>>>>>
>>>>> It seems a older IPV6 bug. At which place we can document those  
>>>>> things? -> F&Q
>>>>>
>>>>>
>>>>> The chat example flush the messages only I got NPE:
>>>>>
>>>>> INFO: Server startup in 2642 ms
>>>>> Exception in thread "http-8080-1" java.lang.NullPointerException
>>>>>         at org.apache.tomcat.util.net.NioEndpoint$Worker.run 
>>>>> (NioEndpoint.java:1441)
>>>>>         at java.lang.Thread.run(Thread.java:613)
>>>>>
>>>>> After this NPE the messages flush to the browser an connection  
>>>>> are closed.
>>>>>
>>>>> Regards
>>>>> Peter
>>>>>
>>>>>
>>>>> Am 30.10.2006 um 15:04 schrieb Filip Hanik - Dev Lists:
>>>>>
>>>>>> try to set the property socket.soTrafficClass to some other  
>>>>>> value,
>>>>>> if it's not working, what JDK are you running, here is the  
>>>>>> flag described by SUN
>>>>>>
>>>>>> http://java.sun.com/j2se/1.5.0/docs/api/java/net/ 
>>>>>> Socket.html#setTrafficClass(int)
>>>>>>
>>>>>>
>>>>>>
>>>>>> Peter Rossbach wrote:
>>>>>>> Hi Filip,
>>>>>>>
>>>>>>> I am starting testing your new NioProtocol handler, but I got  
>>>>>>> following exception:
>>>>>>>
>>>>>>> 30.10.2006 13:37:24 org.apache.tomcat.util.net.NioEndpoint  
>>>>>>> setSocketOptions
>>>>>>> SCHWERWIEGEND:
>>>>>>> java.net.SocketException: Invalid argument
>>>>>>>         at sun.nio.ch.Net.setIntOption0(Native Method)
>>>>>>>         at sun.nio.ch.Net.setIntOption(Net.java:152)
>>>>>>>         at sun.nio.ch.SocketChannelImpl$1.setInt 
>>>>>>> (SocketChannelImpl.java:372)
>>>>>>>         at sun.nio.ch.SocketOptsImpl.setInt 
>>>>>>> (SocketOptsImpl.java:46)
>>>>>>>         at sun.nio.ch.SocketOptsImpl$IP.typeOfService 
>>>>>>> (SocketOptsImpl.java:249)
>>>>>>>         at sun.nio.ch.OptionAdaptor.setTrafficClass 
>>>>>>> (OptionAdaptor.java:158)
>>>>>>>         at sun.nio.ch.SocketAdaptor.setTrafficClass 
>>>>>>> (SocketAdaptor.java:320)
>>>>>>>         at  
>>>>>>> org.apache.tomcat.util.net.SocketProperties.setProperties 
>>>>>>> (SocketProperties.java:107)
>>>>>>>         at  
>>>>>>> org.apache.tomcat.util.net.NioEndpoint.setSocketOptions 
>>>>>>> (NioEndpoint.java:742)
>>>>>>>         at org.apache.tomcat.util.net.NioEndpoint$Worker.run 
>>>>>>> (NioEndpoint.java:1423)
>>>>>>>         at java.lang.Thread.run(Thread.java:613)
>>>>>>>
>>>>>>>
>>>>>>> ==
>>>>>>>
>>>>>>> My connector config is:
>>>>>>>
>>>>>>>     <Connector port="8080"
>>>>>>>                maxThreads="150" connectionTimeout="20000"
>>>>>>>                redirectPort="8443"
>>>>>>>                 
>>>>>>> protocol="org.apache.coyote.http11.Http11NioProtocol" />
>>>>>>>
>>>>>>> After some google search I found that soTrafficClass are not  
>>>>>>> supported at mac os x :-(
>>>>>>> s. http://jira.safehaus.org/browse/PENROSE-71
>>>>>>>
>>>>>>> I comment out  L 106 at class o.a.t.util.net.SocketProperties.
>>>>>>>
>>>>>>> //        socket.setTrafficClass(soTrafficClass);
>>>>>>>
>>>>>>> Before I did this: I check starting connector with some  
>>>>>>> different values without success
>>>>>>>
>>>>>>> ex.
>>>>>>>     <Connector port="8080"
>>>>>>>                maxThreads="150" connectionTimeout="20000"
>>>>>>>                redirectPort="8443"
>>>>>>>                 
>>>>>>> protocol="org.apache.coyote.http11.Http11NioProtocol"
>>>>>>>         socket.soTrafficClass="2" />
>>>>>>>
>>>>>>> After that patch the Connector work, but with the comet style  
>>>>>>> chat example I have more trouble:
>>>>>>>
>>>>>>> INFO: Server startup in 3025 ms
>>>>>>> Exception in thread "http-8080-1" java.lang.NullPointerException
>>>>>>>         at org.apache.tomcat.util.net.NioEndpoint$Worker.run 
>>>>>>> (NioEndpoint.java:1441)
>>>>>>>         at java.lang.Thread.run(Thread.java:613)
>>>>>>> Exception in thread "http-8080-2" java.lang.NullPointerException
>>>>>>>         at org.apache.tomcat.util.net.NioEndpoint$Worker.run 
>>>>>>> (NioEndpoint.java:1441)
>>>>>>>         at java.lang.Thread.run(Thread.java:613)
>>>>>>>
>>>>>>> --Chat example really working? I see the posted messages only  
>>>>>>> after socket is closed (with Firefox 1.5)...
>>>>>>>
>>>>>>> Next I test the chat example with APR handler, again.
>>>>>>>
>>>>>>> Regards
>>>>>>> Peter Roßbach
>>>>>>> pr@objektpark.de
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ---------------------------------------------------------------- 
>>>>>>> --------
>>>>>>>
>>>>>>> No virus found in this incoming message.
>>>>>>> Checked by AVG Free Edition.
>>>>>>> Version: 7.1.408 / Virus Database: 268.13.17/505 - Release  
>>>>>>> Date: 10/27/2006
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> ----------------------------------------------------------------- 
>>>>>> ----
>>>>>> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
>>>>>> For additional commands, e-mail: dev-help@tomcat.apache.org
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------------- 
>>>> -----
>>>>
>>>> No virus found in this incoming message.
>>>> Checked by AVG Free Edition.
>>>> Version: 7.1.408 / Virus Database: 268.13.17/505 - Release Date:  
>>>> 10/27/2006
>>>>
>>>>
>>>
>>>
>>> -------------------------------------------------------------------- 
>>> -
>>> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
>>> For additional commands, e-mail: dev-help@tomcat.apache.org
>>>
>>>
>>
>>
>> --------------------------------------------------------------------- 
>> ---
>>
>> No virus found in this incoming message.
>> Checked by AVG Free Edition.
>> Version: 7.1.408 / Virus Database: 268.13.17/505 - Release Date:  
>> 10/27/2006
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
>


Re: It seems that Http11NioProtocol handler not working at mac os x 10.4.8 ppc

Posted by Filip Hanik - Dev Lists <de...@hanik.com>.
ok, I fixed the NPE, thanks for bringing to my attention. I haven't used 
the chat app yet, so I can't speak for how it works.

Filip

Peter Rossbach wrote:
> Hi Filip,
>
> I have use newest tomcat 6 svn head, with jdk 1.5.0_06, MAC OS X 
> 10.4.8, PPC,
> fresh build.
>
> Used Safari and FireFox 1.5
>
> Open a Window 1
>
> http://localhost:8080/examples/jsp/chat/login.jsp
> -> get post.jsp dialog
>
> Open new Window 2 with
> http://localhost:8080/examples/jsp/chat/chat
>
> -> send a message at window 1
>
> result: see nothing at window 2
> after 20 Sec (connectiontimeout from connector)
> the messages flush at window 2
>
> without my patch I git before a NPE at catalina.out.
>
> Regards
> Peter
>
>
> Am 30.10.2006 um 16:52 schrieb Filip Hanik - Dev Lists:
>
>> how do you reproduce this? I've added in your fix, but cant reproduce 
>> the problem
>>
>> Filip
>>
>> Peter Rossbach wrote:
>>> Hi Filip.
>>>
>>> you see at my situation the key can be null:
>>>
>>> 30.10.2006 16:03:20 org.apache.tomcat.util.net.NioEndpoint$Worker run
>>> INFO: 
>>> socket=org.apache.tomcat.util.net.NioChannel@58473e:java.nio.channels.SocketChannel[connected 
>>> local=/127.0.0.1:8080 remote=/127.0.0.1:50517] 
>>> key=sun.nio.ch.SelectionKeyImpl@5138a4
>>> 30.10.2006 16:03:40 org.apache.tomcat.util.net.NioEndpoint$Worker run
>>> INFO: 
>>> socket=org.apache.tomcat.util.net.NioChannel@a6343d:java.nio.channels.SocketChannel[closed] 
>>> key=null
>>>                                                                      
>>>                                                                      
>>>                                                    #################
>>>
>>> Exception in thread "http-8080-2" java.lang.NullPointerException
>>>         at 
>>> org.apache.tomcat.util.net.NioEndpoint$Worker.run(NioEndpoint.java:1442) 
>>>
>>>         at java.lang.Thread.run(Thread.java:613)
>>>
>>>
>>> Here my patch:
>>>
>>> === L 1436 f
>>>
>>>                         NioChannel socket = (NioChannel)channel;
>>>
>>>                         SelectionKey key = 
>>> socket.getIOChannel().keyFor(socket.getPoller().getSelector());
>>>                         int handshake = -1;
>>>                         log.info("socket=" + socket + " key=" + key );
>>>                         if(key != null) {
>>>                             try {
>>>                                 handshake = 
>>> socket.handshake(key.isReadable(), key.isWritable());
>>>                             }catch ( IOException x ) {
>>>                                 handshake = -1;
>>>                                 if ( log.isDebugEnabled() ) 
>>> log.debug("Error during SSL handshake",x);
>>>                             }catch ( CancelledKeyException ckx ) {
>>>                                 handshake = -1;
>>>                             }
>>>                         } else {
>>>                                handshake = -1;
>>>                         }
>>>
>>>                         if ( handshake == 0 ) {
>>>                             // Process the request from this socket
>>>                             if ((status != null) && 
>>> (handler.event(socket, status) == Handler.SocketState.CLOSED)) {
>>>                                 // Close socket and pool
>>>                                 try {
>>>                                     KeyAttachment att = 
>>> (KeyAttachment)socket.getAttachment(true);
>>>                                     try {socket.close();}catch 
>>> (Exception ignore){}
>>>                                     if ( socket.isOpen() ) 
>>> socket.close(true);
>>>                                     nioChannels.offer(socket);
>>>                                     if ( att!=null ) 
>>> keyCache.offer(att);
>>>                                 }catch ( Exception x ) {
>>>                                     log.error("",x);
>>>                                 }
>>>                             } else if ((status == null) && 
>>> (handler.process(socket) == Handler.SocketState.CLOSED)) {
>>>                                 // Close socket and pool
>>>                                 try {
>>>                                     KeyAttachment att = 
>>> (KeyAttachment)socket.getAttachment(true);
>>>                                     try {socket.close();}catch 
>>> (Exception ignore){}
>>>                                     if ( socket.isOpen() ) 
>>> socket.close(true);
>>>                                     nioChannels.offer(socket);
>>>                                     if ( att!=null ) 
>>> keyCache.offer(att);
>>>                                 }catch ( Exception x ) {
>>>                                     log.error("",x);
>>>                                 }
>>>                             }
>>>                         } else if (handshake == -1 ) {
>>>                             if ( key != null && key.isValid() ) 
>>> key.cancel();
>>>                             try {socket.close(true);}catch 
>>> (IOException ignore){}
>>>                             nioChannels.offer(socket);
>>>                         } else {
>>>                             final SelectionKey fk = key;
>>>                             final int intops = handshake;
>>>                             final KeyAttachment ka = 
>>> (KeyAttachment)fk.attachment();
>>>                             ka.getPoller().add(socket,intops);
>>>                         }
>>>                     }
>>>                 } finally {
>>>                     //dereference socket to let GC do its job
>>>                     socket = null;
>>>                     // Finish up this request
>>>                     recycleWorkerThread(this);
>>>                 }
>>>             }
>>>         }
>>>
>>> ====
>>>
>>> But why the chat messages don't responce only as socket close?
>>>
>>>     <Connector port="8080"
>>>                maxThreads="150" connectionTimeout="20000"
>>>                redirectPort="8443"
>>>                protocol="org.apache.coyote.http11.Http11NioProtocol"
>>>                />
>>>
>>> I only see comet begin event?
>>> ==
>>> 30.10.2006 16:19:28 org.apache.catalina.core.ApplicationContext log
>>> INFO: ContextListener: 
>>> attributeAdded('org.apache.jasper.runtime.JspApplicationC
>>> ontextImpl', 
>>> 'org.apache.jasper.runtime.JspApplicationContextImpl@428ffa')
>>> 30.10.2006 16:19:32 org.apache.catalina.core.ApplicationContext log
>>> INFO: SessionListener: 
>>> attributeReplaced('C3E6394AC176D22B752C75D55343AA02', 'ni
>>> ckname', 'pero')
>>> 30.10.2006 16:19:35 org.apache.catalina.core.ApplicationContext log
>>> INFO: ChatServlet: Begin for session: C3E6394AC176D22B752C75D55343AA02
>>> 30.10.2006 16:25:17 org.apache.catalina.core.ApplicationContext log
>>> INFO: SessionListener: contextDestroyed()
>>> 30.10.2006 16:25:17 org.apache.catalina.core.ApplicationContext log
>>> INFO: ContextListener: contextDestroyed()
>>> 30.10.2006 16:25:22 org.apache.catalina.core.ApplicationContext log
>>> INFO: ContextListener: contextInitialized()
>>> 30.10.2006 16:25:22 org.apache.catalina.core.ApplicationContext log
>>> INFO: SessionListener: contextInitialized()
>>> 30.10.2006 16:25:33 org.apache.catalina.core.ApplicationContext log
>>> INFO: ContextListener: 
>>> attributeAdded('org.apache.jasper.runtime.JspApplicationC
>>> ontextImpl', 
>>> 'org.apache.jasper.runtime.JspApplicationContextImpl@428ffa')
>>> 30.10.2006 16:25:36 org.apache.catalina.core.ApplicationContext log
>>> INFO: SessionListener: 
>>> attributeReplaced('C3E6394AC176D22B752C75D55343AA02', 'ni
>>> ckname', 'pero')
>>> 30.10.2006 16:25:40 org.apache.catalina.core.ApplicationContext log
>>> INFO: ChatServlet: Begin for session: C3E6394AC176D22B752C75D55343AA02
>>>
>>> ===
>>>
>>> Regards
>>> Peter
>>>
>>>
>>>
>>> Am 30.10.2006 um 15:53 schrieb Peter Rossbach:
>>>
>>>> Hi Filip,
>>>>
>>>> I found that MAC OS X only support setTrafficClass with following 
>>>> JDK option
>>>>
>>>> -Djava.net.preferIPv4Stack=true
>>>>
>>>> http://lists.apple.com/archives/java-dev/2006/Jun/msg00414.html
>>>>
>>>> It seems a older IPV6 bug. At which place we can document those 
>>>> things? -> F&Q
>>>>
>>>>
>>>> The chat example flush the messages only I got NPE:
>>>>
>>>> INFO: Server startup in 2642 ms
>>>> Exception in thread "http-8080-1" java.lang.NullPointerException
>>>>         at 
>>>> org.apache.tomcat.util.net.NioEndpoint$Worker.run(NioEndpoint.java:1441) 
>>>>
>>>>         at java.lang.Thread.run(Thread.java:613)
>>>>
>>>> After this NPE the messages flush to the browser an connection are 
>>>> closed.
>>>>
>>>> Regards
>>>> Peter
>>>>
>>>>
>>>> Am 30.10.2006 um 15:04 schrieb Filip Hanik - Dev Lists:
>>>>
>>>>> try to set the property socket.soTrafficClass to some other value,
>>>>> if it's not working, what JDK are you running, here is the flag 
>>>>> described by SUN
>>>>>
>>>>> http://java.sun.com/j2se/1.5.0/docs/api/java/net/Socket.html#setTrafficClass(int) 
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Peter Rossbach wrote:
>>>>>> Hi Filip,
>>>>>>
>>>>>> I am starting testing your new NioProtocol handler, but I got 
>>>>>> following exception:
>>>>>>
>>>>>> 30.10.2006 13:37:24 org.apache.tomcat.util.net.NioEndpoint 
>>>>>> setSocketOptions
>>>>>> SCHWERWIEGEND:
>>>>>> java.net.SocketException: Invalid argument
>>>>>>         at sun.nio.ch.Net.setIntOption0(Native Method)
>>>>>>         at sun.nio.ch.Net.setIntOption(Net.java:152)
>>>>>>         at 
>>>>>> sun.nio.ch.SocketChannelImpl$1.setInt(SocketChannelImpl.java:372)
>>>>>>         at sun.nio.ch.SocketOptsImpl.setInt(SocketOptsImpl.java:46)
>>>>>>         at 
>>>>>> sun.nio.ch.SocketOptsImpl$IP.typeOfService(SocketOptsImpl.java:249)
>>>>>>         at 
>>>>>> sun.nio.ch.OptionAdaptor.setTrafficClass(OptionAdaptor.java:158)
>>>>>>         at 
>>>>>> sun.nio.ch.SocketAdaptor.setTrafficClass(SocketAdaptor.java:320)
>>>>>>         at 
>>>>>> org.apache.tomcat.util.net.SocketProperties.setProperties(SocketProperties.java:107) 
>>>>>>
>>>>>>         at 
>>>>>> org.apache.tomcat.util.net.NioEndpoint.setSocketOptions(NioEndpoint.java:742) 
>>>>>>
>>>>>>         at 
>>>>>> org.apache.tomcat.util.net.NioEndpoint$Worker.run(NioEndpoint.java:1423) 
>>>>>>
>>>>>>         at java.lang.Thread.run(Thread.java:613)
>>>>>>
>>>>>>
>>>>>> ==
>>>>>>
>>>>>> My connector config is:
>>>>>>
>>>>>>     <Connector port="8080"
>>>>>>                maxThreads="150" connectionTimeout="20000"
>>>>>>                redirectPort="8443"
>>>>>>                
>>>>>> protocol="org.apache.coyote.http11.Http11NioProtocol" />
>>>>>>
>>>>>> After some google search I found that soTrafficClass are not 
>>>>>> supported at mac os x :-(
>>>>>> s. http://jira.safehaus.org/browse/PENROSE-71
>>>>>>
>>>>>> I comment out  L 106 at class o.a.t.util.net.SocketProperties.
>>>>>>
>>>>>> //        socket.setTrafficClass(soTrafficClass);
>>>>>>
>>>>>> Before I did this: I check starting connector with some different 
>>>>>> values without success
>>>>>>
>>>>>> ex.
>>>>>>     <Connector port="8080"
>>>>>>                maxThreads="150" connectionTimeout="20000"
>>>>>>                redirectPort="8443"
>>>>>>                protocol="org.apache.coyote.http11.Http11NioProtocol"
>>>>>>         socket.soTrafficClass="2" />
>>>>>>
>>>>>> After that patch the Connector work, but with the comet style 
>>>>>> chat example I have more trouble:
>>>>>>
>>>>>> INFO: Server startup in 3025 ms
>>>>>> Exception in thread "http-8080-1" java.lang.NullPointerException
>>>>>>         at 
>>>>>> org.apache.tomcat.util.net.NioEndpoint$Worker.run(NioEndpoint.java:1441) 
>>>>>>
>>>>>>         at java.lang.Thread.run(Thread.java:613)
>>>>>> Exception in thread "http-8080-2" java.lang.NullPointerException
>>>>>>         at 
>>>>>> org.apache.tomcat.util.net.NioEndpoint$Worker.run(NioEndpoint.java:1441) 
>>>>>>
>>>>>>         at java.lang.Thread.run(Thread.java:613)
>>>>>>
>>>>>> --Chat example really working? I see the posted messages only 
>>>>>> after socket is closed (with Firefox 1.5)...
>>>>>>
>>>>>> Next I test the chat example with APR handler, again.
>>>>>>
>>>>>> Regards
>>>>>> Peter Roßbach
>>>>>> pr@objektpark.de
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> ------------------------------------------------------------------------ 
>>>>>>
>>>>>>
>>>>>> No virus found in this incoming message.
>>>>>> Checked by AVG Free Edition.
>>>>>> Version: 7.1.408 / Virus Database: 268.13.17/505 - Release Date: 
>>>>>> 10/27/2006
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
>>>>> For additional commands, e-mail: dev-help@tomcat.apache.org
>>>>>
>>>>>
>>>>
>>>
>>>
>>> ------------------------------------------------------------------------ 
>>>
>>>
>>> No virus found in this incoming message.
>>> Checked by AVG Free Edition.
>>> Version: 7.1.408 / Virus Database: 268.13.17/505 - Release Date: 
>>> 10/27/2006
>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: dev-help@tomcat.apache.org
>>
>>
>
>
> ------------------------------------------------------------------------
>
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.1.408 / Virus Database: 268.13.17/505 - Release Date: 10/27/2006
>
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: It seems that Http11NioProtocol handler not working at mac os x 10.4.8 ppc

Posted by Peter Rossbach <pr...@objektpark.de>.
Hi Filip,

I have use newest tomcat 6 svn head, with jdk 1.5.0_06, MAC OS X  
10.4.8, PPC,
fresh build.

Used Safari and FireFox 1.5

Open a Window 1

http://localhost:8080/examples/jsp/chat/login.jsp
-> get post.jsp dialog

Open new Window 2 with
http://localhost:8080/examples/jsp/chat/chat

-> send a message at window 1

result: see nothing at window 2
after 20 Sec (connectiontimeout from connector)
the messages flush at window 2

without my patch I git before a NPE at catalina.out.

Regards
Peter


Am 30.10.2006 um 16:52 schrieb Filip Hanik - Dev Lists:

> how do you reproduce this? I've added in your fix, but cant  
> reproduce the problem
>
> Filip
>
> Peter Rossbach wrote:
>> Hi Filip.
>>
>> you see at my situation the key can be null:
>>
>> 30.10.2006 16:03:20 org.apache.tomcat.util.net.NioEndpoint$Worker run
>> INFO:  
>> socket=org.apache.tomcat.util.net.NioChannel@58473e:java.nio.channels 
>> .SocketChannel[connected local=/127.0.0.1:8080 remote=/ 
>> 127.0.0.1:50517] key=sun.nio.ch.SelectionKeyImpl@5138a4
>> 30.10.2006 16:03:40 org.apache.tomcat.util.net.NioEndpoint$Worker run
>> INFO:  
>> socket=org.apache.tomcat.util.net.NioChannel@a6343d:java.nio.channels 
>> .SocketChannel[closed] key=null
>>                                                                       
>>                                                                       
>>                                                    #################
>>
>> Exception in thread "http-8080-2" java.lang.NullPointerException
>>         at org.apache.tomcat.util.net.NioEndpoint$Worker.run 
>> (NioEndpoint.java:1442)
>>         at java.lang.Thread.run(Thread.java:613)
>>
>>
>> Here my patch:
>>
>> === L 1436 f
>>
>>                         NioChannel socket = (NioChannel)channel;
>>
>>                         SelectionKey key = socket.getIOChannel 
>> ().keyFor(socket.getPoller().getSelector());
>>                         int handshake = -1;
>>                         log.info("socket=" + socket + " key=" +  
>> key );
>>                         if(key != null) {
>>                             try {
>>                                 handshake = socket.handshake 
>> (key.isReadable(), key.isWritable());
>>                             }catch ( IOException x ) {
>>                                 handshake = -1;
>>                                 if ( log.isDebugEnabled() )  
>> log.debug("Error during SSL handshake",x);
>>                             }catch ( CancelledKeyException ckx ) {
>>                                 handshake = -1;
>>                             }
>>                         } else {
>>                                handshake = -1;
>>                         }
>>
>>                         if ( handshake == 0 ) {
>>                             // Process the request from this socket
>>                             if ((status != null) && (handler.event 
>> (socket, status) == Handler.SocketState.CLOSED)) {
>>                                 // Close socket and pool
>>                                 try {
>>                                     KeyAttachment att =  
>> (KeyAttachment)socket.getAttachment(true);
>>                                     try {socket.close();}catch  
>> (Exception ignore){}
>>                                     if ( socket.isOpen() )  
>> socket.close(true);
>>                                     nioChannels.offer(socket);
>>                                     if ( att!=null ) keyCache.offer 
>> (att);
>>                                 }catch ( Exception x ) {
>>                                     log.error("",x);
>>                                 }
>>                             } else if ((status == null) &&  
>> (handler.process(socket) == Handler.SocketState.CLOSED)) {
>>                                 // Close socket and pool
>>                                 try {
>>                                     KeyAttachment att =  
>> (KeyAttachment)socket.getAttachment(true);
>>                                     try {socket.close();}catch  
>> (Exception ignore){}
>>                                     if ( socket.isOpen() )  
>> socket.close(true);
>>                                     nioChannels.offer(socket);
>>                                     if ( att!=null ) keyCache.offer 
>> (att);
>>                                 }catch ( Exception x ) {
>>                                     log.error("",x);
>>                                 }
>>                             }
>>                         } else if (handshake == -1 ) {
>>                             if ( key != null && key.isValid() )  
>> key.cancel();
>>                             try {socket.close(true);}catch  
>> (IOException ignore){}
>>                             nioChannels.offer(socket);
>>                         } else {
>>                             final SelectionKey fk = key;
>>                             final int intops = handshake;
>>                             final KeyAttachment ka =  
>> (KeyAttachment)fk.attachment();
>>                             ka.getPoller().add(socket,intops);
>>                         }
>>                     }
>>                 } finally {
>>                     //dereference socket to let GC do its job
>>                     socket = null;
>>                     // Finish up this request
>>                     recycleWorkerThread(this);
>>                 }
>>             }
>>         }
>>
>> ====
>>
>> But why the chat messages don't responce only as socket close?
>>
>>     <Connector port="8080"
>>                maxThreads="150" connectionTimeout="20000"
>>                redirectPort="8443"
>>                protocol="org.apache.coyote.http11.Http11NioProtocol"
>>                />
>>
>> I only see comet begin event?
>> ==
>> 30.10.2006 16:19:28 org.apache.catalina.core.ApplicationContext log
>> INFO: ContextListener: attributeAdded 
>> ('org.apache.jasper.runtime.JspApplicationC
>> ontextImpl',  
>> 'org.apache.jasper.runtime.JspApplicationContextImpl@428ffa')
>> 30.10.2006 16:19:32 org.apache.catalina.core.ApplicationContext log
>> INFO: SessionListener: attributeReplaced 
>> ('C3E6394AC176D22B752C75D55343AA02', 'ni
>> ckname', 'pero')
>> 30.10.2006 16:19:35 org.apache.catalina.core.ApplicationContext log
>> INFO: ChatServlet: Begin for session:  
>> C3E6394AC176D22B752C75D55343AA02
>> 30.10.2006 16:25:17 org.apache.catalina.core.ApplicationContext log
>> INFO: SessionListener: contextDestroyed()
>> 30.10.2006 16:25:17 org.apache.catalina.core.ApplicationContext log
>> INFO: ContextListener: contextDestroyed()
>> 30.10.2006 16:25:22 org.apache.catalina.core.ApplicationContext log
>> INFO: ContextListener: contextInitialized()
>> 30.10.2006 16:25:22 org.apache.catalina.core.ApplicationContext log
>> INFO: SessionListener: contextInitialized()
>> 30.10.2006 16:25:33 org.apache.catalina.core.ApplicationContext log
>> INFO: ContextListener: attributeAdded 
>> ('org.apache.jasper.runtime.JspApplicationC
>> ontextImpl',  
>> 'org.apache.jasper.runtime.JspApplicationContextImpl@428ffa')
>> 30.10.2006 16:25:36 org.apache.catalina.core.ApplicationContext log
>> INFO: SessionListener: attributeReplaced 
>> ('C3E6394AC176D22B752C75D55343AA02', 'ni
>> ckname', 'pero')
>> 30.10.2006 16:25:40 org.apache.catalina.core.ApplicationContext log
>> INFO: ChatServlet: Begin for session:  
>> C3E6394AC176D22B752C75D55343AA02
>>
>> ===
>>
>> Regards
>> Peter
>>
>>
>>
>> Am 30.10.2006 um 15:53 schrieb Peter Rossbach:
>>
>>> Hi Filip,
>>>
>>> I found that MAC OS X only support setTrafficClass with following  
>>> JDK option
>>>
>>> -Djava.net.preferIPv4Stack=true
>>>
>>> http://lists.apple.com/archives/java-dev/2006/Jun/msg00414.html
>>>
>>> It seems a older IPV6 bug. At which place we can document those  
>>> things? -> F&Q
>>>
>>>
>>> The chat example flush the messages only I got NPE:
>>>
>>> INFO: Server startup in 2642 ms
>>> Exception in thread "http-8080-1" java.lang.NullPointerException
>>>         at org.apache.tomcat.util.net.NioEndpoint$Worker.run 
>>> (NioEndpoint.java:1441)
>>>         at java.lang.Thread.run(Thread.java:613)
>>>
>>> After this NPE the messages flush to the browser an connection  
>>> are closed.
>>>
>>> Regards
>>> Peter
>>>
>>>
>>> Am 30.10.2006 um 15:04 schrieb Filip Hanik - Dev Lists:
>>>
>>>> try to set the property socket.soTrafficClass to some other value,
>>>> if it's not working, what JDK are you running, here is the flag  
>>>> described by SUN
>>>>
>>>> http://java.sun.com/j2se/1.5.0/docs/api/java/net/ 
>>>> Socket.html#setTrafficClass(int)
>>>>
>>>>
>>>>
>>>> Peter Rossbach wrote:
>>>>> Hi Filip,
>>>>>
>>>>> I am starting testing your new NioProtocol handler, but I got  
>>>>> following exception:
>>>>>
>>>>> 30.10.2006 13:37:24 org.apache.tomcat.util.net.NioEndpoint  
>>>>> setSocketOptions
>>>>> SCHWERWIEGEND:
>>>>> java.net.SocketException: Invalid argument
>>>>>         at sun.nio.ch.Net.setIntOption0(Native Method)
>>>>>         at sun.nio.ch.Net.setIntOption(Net.java:152)
>>>>>         at sun.nio.ch.SocketChannelImpl$1.setInt 
>>>>> (SocketChannelImpl.java:372)
>>>>>         at sun.nio.ch.SocketOptsImpl.setInt(SocketOptsImpl.java: 
>>>>> 46)
>>>>>         at sun.nio.ch.SocketOptsImpl$IP.typeOfService 
>>>>> (SocketOptsImpl.java:249)
>>>>>         at sun.nio.ch.OptionAdaptor.setTrafficClass 
>>>>> (OptionAdaptor.java:158)
>>>>>         at sun.nio.ch.SocketAdaptor.setTrafficClass 
>>>>> (SocketAdaptor.java:320)
>>>>>         at  
>>>>> org.apache.tomcat.util.net.SocketProperties.setProperties 
>>>>> (SocketProperties.java:107)
>>>>>         at  
>>>>> org.apache.tomcat.util.net.NioEndpoint.setSocketOptions 
>>>>> (NioEndpoint.java:742)
>>>>>         at org.apache.tomcat.util.net.NioEndpoint$Worker.run 
>>>>> (NioEndpoint.java:1423)
>>>>>         at java.lang.Thread.run(Thread.java:613)
>>>>>
>>>>>
>>>>> ==
>>>>>
>>>>> My connector config is:
>>>>>
>>>>>     <Connector port="8080"
>>>>>                maxThreads="150" connectionTimeout="20000"
>>>>>                redirectPort="8443"
>>>>>                 
>>>>> protocol="org.apache.coyote.http11.Http11NioProtocol" />
>>>>>
>>>>> After some google search I found that soTrafficClass are not  
>>>>> supported at mac os x :-(
>>>>> s. http://jira.safehaus.org/browse/PENROSE-71
>>>>>
>>>>> I comment out  L 106 at class o.a.t.util.net.SocketProperties.
>>>>>
>>>>> //        socket.setTrafficClass(soTrafficClass);
>>>>>
>>>>> Before I did this: I check starting connector with some  
>>>>> different values without success
>>>>>
>>>>> ex.
>>>>>     <Connector port="8080"
>>>>>                maxThreads="150" connectionTimeout="20000"
>>>>>                redirectPort="8443"
>>>>>                 
>>>>> protocol="org.apache.coyote.http11.Http11NioProtocol"
>>>>>         socket.soTrafficClass="2" />
>>>>>
>>>>> After that patch the Connector work, but with the comet style  
>>>>> chat example I have more trouble:
>>>>>
>>>>> INFO: Server startup in 3025 ms
>>>>> Exception in thread "http-8080-1" java.lang.NullPointerException
>>>>>         at org.apache.tomcat.util.net.NioEndpoint$Worker.run 
>>>>> (NioEndpoint.java:1441)
>>>>>         at java.lang.Thread.run(Thread.java:613)
>>>>> Exception in thread "http-8080-2" java.lang.NullPointerException
>>>>>         at org.apache.tomcat.util.net.NioEndpoint$Worker.run 
>>>>> (NioEndpoint.java:1441)
>>>>>         at java.lang.Thread.run(Thread.java:613)
>>>>>
>>>>> --Chat example really working? I see the posted messages only  
>>>>> after socket is closed (with Firefox 1.5)...
>>>>>
>>>>> Next I test the chat example with APR handler, again.
>>>>>
>>>>> Regards
>>>>> Peter Roßbach
>>>>> pr@objektpark.de
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------ 
>>>>> ------
>>>>>
>>>>> No virus found in this incoming message.
>>>>> Checked by AVG Free Edition.
>>>>> Version: 7.1.408 / Virus Database: 268.13.17/505 - Release  
>>>>> Date: 10/27/2006
>>>>>
>>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------------- 
>>>> --
>>>> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
>>>> For additional commands, e-mail: dev-help@tomcat.apache.org
>>>>
>>>>
>>>
>>
>>
>> --------------------------------------------------------------------- 
>> ---
>>
>> No virus found in this incoming message.
>> Checked by AVG Free Edition.
>> Version: 7.1.408 / Virus Database: 268.13.17/505 - Release Date:  
>> 10/27/2006
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
>


Re: It seems that Http11NioProtocol handler not working at mac os x 10.4.8 ppc

Posted by Peter Rossbach <pr...@objektpark.de>.
Oops, as you find a fix, I will test it :-)

regards
Peter


Am 30.10.2006 um 17:05 schrieb Filip Hanik - Dev Lists:

> yeah, that fix is not entirely correct and can lead to problems  
> down the road,
> the problem is bigger than that, I have to catch the socket being  
> closed earlier so that I can unattach the attachment from the key
>
> Filip
>
> Filip Hanik - Dev Lists wrote:
>> how do you reproduce this? I've added in your fix, but cant  
>> reproduce the problem
>>
>> Filip
>>
>> Peter Rossbach wrote:
>>> Hi Filip.
>>>
>>> you see at my situation the key can be null:
>>>
>>> 30.10.2006 16:03:20 org.apache.tomcat.util.net.NioEndpoint$Worker  
>>> run
>>> INFO:  
>>> socket=org.apache.tomcat.util.net.NioChannel@58473e:java.nio.channel 
>>> s.SocketChannel[connected local=/127.0.0.1:8080 remote=/ 
>>> 127.0.0.1:50517] key=sun.nio.ch.SelectionKeyImpl@5138a4
>>> 30.10.2006 16:03:40 org.apache.tomcat.util.net.NioEndpoint$Worker  
>>> run
>>> INFO:  
>>> socket=org.apache.tomcat.util.net.NioChannel@a6343d:java.nio.channel 
>>> s.SocketChannel[closed] key=null
>>>                                                                      
>>>                                                                      
>>>                                                       
>>> #################
>>>
>>> Exception in thread "http-8080-2" java.lang.NullPointerException
>>>         at org.apache.tomcat.util.net.NioEndpoint$Worker.run 
>>> (NioEndpoint.java:1442)
>>>         at java.lang.Thread.run(Thread.java:613)
>>>
>>>
>>> Here my patch:
>>>
>>> === L 1436 f
>>>
>>>                         NioChannel socket = (NioChannel)channel;
>>>
>>>                         SelectionKey key = socket.getIOChannel 
>>> ().keyFor(socket.getPoller().getSelector());
>>>                         int handshake = -1;
>>>                         log.info("socket=" + socket + " key=" +  
>>> key );
>>>                         if(key != null) {
>>>                             try {
>>>                                 handshake = socket.handshake 
>>> (key.isReadable(), key.isWritable());
>>>                             }catch ( IOException x ) {
>>>                                 handshake = -1;
>>>                                 if ( log.isDebugEnabled() )  
>>> log.debug("Error during SSL handshake",x);
>>>                             }catch ( CancelledKeyException ckx ) {
>>>                                 handshake = -1;
>>>                             }
>>>                         } else {
>>>                                handshake = -1;
>>>                         }
>>>
>>>                         if ( handshake == 0 ) {
>>>                             // Process the request from this socket
>>>                             if ((status != null) && (handler.event 
>>> (socket, status) == Handler.SocketState.CLOSED)) {
>>>                                 // Close socket and pool
>>>                                 try {
>>>                                     KeyAttachment att =  
>>> (KeyAttachment)socket.getAttachment(true);
>>>                                     try {socket.close();}catch  
>>> (Exception ignore){}
>>>                                     if ( socket.isOpen() )  
>>> socket.close(true);
>>>                                     nioChannels.offer(socket);
>>>                                     if ( att!=null )  
>>> keyCache.offer(att);
>>>                                 }catch ( Exception x ) {
>>>                                     log.error("",x);
>>>                                 }
>>>                             } else if ((status == null) &&  
>>> (handler.process(socket) == Handler.SocketState.CLOSED)) {
>>>                                 // Close socket and pool
>>>                                 try {
>>>                                     KeyAttachment att =  
>>> (KeyAttachment)socket.getAttachment(true);
>>>                                     try {socket.close();}catch  
>>> (Exception ignore){}
>>>                                     if ( socket.isOpen() )  
>>> socket.close(true);
>>>                                     nioChannels.offer(socket);
>>>                                     if ( att!=null )  
>>> keyCache.offer(att);
>>>                                 }catch ( Exception x ) {
>>>                                     log.error("",x);
>>>                                 }
>>>                             }
>>>                         } else if (handshake == -1 ) {
>>>                             if ( key != null && key.isValid() )  
>>> key.cancel();
>>>                             try {socket.close(true);}catch  
>>> (IOException ignore){}
>>>                             nioChannels.offer(socket);
>>>                         } else {
>>>                             final SelectionKey fk = key;
>>>                             final int intops = handshake;
>>>                             final KeyAttachment ka =  
>>> (KeyAttachment)fk.attachment();
>>>                             ka.getPoller().add(socket,intops);
>>>                         }
>>>                     }
>>>                 } finally {
>>>                     //dereference socket to let GC do its job
>>>                     socket = null;
>>>                     // Finish up this request
>>>                     recycleWorkerThread(this);
>>>                 }
>>>             }
>>>         }
>>>
>>> ====
>>>
>>> But why the chat messages don't responce only as socket close?
>>>
>>>     <Connector port="8080"
>>>                maxThreads="150" connectionTimeout="20000"
>>>                redirectPort="8443"
>>>                protocol="org.apache.coyote.http11.Http11NioProtocol"
>>>                />
>>>
>>> I only see comet begin event?
>>> ==
>>> 30.10.2006 16:19:28 org.apache.catalina.core.ApplicationContext log
>>> INFO: ContextListener: attributeAdded 
>>> ('org.apache.jasper.runtime.JspApplicationC
>>> ontextImpl',  
>>> 'org.apache.jasper.runtime.JspApplicationContextImpl@428ffa')
>>> 30.10.2006 16:19:32 org.apache.catalina.core.ApplicationContext log
>>> INFO: SessionListener: attributeReplaced 
>>> ('C3E6394AC176D22B752C75D55343AA02', 'ni
>>> ckname', 'pero')
>>> 30.10.2006 16:19:35 org.apache.catalina.core.ApplicationContext log
>>> INFO: ChatServlet: Begin for session:  
>>> C3E6394AC176D22B752C75D55343AA02
>>> 30.10.2006 16:25:17 org.apache.catalina.core.ApplicationContext log
>>> INFO: SessionListener: contextDestroyed()
>>> 30.10.2006 16:25:17 org.apache.catalina.core.ApplicationContext log
>>> INFO: ContextListener: contextDestroyed()
>>> 30.10.2006 16:25:22 org.apache.catalina.core.ApplicationContext log
>>> INFO: ContextListener: contextInitialized()
>>> 30.10.2006 16:25:22 org.apache.catalina.core.ApplicationContext log
>>> INFO: SessionListener: contextInitialized()
>>> 30.10.2006 16:25:33 org.apache.catalina.core.ApplicationContext log
>>> INFO: ContextListener: attributeAdded 
>>> ('org.apache.jasper.runtime.JspApplicationC
>>> ontextImpl',  
>>> 'org.apache.jasper.runtime.JspApplicationContextImpl@428ffa')
>>> 30.10.2006 16:25:36 org.apache.catalina.core.ApplicationContext log
>>> INFO: SessionListener: attributeReplaced 
>>> ('C3E6394AC176D22B752C75D55343AA02', 'ni
>>> ckname', 'pero')
>>> 30.10.2006 16:25:40 org.apache.catalina.core.ApplicationContext log
>>> INFO: ChatServlet: Begin for session:  
>>> C3E6394AC176D22B752C75D55343AA02
>>>
>>> ===
>>>
>>> Regards
>>> Peter
>>>
>>>
>>>
>>> Am 30.10.2006 um 15:53 schrieb Peter Rossbach:
>>>
>>>> Hi Filip,
>>>>
>>>> I found that MAC OS X only support setTrafficClass with  
>>>> following JDK option
>>>>
>>>> -Djava.net.preferIPv4Stack=true
>>>>
>>>> http://lists.apple.com/archives/java-dev/2006/Jun/msg00414.html
>>>>
>>>> It seems a older IPV6 bug. At which place we can document those  
>>>> things? -> F&Q
>>>>
>>>>
>>>> The chat example flush the messages only I got NPE:
>>>>
>>>> INFO: Server startup in 2642 ms
>>>> Exception in thread "http-8080-1" java.lang.NullPointerException
>>>>         at org.apache.tomcat.util.net.NioEndpoint$Worker.run 
>>>> (NioEndpoint.java:1441)
>>>>         at java.lang.Thread.run(Thread.java:613)
>>>>
>>>> After this NPE the messages flush to the browser an connection  
>>>> are closed.
>>>>
>>>> Regards
>>>> Peter
>>>>
>>>>
>>>> Am 30.10.2006 um 15:04 schrieb Filip Hanik - Dev Lists:
>>>>
>>>>> try to set the property socket.soTrafficClass to some other value,
>>>>> if it's not working, what JDK are you running, here is the flag  
>>>>> described by SUN
>>>>>
>>>>> http://java.sun.com/j2se/1.5.0/docs/api/java/net/ 
>>>>> Socket.html#setTrafficClass(int)
>>>>>
>>>>>
>>>>>
>>>>> Peter Rossbach wrote:
>>>>>> Hi Filip,
>>>>>>
>>>>>> I am starting testing your new NioProtocol handler, but I got  
>>>>>> following exception:
>>>>>>
>>>>>> 30.10.2006 13:37:24 org.apache.tomcat.util.net.NioEndpoint  
>>>>>> setSocketOptions
>>>>>> SCHWERWIEGEND:
>>>>>> java.net.SocketException: Invalid argument
>>>>>>         at sun.nio.ch.Net.setIntOption0(Native Method)
>>>>>>         at sun.nio.ch.Net.setIntOption(Net.java:152)
>>>>>>         at sun.nio.ch.SocketChannelImpl$1.setInt 
>>>>>> (SocketChannelImpl.java:372)
>>>>>>         at sun.nio.ch.SocketOptsImpl.setInt 
>>>>>> (SocketOptsImpl.java:46)
>>>>>>         at sun.nio.ch.SocketOptsImpl$IP.typeOfService 
>>>>>> (SocketOptsImpl.java:249)
>>>>>>         at sun.nio.ch.OptionAdaptor.setTrafficClass 
>>>>>> (OptionAdaptor.java:158)
>>>>>>         at sun.nio.ch.SocketAdaptor.setTrafficClass 
>>>>>> (SocketAdaptor.java:320)
>>>>>>         at  
>>>>>> org.apache.tomcat.util.net.SocketProperties.setProperties 
>>>>>> (SocketProperties.java:107)
>>>>>>         at  
>>>>>> org.apache.tomcat.util.net.NioEndpoint.setSocketOptions 
>>>>>> (NioEndpoint.java:742)
>>>>>>         at org.apache.tomcat.util.net.NioEndpoint$Worker.run 
>>>>>> (NioEndpoint.java:1423)
>>>>>>         at java.lang.Thread.run(Thread.java:613)
>>>>>>
>>>>>>
>>>>>> ==
>>>>>>
>>>>>> My connector config is:
>>>>>>
>>>>>>     <Connector port="8080"
>>>>>>                maxThreads="150" connectionTimeout="20000"
>>>>>>                redirectPort="8443"
>>>>>>                 
>>>>>> protocol="org.apache.coyote.http11.Http11NioProtocol" />
>>>>>>
>>>>>> After some google search I found that soTrafficClass are not  
>>>>>> supported at mac os x :-(
>>>>>> s. http://jira.safehaus.org/browse/PENROSE-71
>>>>>>
>>>>>> I comment out  L 106 at class o.a.t.util.net.SocketProperties.
>>>>>>
>>>>>> //        socket.setTrafficClass(soTrafficClass);
>>>>>>
>>>>>> Before I did this: I check starting connector with some  
>>>>>> different values without success
>>>>>>
>>>>>> ex.
>>>>>>     <Connector port="8080"
>>>>>>                maxThreads="150" connectionTimeout="20000"
>>>>>>                redirectPort="8443"
>>>>>>                 
>>>>>> protocol="org.apache.coyote.http11.Http11NioProtocol"
>>>>>>         socket.soTrafficClass="2" />
>>>>>>
>>>>>> After that patch the Connector work, but with the comet style  
>>>>>> chat example I have more trouble:
>>>>>>
>>>>>> INFO: Server startup in 3025 ms
>>>>>> Exception in thread "http-8080-1" java.lang.NullPointerException
>>>>>>         at org.apache.tomcat.util.net.NioEndpoint$Worker.run 
>>>>>> (NioEndpoint.java:1441)
>>>>>>         at java.lang.Thread.run(Thread.java:613)
>>>>>> Exception in thread "http-8080-2" java.lang.NullPointerException
>>>>>>         at org.apache.tomcat.util.net.NioEndpoint$Worker.run 
>>>>>> (NioEndpoint.java:1441)
>>>>>>         at java.lang.Thread.run(Thread.java:613)
>>>>>>
>>>>>> --Chat example really working? I see the posted messages only  
>>>>>> after socket is closed (with Firefox 1.5)...
>>>>>>
>>>>>> Next I test the chat example with APR handler, again.
>>>>>>
>>>>>> Regards
>>>>>> Peter Roßbach
>>>>>> pr@objektpark.de
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> ----------------------------------------------------------------- 
>>>>>> -------
>>>>>>
>>>>>> No virus found in this incoming message.
>>>>>> Checked by AVG Free Edition.
>>>>>> Version: 7.1.408 / Virus Database: 268.13.17/505 - Release  
>>>>>> Date: 10/27/2006
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------ 
>>>>> ---
>>>>> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
>>>>> For additional commands, e-mail: dev-help@tomcat.apache.org
>>>>>
>>>>>
>>>>
>>>
>>>
>>> -------------------------------------------------------------------- 
>>> ----
>>>
>>> No virus found in this incoming message.
>>> Checked by AVG Free Edition.
>>> Version: 7.1.408 / Virus Database: 268.13.17/505 - Release Date:  
>>> 10/27/2006
>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: dev-help@tomcat.apache.org
>>
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
>


Re: It seems that Http11NioProtocol handler not working at mac os x 10.4.8 ppc

Posted by Filip Hanik - Dev Lists <de...@hanik.com>.
yeah, that fix is not entirely correct and can lead to problems down the 
road,
the problem is bigger than that, I have to catch the socket being closed 
earlier so that I can unattach the attachment from the key

Filip

Filip Hanik - Dev Lists wrote:
> how do you reproduce this? I've added in your fix, but cant reproduce 
> the problem
>
> Filip
>
> Peter Rossbach wrote:
>> Hi Filip.
>>
>> you see at my situation the key can be null:
>>
>> 30.10.2006 16:03:20 org.apache.tomcat.util.net.NioEndpoint$Worker run
>> INFO: 
>> socket=org.apache.tomcat.util.net.NioChannel@58473e:java.nio.channels.SocketChannel[connected 
>> local=/127.0.0.1:8080 remote=/127.0.0.1:50517] 
>> key=sun.nio.ch.SelectionKeyImpl@5138a4
>> 30.10.2006 16:03:40 org.apache.tomcat.util.net.NioEndpoint$Worker run
>> INFO: 
>> socket=org.apache.tomcat.util.net.NioChannel@a6343d:java.nio.channels.SocketChannel[closed] 
>> key=null
>>                                                                        
>>                                                                        
>>                                                #################
>>
>> Exception in thread "http-8080-2" java.lang.NullPointerException
>>         at 
>> org.apache.tomcat.util.net.NioEndpoint$Worker.run(NioEndpoint.java:1442)
>>         at java.lang.Thread.run(Thread.java:613)
>>
>>
>> Here my patch:
>>
>> === L 1436 f
>>
>>                         NioChannel socket = (NioChannel)channel;
>>
>>                         SelectionKey key = 
>> socket.getIOChannel().keyFor(socket.getPoller().getSelector());
>>                         int handshake = -1;
>>                         log.info("socket=" + socket + " key=" + key );
>>                         if(key != null) {
>>                             try {
>>                                 handshake = 
>> socket.handshake(key.isReadable(), key.isWritable());
>>                             }catch ( IOException x ) {
>>                                 handshake = -1;
>>                                 if ( log.isDebugEnabled() ) 
>> log.debug("Error during SSL handshake",x);
>>                             }catch ( CancelledKeyException ckx ) {
>>                                 handshake = -1;
>>                             }
>>                         } else {
>>                                handshake = -1;
>>                         }
>>
>>                         if ( handshake == 0 ) {
>>                             // Process the request from this socket
>>                             if ((status != null) && 
>> (handler.event(socket, status) == Handler.SocketState.CLOSED)) {
>>                                 // Close socket and pool
>>                                 try {
>>                                     KeyAttachment att = 
>> (KeyAttachment)socket.getAttachment(true);
>>                                     try {socket.close();}catch 
>> (Exception ignore){}
>>                                     if ( socket.isOpen() ) 
>> socket.close(true);
>>                                     nioChannels.offer(socket);
>>                                     if ( att!=null ) 
>> keyCache.offer(att);
>>                                 }catch ( Exception x ) {
>>                                     log.error("",x);
>>                                 }
>>                             } else if ((status == null) && 
>> (handler.process(socket) == Handler.SocketState.CLOSED)) {
>>                                 // Close socket and pool
>>                                 try {
>>                                     KeyAttachment att = 
>> (KeyAttachment)socket.getAttachment(true);
>>                                     try {socket.close();}catch 
>> (Exception ignore){}
>>                                     if ( socket.isOpen() ) 
>> socket.close(true);
>>                                     nioChannels.offer(socket);
>>                                     if ( att!=null ) 
>> keyCache.offer(att);
>>                                 }catch ( Exception x ) {
>>                                     log.error("",x);
>>                                 }
>>                             }
>>                         } else if (handshake == -1 ) {
>>                             if ( key != null && key.isValid() ) 
>> key.cancel();
>>                             try {socket.close(true);}catch 
>> (IOException ignore){}
>>                             nioChannels.offer(socket);
>>                         } else {
>>                             final SelectionKey fk = key;
>>                             final int intops = handshake;
>>                             final KeyAttachment ka = 
>> (KeyAttachment)fk.attachment();
>>                             ka.getPoller().add(socket,intops);
>>                         }
>>                     }
>>                 } finally {
>>                     //dereference socket to let GC do its job
>>                     socket = null;
>>                     // Finish up this request
>>                     recycleWorkerThread(this);
>>                 }
>>             }
>>         }
>>
>> ====
>>
>> But why the chat messages don't responce only as socket close?
>>
>>     <Connector port="8080"
>>                maxThreads="150" connectionTimeout="20000"
>>                redirectPort="8443"
>>                protocol="org.apache.coyote.http11.Http11NioProtocol"
>>                />
>>
>> I only see comet begin event?
>> ==
>> 30.10.2006 16:19:28 org.apache.catalina.core.ApplicationContext log
>> INFO: ContextListener: 
>> attributeAdded('org.apache.jasper.runtime.JspApplicationC
>> ontextImpl', 
>> 'org.apache.jasper.runtime.JspApplicationContextImpl@428ffa')
>> 30.10.2006 16:19:32 org.apache.catalina.core.ApplicationContext log
>> INFO: SessionListener: 
>> attributeReplaced('C3E6394AC176D22B752C75D55343AA02', 'ni
>> ckname', 'pero')
>> 30.10.2006 16:19:35 org.apache.catalina.core.ApplicationContext log
>> INFO: ChatServlet: Begin for session: C3E6394AC176D22B752C75D55343AA02
>> 30.10.2006 16:25:17 org.apache.catalina.core.ApplicationContext log
>> INFO: SessionListener: contextDestroyed()
>> 30.10.2006 16:25:17 org.apache.catalina.core.ApplicationContext log
>> INFO: ContextListener: contextDestroyed()
>> 30.10.2006 16:25:22 org.apache.catalina.core.ApplicationContext log
>> INFO: ContextListener: contextInitialized()
>> 30.10.2006 16:25:22 org.apache.catalina.core.ApplicationContext log
>> INFO: SessionListener: contextInitialized()
>> 30.10.2006 16:25:33 org.apache.catalina.core.ApplicationContext log
>> INFO: ContextListener: 
>> attributeAdded('org.apache.jasper.runtime.JspApplicationC
>> ontextImpl', 
>> 'org.apache.jasper.runtime.JspApplicationContextImpl@428ffa')
>> 30.10.2006 16:25:36 org.apache.catalina.core.ApplicationContext log
>> INFO: SessionListener: 
>> attributeReplaced('C3E6394AC176D22B752C75D55343AA02', 'ni
>> ckname', 'pero')
>> 30.10.2006 16:25:40 org.apache.catalina.core.ApplicationContext log
>> INFO: ChatServlet: Begin for session: C3E6394AC176D22B752C75D55343AA02
>>
>> ===
>>
>> Regards
>> Peter
>>
>>
>>
>> Am 30.10.2006 um 15:53 schrieb Peter Rossbach:
>>
>>> Hi Filip,
>>>
>>> I found that MAC OS X only support setTrafficClass with following 
>>> JDK option
>>>
>>> -Djava.net.preferIPv4Stack=true
>>>
>>> http://lists.apple.com/archives/java-dev/2006/Jun/msg00414.html
>>>
>>> It seems a older IPV6 bug. At which place we can document those 
>>> things? -> F&Q
>>>
>>>
>>> The chat example flush the messages only I got NPE:
>>>
>>> INFO: Server startup in 2642 ms
>>> Exception in thread "http-8080-1" java.lang.NullPointerException
>>>         at 
>>> org.apache.tomcat.util.net.NioEndpoint$Worker.run(NioEndpoint.java:1441) 
>>>
>>>         at java.lang.Thread.run(Thread.java:613)
>>>
>>> After this NPE the messages flush to the browser an connection are 
>>> closed.
>>>
>>> Regards
>>> Peter
>>>
>>>
>>> Am 30.10.2006 um 15:04 schrieb Filip Hanik - Dev Lists:
>>>
>>>> try to set the property socket.soTrafficClass to some other value,
>>>> if it's not working, what JDK are you running, here is the flag 
>>>> described by SUN
>>>>
>>>> http://java.sun.com/j2se/1.5.0/docs/api/java/net/Socket.html#setTrafficClass(int) 
>>>>
>>>>
>>>>
>>>>
>>>> Peter Rossbach wrote:
>>>>> Hi Filip,
>>>>>
>>>>> I am starting testing your new NioProtocol handler, but I got 
>>>>> following exception:
>>>>>
>>>>> 30.10.2006 13:37:24 org.apache.tomcat.util.net.NioEndpoint 
>>>>> setSocketOptions
>>>>> SCHWERWIEGEND:
>>>>> java.net.SocketException: Invalid argument
>>>>>         at sun.nio.ch.Net.setIntOption0(Native Method)
>>>>>         at sun.nio.ch.Net.setIntOption(Net.java:152)
>>>>>         at 
>>>>> sun.nio.ch.SocketChannelImpl$1.setInt(SocketChannelImpl.java:372)
>>>>>         at sun.nio.ch.SocketOptsImpl.setInt(SocketOptsImpl.java:46)
>>>>>         at 
>>>>> sun.nio.ch.SocketOptsImpl$IP.typeOfService(SocketOptsImpl.java:249)
>>>>>         at 
>>>>> sun.nio.ch.OptionAdaptor.setTrafficClass(OptionAdaptor.java:158)
>>>>>         at 
>>>>> sun.nio.ch.SocketAdaptor.setTrafficClass(SocketAdaptor.java:320)
>>>>>         at 
>>>>> org.apache.tomcat.util.net.SocketProperties.setProperties(SocketProperties.java:107) 
>>>>>
>>>>>         at 
>>>>> org.apache.tomcat.util.net.NioEndpoint.setSocketOptions(NioEndpoint.java:742) 
>>>>>
>>>>>         at 
>>>>> org.apache.tomcat.util.net.NioEndpoint$Worker.run(NioEndpoint.java:1423) 
>>>>>
>>>>>         at java.lang.Thread.run(Thread.java:613)
>>>>>
>>>>>
>>>>> ==
>>>>>
>>>>> My connector config is:
>>>>>
>>>>>     <Connector port="8080"
>>>>>                maxThreads="150" connectionTimeout="20000"
>>>>>                redirectPort="8443"
>>>>>                
>>>>> protocol="org.apache.coyote.http11.Http11NioProtocol" />
>>>>>
>>>>> After some google search I found that soTrafficClass are not 
>>>>> supported at mac os x :-(
>>>>> s. http://jira.safehaus.org/browse/PENROSE-71
>>>>>
>>>>> I comment out  L 106 at class o.a.t.util.net.SocketProperties.
>>>>>
>>>>> //        socket.setTrafficClass(soTrafficClass);
>>>>>
>>>>> Before I did this: I check starting connector with some different 
>>>>> values without success
>>>>>
>>>>> ex.
>>>>>     <Connector port="8080"
>>>>>                maxThreads="150" connectionTimeout="20000"
>>>>>                redirectPort="8443"
>>>>>                protocol="org.apache.coyote.http11.Http11NioProtocol"
>>>>>         socket.soTrafficClass="2" />
>>>>>
>>>>> After that patch the Connector work, but with the comet style chat 
>>>>> example I have more trouble:
>>>>>
>>>>> INFO: Server startup in 3025 ms
>>>>> Exception in thread "http-8080-1" java.lang.NullPointerException
>>>>>         at 
>>>>> org.apache.tomcat.util.net.NioEndpoint$Worker.run(NioEndpoint.java:1441) 
>>>>>
>>>>>         at java.lang.Thread.run(Thread.java:613)
>>>>> Exception in thread "http-8080-2" java.lang.NullPointerException
>>>>>         at 
>>>>> org.apache.tomcat.util.net.NioEndpoint$Worker.run(NioEndpoint.java:1441) 
>>>>>
>>>>>         at java.lang.Thread.run(Thread.java:613)
>>>>>
>>>>> --Chat example really working? I see the posted messages only 
>>>>> after socket is closed (with Firefox 1.5)...
>>>>>
>>>>> Next I test the chat example with APR handler, again.
>>>>>
>>>>> Regards
>>>>> Peter Roßbach
>>>>> pr@objektpark.de
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------ 
>>>>>
>>>>>
>>>>> No virus found in this incoming message.
>>>>> Checked by AVG Free Edition.
>>>>> Version: 7.1.408 / Virus Database: 268.13.17/505 - Release Date: 
>>>>> 10/27/2006
>>>>>
>>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
>>>> For additional commands, e-mail: dev-help@tomcat.apache.org
>>>>
>>>>
>>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> No virus found in this incoming message.
>> Checked by AVG Free Edition.
>> Version: 7.1.408 / Virus Database: 268.13.17/505 - Release Date: 
>> 10/27/2006
>>
>>   
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: It seems that Http11NioProtocol handler not working at mac os x 10.4.8 ppc

Posted by Filip Hanik - Dev Lists <de...@hanik.com>.
how do you reproduce this? I've added in your fix, but cant reproduce 
the problem

Filip

Peter Rossbach wrote:
> Hi Filip.
>
> you see at my situation the key can be null:
>
> 30.10.2006 16:03:20 org.apache.tomcat.util.net.NioEndpoint$Worker run
> INFO: 
> socket=org.apache.tomcat.util.net.NioChannel@58473e:java.nio.channels.SocketChannel[connected 
> local=/127.0.0.1:8080 remote=/127.0.0.1:50517] 
> key=sun.nio.ch.SelectionKeyImpl@5138a4
> 30.10.2006 16:03:40 org.apache.tomcat.util.net.NioEndpoint$Worker run
> INFO: 
> socket=org.apache.tomcat.util.net.NioChannel@a6343d:java.nio.channels.SocketChannel[closed] 
> key=null
>                                                                        
>                                                                        
>                                                #################
>
> Exception in thread "http-8080-2" java.lang.NullPointerException
>         at 
> org.apache.tomcat.util.net.NioEndpoint$Worker.run(NioEndpoint.java:1442)
>         at java.lang.Thread.run(Thread.java:613)
>
>
> Here my patch:
>
> === L 1436 f
>
>                         NioChannel socket = (NioChannel)channel;
>
>                         SelectionKey key = 
> socket.getIOChannel().keyFor(socket.getPoller().getSelector());
>                         int handshake = -1;
>                         log.info("socket=" + socket + " key=" + key );
>                         if(key != null) {
>                             try {
>                                 handshake = 
> socket.handshake(key.isReadable(), key.isWritable());
>                             }catch ( IOException x ) {
>                                 handshake = -1;
>                                 if ( log.isDebugEnabled() ) 
> log.debug("Error during SSL handshake",x);
>                             }catch ( CancelledKeyException ckx ) {
>                                 handshake = -1;
>                             }
>                         } else {
>                                handshake = -1;
>                         }
>
>                         if ( handshake == 0 ) {
>                             // Process the request from this socket
>                             if ((status != null) && 
> (handler.event(socket, status) == Handler.SocketState.CLOSED)) {
>                                 // Close socket and pool
>                                 try {
>                                     KeyAttachment att = 
> (KeyAttachment)socket.getAttachment(true);
>                                     try {socket.close();}catch 
> (Exception ignore){}
>                                     if ( socket.isOpen() ) 
> socket.close(true);
>                                     nioChannels.offer(socket);
>                                     if ( att!=null ) keyCache.offer(att);
>                                 }catch ( Exception x ) {
>                                     log.error("",x);
>                                 }
>                             } else if ((status == null) && 
> (handler.process(socket) == Handler.SocketState.CLOSED)) {
>                                 // Close socket and pool
>                                 try {
>                                     KeyAttachment att = 
> (KeyAttachment)socket.getAttachment(true);
>                                     try {socket.close();}catch 
> (Exception ignore){}
>                                     if ( socket.isOpen() ) 
> socket.close(true);
>                                     nioChannels.offer(socket);
>                                     if ( att!=null ) keyCache.offer(att);
>                                 }catch ( Exception x ) {
>                                     log.error("",x);
>                                 }
>                             }
>                         } else if (handshake == -1 ) {
>                             if ( key != null && key.isValid() ) 
> key.cancel();
>                             try {socket.close(true);}catch 
> (IOException ignore){}
>                             nioChannels.offer(socket);
>                         } else {
>                             final SelectionKey fk = key;
>                             final int intops = handshake;
>                             final KeyAttachment ka = 
> (KeyAttachment)fk.attachment();
>                             ka.getPoller().add(socket,intops);
>                         }
>                     }
>                 } finally {
>                     //dereference socket to let GC do its job
>                     socket = null;
>                     // Finish up this request
>                     recycleWorkerThread(this);
>                 }
>             }
>         }
>
> ====
>
> But why the chat messages don't responce only as socket close?
>
>     <Connector port="8080"
>                maxThreads="150" connectionTimeout="20000"
>                redirectPort="8443"
>                protocol="org.apache.coyote.http11.Http11NioProtocol"
>                />
>
> I only see comet begin event?
> ==
> 30.10.2006 16:19:28 org.apache.catalina.core.ApplicationContext log
> INFO: ContextListener: 
> attributeAdded('org.apache.jasper.runtime.JspApplicationC
> ontextImpl', 
> 'org.apache.jasper.runtime.JspApplicationContextImpl@428ffa')
> 30.10.2006 16:19:32 org.apache.catalina.core.ApplicationContext log
> INFO: SessionListener: 
> attributeReplaced('C3E6394AC176D22B752C75D55343AA02', 'ni
> ckname', 'pero')
> 30.10.2006 16:19:35 org.apache.catalina.core.ApplicationContext log
> INFO: ChatServlet: Begin for session: C3E6394AC176D22B752C75D55343AA02
> 30.10.2006 16:25:17 org.apache.catalina.core.ApplicationContext log
> INFO: SessionListener: contextDestroyed()
> 30.10.2006 16:25:17 org.apache.catalina.core.ApplicationContext log
> INFO: ContextListener: contextDestroyed()
> 30.10.2006 16:25:22 org.apache.catalina.core.ApplicationContext log
> INFO: ContextListener: contextInitialized()
> 30.10.2006 16:25:22 org.apache.catalina.core.ApplicationContext log
> INFO: SessionListener: contextInitialized()
> 30.10.2006 16:25:33 org.apache.catalina.core.ApplicationContext log
> INFO: ContextListener: 
> attributeAdded('org.apache.jasper.runtime.JspApplicationC
> ontextImpl', 
> 'org.apache.jasper.runtime.JspApplicationContextImpl@428ffa')
> 30.10.2006 16:25:36 org.apache.catalina.core.ApplicationContext log
> INFO: SessionListener: 
> attributeReplaced('C3E6394AC176D22B752C75D55343AA02', 'ni
> ckname', 'pero')
> 30.10.2006 16:25:40 org.apache.catalina.core.ApplicationContext log
> INFO: ChatServlet: Begin for session: C3E6394AC176D22B752C75D55343AA02
>
> ===
>
> Regards
> Peter
>
>
>
> Am 30.10.2006 um 15:53 schrieb Peter Rossbach:
>
>> Hi Filip,
>>
>> I found that MAC OS X only support setTrafficClass with following JDK 
>> option
>>
>> -Djava.net.preferIPv4Stack=true
>>
>> http://lists.apple.com/archives/java-dev/2006/Jun/msg00414.html
>>
>> It seems a older IPV6 bug. At which place we can document those 
>> things? -> F&Q
>>
>>
>> The chat example flush the messages only I got NPE:
>>
>> INFO: Server startup in 2642 ms
>> Exception in thread "http-8080-1" java.lang.NullPointerException
>>         at 
>> org.apache.tomcat.util.net.NioEndpoint$Worker.run(NioEndpoint.java:1441)
>>         at java.lang.Thread.run(Thread.java:613)
>>
>> After this NPE the messages flush to the browser an connection are 
>> closed.
>>
>> Regards
>> Peter
>>
>>
>> Am 30.10.2006 um 15:04 schrieb Filip Hanik - Dev Lists:
>>
>>> try to set the property socket.soTrafficClass to some other value,
>>> if it's not working, what JDK are you running, here is the flag 
>>> described by SUN
>>>
>>> http://java.sun.com/j2se/1.5.0/docs/api/java/net/Socket.html#setTrafficClass(int) 
>>>
>>>
>>>
>>>
>>> Peter Rossbach wrote:
>>>> Hi Filip,
>>>>
>>>> I am starting testing your new NioProtocol handler, but I got 
>>>> following exception:
>>>>
>>>> 30.10.2006 13:37:24 org.apache.tomcat.util.net.NioEndpoint 
>>>> setSocketOptions
>>>> SCHWERWIEGEND:
>>>> java.net.SocketException: Invalid argument
>>>>         at sun.nio.ch.Net.setIntOption0(Native Method)
>>>>         at sun.nio.ch.Net.setIntOption(Net.java:152)
>>>>         at 
>>>> sun.nio.ch.SocketChannelImpl$1.setInt(SocketChannelImpl.java:372)
>>>>         at sun.nio.ch.SocketOptsImpl.setInt(SocketOptsImpl.java:46)
>>>>         at 
>>>> sun.nio.ch.SocketOptsImpl$IP.typeOfService(SocketOptsImpl.java:249)
>>>>         at 
>>>> sun.nio.ch.OptionAdaptor.setTrafficClass(OptionAdaptor.java:158)
>>>>         at 
>>>> sun.nio.ch.SocketAdaptor.setTrafficClass(SocketAdaptor.java:320)
>>>>         at 
>>>> org.apache.tomcat.util.net.SocketProperties.setProperties(SocketProperties.java:107) 
>>>>
>>>>         at 
>>>> org.apache.tomcat.util.net.NioEndpoint.setSocketOptions(NioEndpoint.java:742) 
>>>>
>>>>         at 
>>>> org.apache.tomcat.util.net.NioEndpoint$Worker.run(NioEndpoint.java:1423) 
>>>>
>>>>         at java.lang.Thread.run(Thread.java:613)
>>>>
>>>>
>>>> ==
>>>>
>>>> My connector config is:
>>>>
>>>>     <Connector port="8080"
>>>>                maxThreads="150" connectionTimeout="20000"
>>>>                redirectPort="8443"
>>>>                
>>>> protocol="org.apache.coyote.http11.Http11NioProtocol" />
>>>>
>>>> After some google search I found that soTrafficClass are not 
>>>> supported at mac os x :-(
>>>> s. http://jira.safehaus.org/browse/PENROSE-71
>>>>
>>>> I comment out  L 106 at class o.a.t.util.net.SocketProperties.
>>>>
>>>> //        socket.setTrafficClass(soTrafficClass);
>>>>
>>>> Before I did this: I check starting connector with some different 
>>>> values without success
>>>>
>>>> ex.
>>>>     <Connector port="8080"
>>>>                maxThreads="150" connectionTimeout="20000"
>>>>                redirectPort="8443"
>>>>                protocol="org.apache.coyote.http11.Http11NioProtocol"
>>>>         socket.soTrafficClass="2" />
>>>>
>>>> After that patch the Connector work, but with the comet style chat 
>>>> example I have more trouble:
>>>>
>>>> INFO: Server startup in 3025 ms
>>>> Exception in thread "http-8080-1" java.lang.NullPointerException
>>>>         at 
>>>> org.apache.tomcat.util.net.NioEndpoint$Worker.run(NioEndpoint.java:1441) 
>>>>
>>>>         at java.lang.Thread.run(Thread.java:613)
>>>> Exception in thread "http-8080-2" java.lang.NullPointerException
>>>>         at 
>>>> org.apache.tomcat.util.net.NioEndpoint$Worker.run(NioEndpoint.java:1441) 
>>>>
>>>>         at java.lang.Thread.run(Thread.java:613)
>>>>
>>>> --Chat example really working? I see the posted messages only after 
>>>> socket is closed (with Firefox 1.5)...
>>>>
>>>> Next I test the chat example with APR handler, again.
>>>>
>>>> Regards
>>>> Peter Roßbach
>>>> pr@objektpark.de
>>>>
>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------------------ 
>>>>
>>>>
>>>> No virus found in this incoming message.
>>>> Checked by AVG Free Edition.
>>>> Version: 7.1.408 / Virus Database: 268.13.17/505 - Release Date: 
>>>> 10/27/2006
>>>>
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
>>> For additional commands, e-mail: dev-help@tomcat.apache.org
>>>
>>>
>>
>
>
> ------------------------------------------------------------------------
>
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.1.408 / Virus Database: 268.13.17/505 - Release Date: 10/27/2006
>
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: It seems that Http11NioProtocol handler not working at mac os x 10.4.8 ppc

Posted by Peter Rossbach <pr...@objektpark.de>.
Hi Filip.

you see at my situation the key can be null:

30.10.2006 16:03:20 org.apache.tomcat.util.net.NioEndpoint$Worker run
INFO:  
socket=org.apache.tomcat.util.net.NioChannel@58473e:java.nio.channels.So 
cketChannel[connected local=/127.0.0.1:8080 remote=/127.0.0.1:50517]  
key=sun.nio.ch.SelectionKeyImpl@5138a4
30.10.2006 16:03:40 org.apache.tomcat.util.net.NioEndpoint$Worker run
INFO:  
socket=org.apache.tomcat.util.net.NioChannel@a6343d:java.nio.channels.So 
cketChannel[closed] key=null
                                                                         
                                                                         
                                                #################

Exception in thread "http-8080-2" java.lang.NullPointerException
         at org.apache.tomcat.util.net.NioEndpoint$Worker.run 
(NioEndpoint.java:1442)
         at java.lang.Thread.run(Thread.java:613)


Here my patch:

=== L 1436 f

                         NioChannel socket = (NioChannel)channel;

                         SelectionKey key = socket.getIOChannel 
().keyFor(socket.getPoller().getSelector());
                         int handshake = -1;
                         log.info("socket=" + socket + " key=" + key );
                         if(key != null) {
                             try {
                                 handshake = socket.handshake 
(key.isReadable(), key.isWritable());
                             }catch ( IOException x ) {
                                 handshake = -1;
                                 if ( log.isDebugEnabled() ) log.debug 
("Error during SSL handshake",x);
                             }catch ( CancelledKeyException ckx ) {
                                 handshake = -1;
                             }
                         } else {
                                handshake = -1;
                         }

                         if ( handshake == 0 ) {
                             // Process the request from this socket
                             if ((status != null) && (handler.event 
(socket, status) == Handler.SocketState.CLOSED)) {
                                 // Close socket and pool
                                 try {
                                     KeyAttachment att =  
(KeyAttachment)socket.getAttachment(true);
                                     try {socket.close();}catch  
(Exception ignore){}
                                     if ( socket.isOpen() )  
socket.close(true);
                                     nioChannels.offer(socket);
                                     if ( att!=null ) keyCache.offer 
(att);
                                 }catch ( Exception x ) {
                                     log.error("",x);
                                 }
                             } else if ((status == null) &&  
(handler.process(socket) == Handler.SocketState.CLOSED)) {
                                 // Close socket and pool
                                 try {
                                     KeyAttachment att =  
(KeyAttachment)socket.getAttachment(true);
                                     try {socket.close();}catch  
(Exception ignore){}
                                     if ( socket.isOpen() )  
socket.close(true);
                                     nioChannels.offer(socket);
                                     if ( att!=null ) keyCache.offer 
(att);
                                 }catch ( Exception x ) {
                                     log.error("",x);
                                 }
                             }
                         } else if (handshake == -1 ) {
                             if ( key != null && key.isValid() )  
key.cancel();
                             try {socket.close(true);}catch  
(IOException ignore){}
                             nioChannels.offer(socket);
                         } else {
                             final SelectionKey fk = key;
                             final int intops = handshake;
                             final KeyAttachment ka = (KeyAttachment) 
fk.attachment();
                             ka.getPoller().add(socket,intops);
                         }
                     }
                 } finally {
                     //dereference socket to let GC do its job
                     socket = null;
                     // Finish up this request
                     recycleWorkerThread(this);
                 }
             }
         }

====

But why the chat messages don't responce only as socket close?

     <Connector port="8080"
                maxThreads="150" connectionTimeout="20000"
                redirectPort="8443"
                protocol="org.apache.coyote.http11.Http11NioProtocol"
                />

I only see comet begin event?
==
30.10.2006 16:19:28 org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: attributeAdded 
('org.apache.jasper.runtime.JspApplicationC
ontextImpl',  
'org.apache.jasper.runtime.JspApplicationContextImpl@428ffa')
30.10.2006 16:19:32 org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: attributeReplaced 
('C3E6394AC176D22B752C75D55343AA02', 'ni
ckname', 'pero')
30.10.2006 16:19:35 org.apache.catalina.core.ApplicationContext log
INFO: ChatServlet: Begin for session: C3E6394AC176D22B752C75D55343AA02
30.10.2006 16:25:17 org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextDestroyed()
30.10.2006 16:25:17 org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextDestroyed()
30.10.2006 16:25:22 org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
30.10.2006 16:25:22 org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
30.10.2006 16:25:33 org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: attributeAdded 
('org.apache.jasper.runtime.JspApplicationC
ontextImpl',  
'org.apache.jasper.runtime.JspApplicationContextImpl@428ffa')
30.10.2006 16:25:36 org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: attributeReplaced 
('C3E6394AC176D22B752C75D55343AA02', 'ni
ckname', 'pero')
30.10.2006 16:25:40 org.apache.catalina.core.ApplicationContext log
INFO: ChatServlet: Begin for session: C3E6394AC176D22B752C75D55343AA02

===

Regards
Peter



Am 30.10.2006 um 15:53 schrieb Peter Rossbach:

> Hi Filip,
>
> I found that MAC OS X only support setTrafficClass with following  
> JDK option
>
> -Djava.net.preferIPv4Stack=true
>
> http://lists.apple.com/archives/java-dev/2006/Jun/msg00414.html
>
> It seems a older IPV6 bug. At which place we can document those  
> things? -> F&Q
>
>
> The chat example flush the messages only I got NPE:
>
> INFO: Server startup in 2642 ms
> Exception in thread "http-8080-1" java.lang.NullPointerException
>         at org.apache.tomcat.util.net.NioEndpoint$Worker.run 
> (NioEndpoint.java:1441)
>         at java.lang.Thread.run(Thread.java:613)
>
> After this NPE the messages flush to the browser an connection are  
> closed.
>
> Regards
> Peter
>
>
> Am 30.10.2006 um 15:04 schrieb Filip Hanik - Dev Lists:
>
>> try to set the property socket.soTrafficClass to some other value,
>> if it's not working, what JDK are you running, here is the flag  
>> described by SUN
>>
>> http://java.sun.com/j2se/1.5.0/docs/api/java/net/ 
>> Socket.html#setTrafficClass(int)
>>
>>
>>
>> Peter Rossbach wrote:
>>> Hi Filip,
>>>
>>> I am starting testing your new NioProtocol handler, but I got  
>>> following exception:
>>>
>>> 30.10.2006 13:37:24 org.apache.tomcat.util.net.NioEndpoint  
>>> setSocketOptions
>>> SCHWERWIEGEND:
>>> java.net.SocketException: Invalid argument
>>>         at sun.nio.ch.Net.setIntOption0(Native Method)
>>>         at sun.nio.ch.Net.setIntOption(Net.java:152)
>>>         at sun.nio.ch.SocketChannelImpl$1.setInt 
>>> (SocketChannelImpl.java:372)
>>>         at sun.nio.ch.SocketOptsImpl.setInt(SocketOptsImpl.java:46)
>>>         at sun.nio.ch.SocketOptsImpl$IP.typeOfService 
>>> (SocketOptsImpl.java:249)
>>>         at sun.nio.ch.OptionAdaptor.setTrafficClass 
>>> (OptionAdaptor.java:158)
>>>         at sun.nio.ch.SocketAdaptor.setTrafficClass 
>>> (SocketAdaptor.java:320)
>>>         at  
>>> org.apache.tomcat.util.net.SocketProperties.setProperties 
>>> (SocketProperties.java:107)
>>>         at org.apache.tomcat.util.net.NioEndpoint.setSocketOptions 
>>> (NioEndpoint.java:742)
>>>         at org.apache.tomcat.util.net.NioEndpoint$Worker.run 
>>> (NioEndpoint.java:1423)
>>>         at java.lang.Thread.run(Thread.java:613)
>>>
>>>
>>> ==
>>>
>>> My connector config is:
>>>
>>>     <Connector port="8080"
>>>                maxThreads="150" connectionTimeout="20000"
>>>                redirectPort="8443"
>>>                 
>>> protocol="org.apache.coyote.http11.Http11NioProtocol" />
>>>
>>> After some google search I found that soTrafficClass are not  
>>> supported at mac os x :-(
>>> s. http://jira.safehaus.org/browse/PENROSE-71
>>>
>>> I comment out  L 106 at class o.a.t.util.net.SocketProperties.
>>>
>>> //        socket.setTrafficClass(soTrafficClass);
>>>
>>> Before I did this: I check starting connector with some different  
>>> values without success
>>>
>>> ex.
>>>     <Connector port="8080"
>>>                maxThreads="150" connectionTimeout="20000"
>>>                redirectPort="8443"
>>>                protocol="org.apache.coyote.http11.Http11NioProtocol"
>>>         socket.soTrafficClass="2" />
>>>
>>> After that patch the Connector work, but with the comet style  
>>> chat example I have more trouble:
>>>
>>> INFO: Server startup in 3025 ms
>>> Exception in thread "http-8080-1" java.lang.NullPointerException
>>>         at org.apache.tomcat.util.net.NioEndpoint$Worker.run 
>>> (NioEndpoint.java:1441)
>>>         at java.lang.Thread.run(Thread.java:613)
>>> Exception in thread "http-8080-2" java.lang.NullPointerException
>>>         at org.apache.tomcat.util.net.NioEndpoint$Worker.run 
>>> (NioEndpoint.java:1441)
>>>         at java.lang.Thread.run(Thread.java:613)
>>>
>>> -- 
>>> Chat example really working? I see the posted messages only after  
>>> socket is closed (with Firefox 1.5)...
>>>
>>> Next I test the chat example with APR handler, again.
>>>
>>> Regards
>>> Peter Roßbach
>>> pr@objektpark.de
>>>
>>>
>>>
>>>
>>> -------------------------------------------------------------------- 
>>> ----
>>>
>>> No virus found in this incoming message.
>>> Checked by AVG Free Edition.
>>> Version: 7.1.408 / Virus Database: 268.13.17/505 - Release Date:  
>>> 10/27/2006
>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: dev-help@tomcat.apache.org
>>
>>
>


Re: It seems that Http11NioProtocol handler not working at mac os x 10.4.8 ppc

Posted by Peter Rossbach <pr...@objektpark.de>.
Hi Filip,

I found that MAC OS X only support setTrafficClass with following JDK  
option

-Djava.net.preferIPv4Stack=true

http://lists.apple.com/archives/java-dev/2006/Jun/msg00414.html

It seems a older IPV6 bug. At which place we can document those  
things? -> F&Q


The chat example flush the messages only I got NPE:

INFO: Server startup in 2642 ms
Exception in thread "http-8080-1" java.lang.NullPointerException
         at org.apache.tomcat.util.net.NioEndpoint$Worker.run 
(NioEndpoint.java:1441)
         at java.lang.Thread.run(Thread.java:613)

After this NPE the messages flush to the browser an connection are  
closed.

Regards
Peter


Am 30.10.2006 um 15:04 schrieb Filip Hanik - Dev Lists:

> try to set the property socket.soTrafficClass to some other value,
> if it's not working, what JDK are you running, here is the flag  
> described by SUN
>
> http://java.sun.com/j2se/1.5.0/docs/api/java/net/ 
> Socket.html#setTrafficClass(int)
>
>
>
> Peter Rossbach wrote:
>> Hi Filip,
>>
>> I am starting testing your new NioProtocol handler, but I got  
>> following exception:
>>
>> 30.10.2006 13:37:24 org.apache.tomcat.util.net.NioEndpoint  
>> setSocketOptions
>> SCHWERWIEGEND:
>> java.net.SocketException: Invalid argument
>>         at sun.nio.ch.Net.setIntOption0(Native Method)
>>         at sun.nio.ch.Net.setIntOption(Net.java:152)
>>         at sun.nio.ch.SocketChannelImpl$1.setInt 
>> (SocketChannelImpl.java:372)
>>         at sun.nio.ch.SocketOptsImpl.setInt(SocketOptsImpl.java:46)
>>         at sun.nio.ch.SocketOptsImpl$IP.typeOfService 
>> (SocketOptsImpl.java:249)
>>         at sun.nio.ch.OptionAdaptor.setTrafficClass 
>> (OptionAdaptor.java:158)
>>         at sun.nio.ch.SocketAdaptor.setTrafficClass 
>> (SocketAdaptor.java:320)
>>         at  
>> org.apache.tomcat.util.net.SocketProperties.setProperties 
>> (SocketProperties.java:107)
>>         at org.apache.tomcat.util.net.NioEndpoint.setSocketOptions 
>> (NioEndpoint.java:742)
>>         at org.apache.tomcat.util.net.NioEndpoint$Worker.run 
>> (NioEndpoint.java:1423)
>>         at java.lang.Thread.run(Thread.java:613)
>>
>>
>> ==
>>
>> My connector config is:
>>
>>     <Connector port="8080"
>>                maxThreads="150" connectionTimeout="20000"
>>                redirectPort="8443"
>>                 
>> protocol="org.apache.coyote.http11.Http11NioProtocol" />
>>
>> After some google search I found that soTrafficClass are not  
>> supported at mac os x :-(
>> s. http://jira.safehaus.org/browse/PENROSE-71
>>
>> I comment out  L 106 at class o.a.t.util.net.SocketProperties.
>>
>> //        socket.setTrafficClass(soTrafficClass);
>>
>> Before I did this: I check starting connector with some different  
>> values without success
>>
>> ex.
>>     <Connector port="8080"
>>                maxThreads="150" connectionTimeout="20000"
>>                redirectPort="8443"
>>                protocol="org.apache.coyote.http11.Http11NioProtocol"
>>         socket.soTrafficClass="2" />
>>
>> After that patch the Connector work, but with the comet style chat  
>> example I have more trouble:
>>
>> INFO: Server startup in 3025 ms
>> Exception in thread "http-8080-1" java.lang.NullPointerException
>>         at org.apache.tomcat.util.net.NioEndpoint$Worker.run 
>> (NioEndpoint.java:1441)
>>         at java.lang.Thread.run(Thread.java:613)
>> Exception in thread "http-8080-2" java.lang.NullPointerException
>>         at org.apache.tomcat.util.net.NioEndpoint$Worker.run 
>> (NioEndpoint.java:1441)
>>         at java.lang.Thread.run(Thread.java:613)
>>
>> -- 
>> Chat example really working? I see the posted messages only after  
>> socket is closed (with Firefox 1.5)...
>>
>> Next I test the chat example with APR handler, again.
>>
>> Regards
>> Peter Roßbach
>> pr@objektpark.de
>>
>>
>>
>>
>> --------------------------------------------------------------------- 
>> ---
>>
>> No virus found in this incoming message.
>> Checked by AVG Free Edition.
>> Version: 7.1.408 / Virus Database: 268.13.17/505 - Release Date:  
>> 10/27/2006
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
>


Re: It seems that Http11NioProtocol handler not working at mac os x 10.4.8 ppc

Posted by Filip Hanik - Dev Lists <de...@hanik.com>.
try to set the property socket.soTrafficClass to some other value,
if it's not working, what JDK are you running, here is the flag 
described by SUN

http://java.sun.com/j2se/1.5.0/docs/api/java/net/Socket.html#setTrafficClass(int)



Peter Rossbach wrote:
> Hi Filip,
>
> I am starting testing your new NioProtocol handler, but I got 
> following exception:
>
> 30.10.2006 13:37:24 org.apache.tomcat.util.net.NioEndpoint 
> setSocketOptions
> SCHWERWIEGEND:
> java.net.SocketException: Invalid argument
>         at sun.nio.ch.Net.setIntOption0(Native Method)
>         at sun.nio.ch.Net.setIntOption(Net.java:152)
>         at 
> sun.nio.ch.SocketChannelImpl$1.setInt(SocketChannelImpl.java:372)
>         at sun.nio.ch.SocketOptsImpl.setInt(SocketOptsImpl.java:46)
>         at 
> sun.nio.ch.SocketOptsImpl$IP.typeOfService(SocketOptsImpl.java:249)
>         at 
> sun.nio.ch.OptionAdaptor.setTrafficClass(OptionAdaptor.java:158)
>         at 
> sun.nio.ch.SocketAdaptor.setTrafficClass(SocketAdaptor.java:320)
>         at 
> org.apache.tomcat.util.net.SocketProperties.setProperties(SocketProperties.java:107) 
>
>         at 
> org.apache.tomcat.util.net.NioEndpoint.setSocketOptions(NioEndpoint.java:742) 
>
>         at 
> org.apache.tomcat.util.net.NioEndpoint$Worker.run(NioEndpoint.java:1423)
>         at java.lang.Thread.run(Thread.java:613)
>
>
> ==
>
> My connector config is:
>
>     <Connector port="8080"
>                maxThreads="150" connectionTimeout="20000"
>                redirectPort="8443"
>                protocol="org.apache.coyote.http11.Http11NioProtocol" />
>
> After some google search I found that soTrafficClass are not supported 
> at mac os x :-(
> s. http://jira.safehaus.org/browse/PENROSE-71
>
> I comment out  L 106 at class o.a.t.util.net.SocketProperties.
>
> //        socket.setTrafficClass(soTrafficClass);
>
> Before I did this: I check starting connector with some different 
> values without success
>
> ex.
>     <Connector port="8080"
>                maxThreads="150" connectionTimeout="20000"
>                redirectPort="8443"
>                protocol="org.apache.coyote.http11.Http11NioProtocol"
>         socket.soTrafficClass="2" />
>
> After that patch the Connector work, but with the comet style chat 
> example I have more trouble:
>
> INFO: Server startup in 3025 ms
> Exception in thread "http-8080-1" java.lang.NullPointerException
>         at 
> org.apache.tomcat.util.net.NioEndpoint$Worker.run(NioEndpoint.java:1441)
>         at java.lang.Thread.run(Thread.java:613)
> Exception in thread "http-8080-2" java.lang.NullPointerException
>         at 
> org.apache.tomcat.util.net.NioEndpoint$Worker.run(NioEndpoint.java:1441)
>         at java.lang.Thread.run(Thread.java:613)
>
> -- 
> Chat example really working? I see the posted messages only after 
> socket is closed (with Firefox 1.5)...
>
> Next I test the chat example with APR handler, again.
>
> Regards
> Peter Roßbach
> pr@objektpark.de
>
>
>
>
> ------------------------------------------------------------------------
>
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.1.408 / Virus Database: 268.13.17/505 - Release Date: 10/27/2006
>
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org