Thank you for the info.
I can provide a patch, which will enforce selector spin workaround to
work on Windows 7.
Pls. let me know which GFv3 version are you using?
Thanks.
WBR,
Alexey.
> On 10-09-28 4:08 AM, Chris Wesdorp wrote:
>> Hello,
>>
>> I did test on Mac OS X.6 but did not encounter the issue. I will
>> try to
>> test with Tomcat as well and let you know the results.
>
> Thanks for sharing! I will pass the information to the Grizzly team.
>
> A+
>
> -- Jeanfrancois
>
>
>>
>>
>> Regards,
>> Chris
>>
>>
>> On Fri, Sep 24, 2010 at 11:30 PM, jfarcand <jfarcand.oss_at_gmail.com
>> <mailto:jfarcand.oss_at_gmail.com>> wrote:
>>
>> Salut,
>>
>> On 10-09-23 2:31 AM, Chris Wesdorp wrote:
>>
>> Hi,
>>
>> I can try on Mac OS X.6 and Linux is an option (need to
>> install
>> glassfish on it though). This will be next weekend or begin
>> next
>> week. I
>> will let you know.
>>
>>
>> another tests is to try with another container like Tomcat. That
>> will help isolating the issue.
>>
>> A+
>>
>> - Jeanfrancois
>>
>>
>>
>>
>> Regards,
>> Chris
>>
>>
>> On Thu, Sep 23, 2010 at 12:10 AM, jfarcand
>> <jfarcand.oss_at_gmail.com <mailto:jfarcand.oss_at_gmail.com>
>> <mailto:jfarcand.oss_at_gmail.com
>> <mailto:jfarcand.oss_at_gmail.com>>>
>> wrote:
>>
>> Salut,
>>
>> On 10-09-22 3:48 AM, Pierre wrote:
>>
>> Could it be this bug?
>> http://bugs.sun.com/view_bug.do?bug_id=6595055
>>
>> <http://bugs.sun.com/view_bug.do?bug_id=6595055>Its filed in
>> 2007 but no
>> fix has been done yet.
>> The workaround they suggest is to set the property
>> -J-
>> Dcom.sun.CORBA.transport.ORBUseNIOSelectToWait=false
>> Would this be a usefull workaround?
>>
>>
>> This is a similar issue except we (including the NIO
>> lead @ Sun)
>> never saw this issue on windows. The property above only
>> works with
>> Corba. Grizzly support the same workaround except I
>> think it
>> only
>> applied when run on Linux.
>>
>> Would it be possible to test on another platform to see if
>> the issue
>> stills occurs.
>>
>> Thanks!
>>
>> -- Jeanfrancois
>>
>>
>> Pierre
>>
>>
>> On Fri, Sep 17, 2010 at 9:41 PM, Chris Wesdorp
>> <chriswesdorp_at_gmail.com <mailto:chriswesdorp_at_gmail.com>
>> <mailto:chriswesdorp_at_gmail.com
>> <mailto:chriswesdorp_at_gmail.com>>
>> <mailto:chriswesdorp_at_gmail.com <mailto:chriswesdorp_at_gmail.com>
>> <mailto:chriswesdorp_at_gmail.com
>> <mailto:chriswesdorp_at_gmail.com>>>>
>> wrote:
>>
>> Hello Alexy,
>>
>> Thanks for your interest.
>>
>> A few mails back I added stack traces from jstack
>> when the
>> CPU load
>> was high. I was running Glassfish in debug mode
>> with
>> Netbeans.
>> Because I did the jstack a few time some threads
>> got my
>> attention.
>> With the debugger I suspended the threads below
>> which
>> brought down
>> the CPU to almost zero.
>>
>> This was done when all clients where disconnected.
>> When I
>> trigger a
>> broadcast and check the number of attached
>> resources in
>> Atmosphere
>> the number is zero.
>>
>> Can you work with this?
>>
>>
>> Regards,
>> Chris
>>
>>
>>
>>
>> "Thread-38" daemon prio=10 tid=0x0000000038e29800 nid=0x1b3c
>> runnable [0x000000003be3f000]
>>
>> java.lang.Thread.State: RUNNABLE
>> at
>> sun.nio.ch.WindowsSelectorImpl
>> $SubSelector.poll0(Native
>> Method)
>> at
>>
>>
>> sun.nio.ch.WindowsSelectorImpl
>> $SubSelector.poll(WindowsSelectorImpl.java:273)
>> at
>>
>>
>> sun.nio.ch.WindowsSelectorImpl$SubSelector.access
>> $400(WindowsSelectorImpl.java:255)
>> at
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:136)
>> at
>>
>> sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:
>> 69)
>> - locked <0x0000000017ceef40> (a
>> sun.nio.ch.Util$1)
>> - locked <0x0000000017ceef28> (a
>> java.util.Collections$UnmodifiableSet)
>> - locked <0x0000000017ceeb80> (a
>> sun.nio.ch.WindowsSelectorImpl)
>>
>> at
>> sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
>> at
>>
>>
>>
>> com.sun.grizzly.TCPSelectorHandler.select(TCPSelectorHandler.java:
>> 513)
>> at
>>
>>
>>
>> com
>> .sun
>> .grizzly.SelectorHandlerRunner.doSelect(SelectorHandlerRunner.java:
>> 185)
>> at
>>
>>
>>
>> com
>> .sun.grizzly.SelectorHandlerRunner.run(SelectorHandlerRunner.java:
>> 130)
>> at
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.runTask(ThreadPoolExecutor.java:886)
>> at
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.run(ThreadPoolExecutor.java:908)
>> at java.lang.Thread.run(Thread.java:619
>>
>> "Thread-23" daemon prio=10 tid=0x0000000038e2f000 nid=0x108
>> runnable
>> [0x000000003d91f000]
>>
>> java.lang.Thread.State: RUNNABLE
>> at
>> sun.nio.ch.WindowsSelectorImpl
>> $SubSelector.poll0(Native
>> Method)
>> at
>>
>>
>> sun.nio.ch.WindowsSelectorImpl
>> $SubSelector.poll(WindowsSelectorImpl.java:273)
>> at
>>
>>
>> sun.nio.ch.WindowsSelectorImpl$SubSelector.access
>> $400(WindowsSelectorImpl.java:255)
>> at
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:136)
>> at
>>
>> sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:
>> 69)
>> - locked <0x0000000016ba8bc8> (a
>> sun.nio.ch.Util$1)
>> - locked <0x0000000016ba8bb0> (a
>> java.util.Collections$UnmodifiableSet)
>> - locked <0x0000000016ba87a8> (a
>> sun.nio.ch.WindowsSelectorImpl)
>>
>> at
>> sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
>> at
>>
>>
>>
>> com.sun.grizzly.TCPSelectorHandler.select(TCPSelectorHandler.java:
>> 513)
>> at
>>
>>
>>
>> com
>> .sun
>> .grizzly.SelectorHandlerRunner.doSelect(SelectorHandlerRunner.java:
>> 185)
>> at
>>
>>
>>
>> com
>> .sun.grizzly.SelectorHandlerRunner.run(SelectorHandlerRunner.java:
>> 130)
>> at
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.runTask(ThreadPoolExecutor.java:886)
>> at
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.run(ThreadPoolExecutor.java:908)
>> at java.lang.Thread.run(Thread.java:619
>>
>>
>>
>> On Fri, Sep 17, 2010 at 7:47 PM, Oleksiy Stashok
>> <oleksiy.stashok_at_oracle.com
>> <mailto:oleksiy.stashok_at_oracle.com>
>> <mailto:oleksiy.stashok_at_oracle.com
>> <mailto:oleksiy.stashok_at_oracle.com>>
>> <mailto:oleksiy.stashok_at_oracle.com
>> <mailto:oleksiy.stashok_at_oracle.com>
>> <mailto:oleksiy.stashok_at_oracle.com
>> <mailto:oleksiy.stashok_at_oracle.com>>>> wrote:
>>
>> Hi guys,
>>
>> it could be good to make clear which thread/
>> threads
>> cause the
>> 100% CPU problem.
>> Is it possible to just stop/disconnect all the
>> client,
>> when 100%
>> CPU is observed and check if it still exists,
>> when there
>> are no
>> clients.
>>
>> If it's there - it would probably mean the
>> Selector spinning
>> problem, if not - then the problem is
>> somewhere
>> else.
>>
>> Thanks.
>>
>> WBR,
>> Alexey.
>>
>>
>> On Sep 17, 2010, at 7:29 , jfarcand wrote:
>>
>> Salut,
>>
>> On 10-09-17 10:22 AM, Chris Wesdorp wrote:
>>
>> Hello,
>>
>> for development I use Windows 7 with
>> the
>> following Java:
>> java version "1.6.0_20"
>> Java(TM) SE Runtime Environment (build
>> 1.6.0_20-b02)
>> Java HotSpot(TM) 64-Bit Server VM
>> (build
>> 16.3-b01, mixed
>> mode)
>>
>> I also noticed the problem on (32-bit
>> windows
>> server 2003
>> java version "1.6.0_13"
>> Java(TM) SE Runtime Environment (build
>> 1.6.0_13-b03)
>> Java HotSpot(TM) Client VM (build
>> 11.3-b02,
>> mixed mode,
>> sharing)
>>
>>
>> Thanks! Alexey, can you check internally
>> if
>> there is
>> such
>> issue on win7 + NIO ? I've also fwd the
>> details to
>> the NIO
>> spec lead. I know this issue was fixed in
>> 6u21 (for
>> Linux).
>> Can you try it?
>>
>> Thanks!
>>
>> -- Jeanfrancois
>>
>>
>>
>>
>> I did attach the JVM report of my
>> local
>> glassfish. Then
>> you know all the
>> details :)
>>
>>
>> Regards,
>> Chris
>>
>>
>>
>>
>>
>> On Fri, Sep 17, 2010 at 3:54 PM,
>> jfarcand
>> <jfarcand.oss_at_gmail.com <mailto:jfarcand.oss_at_gmail.com>
>> <mailto:jfarcand.oss_at_gmail.com
>> <mailto:jfarcand.oss_at_gmail.com>>
>> <mailto:jfarcand.oss_at_gmail.com <mailto:jfarcand.oss_at_gmail.com>
>> <mailto:jfarcand.oss_at_gmail.com
>> <mailto:jfarcand.oss_at_gmail.com>>>
>> <mailto:jfarcand.oss_at_gmail.com <mailto:jfarcand.oss_at_gmail.com>
>> <mailto:jfarcand.oss_at_gmail.com
>> <mailto:jfarcand.oss_at_gmail.com>>
>> <mailto:jfarcand.oss_at_gmail.com <mailto:jfarcand.oss_at_gmail.com>
>> <mailto:jfarcand.oss_at_gmail.com
>> <mailto:jfarcand.oss_at_gmail.com>>>>> wrote:
>>
>> Salut,
>>
>>
>> On 10-09-17 5:24 AM, Chris
>> Wesdorp wrote:
>>
>> Also an update from our side;
>> with your
>> remark on
>> the swallowed
>> exception we did look at
>> atmosphere-gwt-comet,
>> also here an
>> exception
>> was swallowed, seems like
>> atmosphere
>> needs this
>> to remove the
>> resource
>> (together with your change). In
>> my test
>> project
>> the broadcaster
>> does not
>> have any resources any more
>> when
>> all browser
>> connections are
>> closed (to
>> be sure I just close the
>> browser).
>>
>> The following stack trace is
>> now
>> printed
>> into my
>> log file (from
>> atmosphere):
>>
>>
>>
>>
>> [#|2010-09-17T11:06:56.883+0200|WARNING|oracle-
>> glassfish3.0.1|Atmosphere|_ThreadID=32;_ThreadName=Thread-1;|
>> Serializer
>> exception
>>
>> org.apache.catalina.connector.ClientAbortException:
>> java.io.IOException:
>> An established connection was
>> aborted by the
>> software in your
>> host machine
>> at
>>
>>
>> That means the connection got
>> dropped
>> by the
>> browser
>> when the server
>> was trying to writes some bytes. So
>> the exception
>> logged is correct.
>> Now the high CPU isn't. To me it
>> clearly look
>> like a
>> bug within the JDK.
>>
>>
>>
>>
>>
>>
>> org
>> .apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:
>> 382)
>> at
>>
>>
>>
>>
>> org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:
>> 351)
>> at
>>
>>
>>
>>
>> org
>> .apache
>> .catalina
>> .connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:176)
>> at
>>
>>
>>
>>
>> com
>> .greencat
>> .gwt
>> .comet.server.impl.CountOutputStream.flush(CountOutputStream.java:64)
>> at
>>
>>
>>
>>
>> com
>> .greencat
>> .gwt
>> .comet
>> .server
>> .deflate.DeflaterOutputStream.flush(DeflaterOutputStream.java:101)
>> at
>>
>>
>> sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:278)
>> at
>>
>> sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:
>> 122)
>> at
>>
>>
>>
>> java.io.OutputStreamWriter.flush(OutputStreamWriter.java:
>> 212)
>> at
>>
>>
>>
>>
>> com
>> .greencat
>> .gwt
>> .comet
>> .server.impl.GwtResponseWriterImpl.flush(GwtResponseWriterImpl.java:
>> 243)
>> at
>>
>>
>>
>>
>> com
>> .greencat
>> .gwt
>> .comet
>> .server.impl.GwtResponseWriterImpl.write(GwtResponseWriterImpl.java:
>> 207)
>> at
>>
>>
>>
>>
>> com
>> .greencat
>> .gwt
>> .comet
>> .server
>> .impl
>> .ManagedStreamResponseWriter.write(ManagedStreamResponseWriter.java:
>> 75)
>> at
>>
>>
>>
>>
>> com
>> .greencat
>> .gwt
>> .comet
>> .server.impl.GwtResponseWriterImpl.write(GwtResponseWriterImpl.java:
>> 183)
>> at
>>
>>
>>
>>
>> com.greencat.gwt.comet.server.impl.GwtAtmosphereResourceImpl
>> $2.write(GwtAtmosphereResourceImpl.java:200)
>> at
>>
>>
>>
>>
>> org
>> .atmosphere
>> .handler
>> .AbstractReflectorAtmosphereHandler
>> .onStateChange(AbstractReflectorAtmosphereHandler.java:82)
>> at
>>
>>
>>
>>
>> org
>> .atmosphere
>> .cpr.DefaultBroadcaster.broadcast(DefaultBroadcaster.java:345)
>> at
>>
>>
>>
>>
>> org.atmosphere.cpr.DefaultBroadcaster.push(DefaultBroadcaster.java:
>> 319)
>> at
>>
>>
>>
>>
>> org.atmosphere.cpr.DefaultBroadcaster.push(DefaultBroadcaster.java:
>> 280)
>> at
>>
>>
>>
>> org.atmosphere.cpr.DefaultBroadcaster
>> $1.run(DefaultBroadcaster.java:229)
>> at
>>
>>
>>
>> java.util.concurrent.Executors
>> $RunnableAdapter.call(Executors.java:441)
>> at
>>
>>
>>
>> java.util.concurrent.FutureTask
>> $Sync.innerRun(FutureTask.java:303)
>> at
>>
>>
>> java.util.concurrent.FutureTask.run(FutureTask.java:138)
>> at
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.runTask(ThreadPoolExecutor.java:886)
>> at
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.run(ThreadPoolExecutor.java:908)
>> at
>> java.lang.Thread.run(Thread.java:619)
>> Caused by:
>> java.io.IOException: An
>> established
>> connection was
>> aborted by
>> the software in your host
>> machine
>> at
>> sun.nio.ch.SocketDispatcher.write0(Native
>> Method)
>> at
>>
>>
>> sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:33)
>> at
>>
>>
>> sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:104)
>> at
>> sun.nio.ch.IOUtil.write(IOUtil.java:75)
>> at
>>
>>
>>
>> sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:
>> 334)
>> at
>>
>>
>>
>>
>> com.sun.grizzly.util.OutputWriter.flushChannel(OutputWriter.java:106)
>> at
>>
>>
>>
>>
>> com.sun.grizzly.util.OutputWriter.flushChannel(OutputWriter.java:74)
>> at
>>
>>
>>
>>
>> com
>> .sun
>> .grizzly
>> .http
>> .SocketChannelOutputBuffer
>> .flushChannel(SocketChannelOutputBuffer.java:321)
>> at
>>
>>
>>
>>
>> com
>> .sun
>> .grizzly
>> .http
>> .SocketChannelOutputBuffer
>> .flushBuffer(SocketChannelOutputBuffer.java:392)
>> at
>>
>>
>>
>>
>> com
>> .sun
>> .grizzly
>> .http
>> .SocketChannelOutputBuffer.flush(SocketChannelOutputBuffer.java:370)
>> at
>>
>>
>>
>>
>> com.sun.grizzly.http.ProcessorTask.action(ProcessorTask.java:1174)
>> at
>>
>> com.sun.grizzly.tcp.Response.action(Response.java:
>> 266)
>> at
>>
>>
>>
>>
>> org
>> .apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:
>> 378)
>> ... 23 more
>> |#]
>>
>>
>>
>>
>> [#|2010-09-17T11:06:56.885+0200|FINE|oracle-glassfish3.0.1|
>> Atmosphere|
>> _ThreadID=32;_ThreadName=Thread-1;ClassName=null;MethodName=null;|
>> java.io.IOException:
>>
>> org.apache.catalina.connector.ClientAbortException:
>> java.io.IOException: An
>> established
>> connection
>> was aborted by the
>> software in your host machine
>> at
>>
>>
>>
>>
>> org
>> .atmosphere
>> .handler
>> .AbstractReflectorAtmosphereHandler
>> .onStateChange(AbstractReflectorAtmosphereHandler.java:85)
>> at
>>
>>
>>
>>
>> org
>> .atmosphere
>> .cpr.DefaultBroadcaster.broadcast(DefaultBroadcaster.java:345)
>> at
>>
>>
>>
>>
>> org.atmosphere.cpr.DefaultBroadcaster.push(DefaultBroadcaster.java:
>> 319)
>> at
>>
>>
>>
>>
>> org.atmosphere.cpr.DefaultBroadcaster.push(DefaultBroadcaster.java:
>> 280)
>> at
>>
>>
>>
>> org.atmosphere.cpr.DefaultBroadcaster
>> $1.run(DefaultBroadcaster.java:229)
>> at
>>
>>
>>
>> java.util.concurrent.Executors
>> $RunnableAdapter.call(Executors.java:441)
>> at
>>
>>
>>
>> java.util.concurrent.FutureTask
>> $Sync.innerRun(FutureTask.java:303)
>> at
>>
>>
>> java.util.concurrent.FutureTask.run(FutureTask.java:138)
>> at
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.runTask(ThreadPoolExecutor.java:886)
>> at
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.run(ThreadPoolExecutor.java:908)
>> at
>> java.lang.Thread.run(Thread.java:619)
>> Caused by:
>>
>> org.apache.catalina.connector.ClientAbortException:
>> java.io.IOException: An
>> established
>> connection
>> was aborted by the
>> software in your host machine
>> at
>>
>>
>>
>>
>> org
>> .apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:
>> 382)
>> at
>>
>>
>>
>>
>> org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:
>> 351)
>> at
>>
>>
>>
>>
>> org
>> .apache
>> .catalina
>> .connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:176)
>> at
>>
>>
>>
>>
>> com
>> .greencat
>> .gwt
>> .comet.server.impl.CountOutputStream.flush(CountOutputStream.java:64)
>> at
>>
>>
>>
>>
>> com
>> .greencat
>> .gwt
>> .comet
>> .server
>> .deflate.DeflaterOutputStream.flush(DeflaterOutputStream.java:101)
>> at
>>
>>
>> sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:278)
>> at
>>
>> sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:
>> 122)
>> at
>>
>>
>>
>> java.io.OutputStreamWriter.flush(OutputStreamWriter.java:
>> 212)
>> at
>>
>>
>>
>>
>> com
>> .greencat
>> .gwt
>> .comet
>> .server.impl.GwtResponseWriterImpl.flush(GwtResponseWriterImpl.java:
>> 243)
>> at
>>
>>
>>
>>
>> com
>> .greencat
>> .gwt
>> .comet
>> .server.impl.GwtResponseWriterImpl.write(GwtResponseWriterImpl.java:
>> 207)
>> at
>>
>>
>>
>>
>> com
>> .greencat
>> .gwt
>> .comet
>> .server
>> .impl
>> .ManagedStreamResponseWriter.write(ManagedStreamResponseWriter.java:
>> 75)
>> at
>>
>>
>>
>>
>> com
>> .greencat
>> .gwt
>> .comet
>> .server.impl.GwtResponseWriterImpl.write(GwtResponseWriterImpl.java:
>> 183)
>> at
>>
>>
>>
>>
>> com.greencat.gwt.comet.server.impl.GwtAtmosphereResourceImpl
>> $2.write(GwtAtmosphereResourceImpl.java:200)
>> at
>>
>>
>>
>>
>> org
>> .atmosphere
>> .handler
>> .AbstractReflectorAtmosphereHandler
>> .onStateChange(AbstractReflectorAtmosphereHandler.java:82)
>> ... 10 more
>> Caused by:
>> java.io.IOException: An
>> established
>> connection was
>> aborted by
>> the software in your host
>> machine
>> at
>> sun.nio.ch.SocketDispatcher.write0(Native
>> Method)
>> at
>>
>>
>> sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:33)
>> at
>>
>>
>> sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:104)
>> at
>> sun.nio.ch.IOUtil.write(IOUtil.java:75)
>> at
>>
>>
>>
>> sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:
>> 334)
>> at
>>
>>
>>
>>
>> com.sun.grizzly.util.OutputWriter.flushChannel(OutputWriter.java:106)
>> at
>>
>>
>>
>>
>> com.sun.grizzly.util.OutputWriter.flushChannel(OutputWriter.java:74)
>> at
>>
>>
>>
>>
>> com
>> .sun
>> .grizzly
>> .http
>> .SocketChannelOutputBuffer
>> .flushChannel(SocketChannelOutputBuffer.java:321)
>> at
>>
>>
>>
>>
>> com
>> .sun
>> .grizzly
>> .http
>> .SocketChannelOutputBuffer
>> .flushBuffer(SocketChannelOutputBuffer.java:392)
>> at
>>
>>
>>
>>
>> com
>> .sun
>> .grizzly
>> .http
>> .SocketChannelOutputBuffer.flush(SocketChannelOutputBuffer.java:370)
>> at
>>
>>
>>
>>
>> com.sun.grizzly.http.ProcessorTask.action(ProcessorTask.java:1174)
>> at
>>
>> com.sun.grizzly.tcp.Response.action(Response.java:
>> 266)
>> at
>>
>>
>>
>>
>> org
>> .apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:
>> 378)
>> ... 23 more
>> |#]
>>
>> Based on jstack it seems some
>> threads are
>> using
>> the CPU time
>> with this
>> stack trace
>> "Thread-38" daemon prio=10 tid=0x0000000038e29800 nid=0x1b3c
>> runnable
>> [0x000000003be3f000]
>> java.lang.Thread.State:
>> RUNNABLE
>> at
>>
>> sun.nio.ch.WindowsSelectorImpl
>> $SubSelector.poll0(Native
>> Method)
>> at
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl
>> $SubSelector.poll(WindowsSelectorImpl.java:273)
>> at
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl$SubSelector.access
>> $400(WindowsSelectorImpl.java:255)
>> at
>>
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:136)
>> at
>>
>>
>>
>> sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:
>> 69)
>> - locked
>> <0x0000000017ceef40> (a
>> sun.nio.ch.Util$1)
>> - locked
>> <0x0000000017ceef28> (a
>>
>> java.util.Collections$UnmodifiableSet)
>> - locked
>> <0x0000000017ceeb80> (a
>> sun.nio.ch.WindowsSelectorImpl)
>> at
>>
>> sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
>> at
>>
>>
>>
>>
>> com.sun.grizzly.TCPSelectorHandler.select(TCPSelectorHandler.java:
>> 513)
>> at
>>
>>
>>
>>
>> com
>> .sun
>> .grizzly.SelectorHandlerRunner.doSelect(SelectorHandlerRunner.java:
>> 185)
>> at
>>
>>
>>
>>
>> com
>> .sun.grizzly.SelectorHandlerRunner.run(SelectorHandlerRunner.java:
>> 130)
>> at
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.runTask(ThreadPoolExecutor.java:886)
>> at
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.run(ThreadPoolExecutor.java:908)
>> at
>> java.lang.Thread.run(Thread.java:619
>>
>> "Thread-23" daemon prio=10 tid=0x0000000038e2f000
>> nid=0x108 runnable
>> [0x000000003d91f000]
>> java.lang.Thread.State:
>> RUNNABLE
>> at
>>
>> sun.nio.ch.WindowsSelectorImpl
>> $SubSelector.poll0(Native
>> Method)
>> at
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl
>> $SubSelector.poll(WindowsSelectorImpl.java:273)
>> at
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl$SubSelector.access
>> $400(WindowsSelectorImpl.java:255)
>> at
>>
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:136)
>> at
>>
>>
>>
>> sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:
>> 69)
>> - locked
>> <0x0000000016ba8bc8> (a
>> sun.nio.ch.Util$1)
>> - locked
>> <0x0000000016ba8bb0> (a
>>
>> java.util.Collections$UnmodifiableSet)
>> - locked
>> <0x0000000016ba87a8> (a
>> sun.nio.ch.WindowsSelectorImpl)
>> at
>>
>> sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
>> at
>>
>>
>>
>>
>> com.sun.grizzly.TCPSelectorHandler.select(TCPSelectorHandler.java:
>> 513)
>> at
>>
>>
>>
>>
>> com
>> .sun
>> .grizzly.SelectorHandlerRunner.doSelect(SelectorHandlerRunner.java:
>> 185)
>> at
>>
>>
>>
>>
>> com
>> .sun.grizzly.SelectorHandlerRunner.run(SelectorHandlerRunner.java:
>> 130)
>> at
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.runTask(ThreadPoolExecutor.java:886)
>> at
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.run(ThreadPoolExecutor.java:908)
>> at
>> java.lang.Thread.run(Thread.java:619
>>
>> When I suspend threads using
>> the
>> NetBeans
>> debugger my CPU load
>> drops.
>>
>>
>> I'm cc-ing Alexey (the Grizzly
>> lead)
>> as we
>> may know
>> if there is an
>> issue with the JDK on win32. It
>> looks
>> like the
>> Selector is no longer
>> blocking.
>>
>> Can you cut & paste the java -
>> version
>> output?
>>
>> Thanks!
>>
>> -- Jeanfrancois
>>
>>
>>
>>
>>
>> Regards,
>> Chris
>>
>>
>>
>>
>> On Fri, Sep 17, 2010 at 9:33
>> AM,
>> Chris
>> Wesdorp
>> <chriswesdorp_at_gmail.com <mailto:chriswesdorp_at_gmail.com>
>> <mailto:chriswesdorp_at_gmail.com
>> <mailto:chriswesdorp_at_gmail.com>>
>> <mailto:chriswesdorp_at_gmail.com <mailto:chriswesdorp_at_gmail.com>
>> <mailto:chriswesdorp_at_gmail.com
>> <mailto:chriswesdorp_at_gmail.com>>>
>> <mailto:chriswesdorp_at_gmail.com <mailto:chriswesdorp_at_gmail.com>
>> <mailto:chriswesdorp_at_gmail.com
>> <mailto:chriswesdorp_at_gmail.com>>
>> <mailto:chriswesdorp_at_gmail.com <mailto:chriswesdorp_at_gmail.com>
>> <mailto:chriswesdorp_at_gmail.com
>> <mailto:chriswesdorp_at_gmail.com>>>>
>> <mailto:chriswesdorp_at_gmail.com <mailto:chriswesdorp_at_gmail.com>
>> <mailto:chriswesdorp_at_gmail.com
>> <mailto:chriswesdorp_at_gmail.com>>
>> <mailto:chriswesdorp_at_gmail.com <mailto:chriswesdorp_at_gmail.com>
>> <mailto:chriswesdorp_at_gmail.com
>> <mailto:chriswesdorp_at_gmail.com>>>
>> <mailto:chriswesdorp_at_gmail.com <mailto:chriswesdorp_at_gmail.com>
>> <mailto:chriswesdorp_at_gmail.com
>> <mailto:chriswesdorp_at_gmail.com>>
>> <mailto:chriswesdorp_at_gmail.com <mailto:chriswesdorp_at_gmail.com>
>> <mailto:chriswesdorp_at_gmail.com
>> <mailto:chriswesdorp_at_gmail.com>>>>>>
>> wrote:
>>
>> Hello Jeanfrancois,
>>
>> thanks for the quick
>> response.
>> Unfortunately
>> I experience
>> the same
>> behavior as before. I also
>> don't see the
>> warning from the
>> handler
>> printed into my log files.
>>
>> Regards,
>> Chris
>>
>>
>>
>>
>> On Fri, Sep 17, 2010 at
>> 5:02
>> AM, jfarcand
>> <jfarcand.oss_at_gmail.com <mailto:jfarcand.oss_at_gmail.com>
>> <mailto:jfarcand.oss_at_gmail.com
>> <mailto:jfarcand.oss_at_gmail.com>>
>> <mailto:jfarcand.oss_at_gmail.com <mailto:jfarcand.oss_at_gmail.com>
>> <mailto:jfarcand.oss_at_gmail.com
>> <mailto:jfarcand.oss_at_gmail.com>>>
>> <mailto:jfarcand.oss_at_gmail.com <mailto:jfarcand.oss_at_gmail.com>
>> <mailto:jfarcand.oss_at_gmail.com
>> <mailto:jfarcand.oss_at_gmail.com>>
>> <mailto:jfarcand.oss_at_gmail.com <mailto:jfarcand.oss_at_gmail.com>
>> <mailto:jfarcand.oss_at_gmail.com
>> <mailto:jfarcand.oss_at_gmail.com>>>>
>> <mailto:jfarcand.oss_at_gmail.com <mailto:jfarcand.oss_at_gmail.com>
>> <mailto:jfarcand.oss_at_gmail.com
>> <mailto:jfarcand.oss_at_gmail.com>>
>> <mailto:jfarcand.oss_at_gmail.com <mailto:jfarcand.oss_at_gmail.com>
>> <mailto:jfarcand.oss_at_gmail.com
>> <mailto:jfarcand.oss_at_gmail.com>>>
>> <mailto:jfarcand.oss_at_gmail.com <mailto:jfarcand.oss_at_gmail.com>
>> <mailto:jfarcand.oss_at_gmail.com
>> <mailto:jfarcand.oss_at_gmail.com>>
>> <mailto:jfarcand.oss_at_gmail.com <mailto:jfarcand.oss_at_gmail.com>
>> <mailto:jfarcand.oss_at_gmail.com
>> <mailto:jfarcand.oss_at_gmail.com>>>>>>
>> wrote:
>>
>> Salut,
>>
>> Quick update:
>>
>> http://github.com/Atmosphere/atmosphere/commit/dabe9c17116471ab529780af65c1cd9022f8ef13
>>
>> looking at the stack
>> trace I saw
>> that a
>> Serializer was
>> used and
>> if a IO exception
>> occurred the
>> exception
>> was swallowed
>> and not
>> propagated. Just
>> download
>> the latest
>> version of the
>> atmosphere-runtime
>> and let me
>> know how it
>> goes.
>>
>>
>>
>> http://oss.sonatype.org/content/repositories/snapshots/org/atmosphere/atmosphere-runtime/0.7-SNAPSHOT/
>>
>> A+
>>
>> -- Jeanfrancois
>>
>>
>>
>> On 10-09-16 8:52 AM,
>> Chris
>> Wesdorp wrote:
>>
>> Thanks for the
>> response, I
>> did some
>> more testing
>> with the
>> application
>> attached (more
>> about this
>> later on)
>> and got to
>> reproduce the
>> problem. I
>> don't know for sure
>> where the
>> problem is,
>> atmosphere, grizzly or
>> Atmosphere GWT
>> Comet
>> which we
>> use in
>> the project. We
>> made
>> some changes
>> to
>> atmosphere-gwt-comet, you
>> need the
>> 0.2-SNAPSHOT
>> in your maven
>> repository. This
>> seems to
>> resolve the
>> problems in
>> previous
>> emails with
>> exceptions thrown
>> around.
>>
>> After deploying an
>> application in
>> Glassfish after
>> some time
>> the CPU load
>> stays actively on
>> 50% (my
>> machine, I
>> also encountered
>> higher/lower
>> loads). In the
>> period
>> between
>> deployment and this
>> high load
>> a number of
>> comet connections
>> are
>> created and
>> closed, sometimes with
>> little time
>> between starting
>> and
>> closing a
>> connection. When I
>> deactivate
>> the http
>> listener the load
>> is
>> back to
>> zero,
>> but after
>> starting/stopping a
>> lot of
>> connection is stays
>> up again.
>>
>> In some testing I
>> discovered a
>> situation where after a
>> broadcast data
>> was written to an
>> already closed
>> stream, this
>> happened when
>> a reference
>> to a Broadcaster
>> was
>> retrieved (using
>>
>>
>> BroadcasterFactory.getDefault().lookup)
>> and after
>> this, but
>> before or
>> during the
>> broadcast(), the
>> number of
>> connections
>> changed.
>> But then
>> again, only when a
>> high number of
>> connections is
>> created and
>> closed.
>>
>> The following stack
>> trace is
>> printed
>> from the GWT Comet:
>>
>>
>>
>>
>> [#|2010-09-16T13:07:34.176+0200|FINE|oracle-glassfish3.0.1|
>> com.greencat.gwt.comet.server.impl.GwtAtmosphereResourceImpl|
>> _ThreadID
>> =
>> 35
>> ;_ThreadName
>> =
>> Thread
>> -1
>> ;ClassName
>> =com.greencat.gwt.comet.server.impl.GwtAtmosphereResourceImpl
>> $2;MethodName=write;|broadcast
>> failed, connection
>> terminated
>>
>> java.io.IOException:
>> CometServletResponse terminated
>> at
>>
>>
>>
>>
>>
>> com
>> .greencat
>> .gwt
>> .comet
>> .server.impl.GwtResponseWriterImpl.write(GwtResponseWriterImpl.java:
>> 199)
>> at
>>
>>
>>
>>
>>
>> com
>> .greencat
>> .gwt
>> .comet
>> .server
>> .impl
>> .ManagedStreamResponseWriter.write(ManagedStreamResponseWriter.java:
>> 75)
>> at
>>
>>
>>
>>
>>
>> com
>> .greencat
>> .gwt
>> .comet
>> .server.impl.GwtResponseWriterImpl.write(GwtResponseWriterImpl.java:
>> 183)
>> at
>>
>>
>>
>>
>>
>> com.greencat.gwt.comet.server.impl.GwtAtmosphereResourceImpl
>> $2.write(GwtAtmosphereResourceImpl.java:200)
>> at
>>
>>
>>
>>
>>
>> org
>> .atmosphere
>> .handler
>> .AbstractReflectorAtmosphereHandler
>> .onStateChange(AbstractReflectorAtmosphereHandler.java:82)
>> at
>>
>>
>>
>>
>>
>> org
>> .atmosphere
>> .cpr.DefaultBroadcaster.broadcast(DefaultBroadcaster.java:327)
>> at
>>
>>
>>
>>
>>
>> org.atmosphere.cpr.DefaultBroadcaster.push(DefaultBroadcaster.java:
>> 301)
>> at
>>
>>
>>
>>
>>
>> org.atmosphere.cpr.DefaultBroadcaster.push(DefaultBroadcaster.java:
>> 263)
>> at
>>
>>
>>
>>
>> org.atmosphere.cpr.DefaultBroadcaster
>> $1.run(DefaultBroadcaster.java:212)
>> at
>>
>>
>>
>>
>> java.util.concurrent.Executors
>> $RunnableAdapter.call(Executors.java:441)
>> at
>>
>>
>>
>>
>> java.util.concurrent.FutureTask
>> $Sync.innerRun(FutureTask.java:303)
>> at
>>
>>
>>
>> java.util.concurrent.FutureTask.run(FutureTask.java:138)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.runTask(ThreadPoolExecutor.java:886)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.run(ThreadPoolExecutor.java:908)
>> at
>> java.lang.Thread.run(Thread.java:619)
>> |#]
>>
>>
>> This happens in
>> the write
>> method, the
>> first lines are
>> @Override
>> public
>> synchronized void
>> write(List<? extends
>> Serializable>
>> messages, boolean
>> flush) throws
>> IOException {
>> if
>> (terminated) {
>>
>> throw new
>> IOException("CometServletResponse
>> terminated");
>> }
>>
>> The writer knowns
>> the
>> connections is
>> terminated, but
>> atmosphere did not
>> skip the call. So
>> far
>> okay,
>> but when
>> this happens a few
>> times the load
>> stays high. It also
>> seems the
>> number
>> of atmosphere
>> resources
>> in the
>> broadcaster is
>> higher
>> than
>> the number
>> of active
>> connections
>> (based on
>> the fact that the
>>
>>
>> broadcaster.getAtmosphereResources().size() > 0 with
>> no active
>> browsers).
>>
>> The attached
>> application is
>> created
>> using GWT, GXT and
>> Atmosphere GWT
>> comet (using
>> atmosphere
>> 0.6.1). The
>> bean loading example
>> shows a grid
>> with data loaded
>> from
>> the server.
>> The button "Update
>> random"
>> calls the
>> server to update a
>> random entry in
>> the list, the
>> result is
>> returned via
>> comet.
>> The button "Start"
>> starts a comet
>> connection, the button
>> then becomes
>> "Stop" to stop a comet connection.
>> The button "Test"
>> does the
>> trick, it
>> starts and stops 25
>> connections in
>> a loop.
>>
>> When testing I
>> set my log
>> level to
>> FINEST for both
>> atmosphere and GWT
>> Comet. After
>> pressing
>> start one
>> connection is
>> created and
>> the logging
>> shows suspension
>> of 1
>> connection.
>> When I broadcast a
>> message
>> the message
>> is broadcasted and
>> the row in the
>> grid is updated or
>> added.
>> For the test
>> we must at least
>> connect once
>> using
>> the start button
>> (I think to
>> initialize the
>> broadcaster).
>>
>> Now for the test;
>> we
>> need a high
>> number of start
>> stopping
>> connections
>> and a lot of
>> broadcasts;
>> there is a
>> servlet which
>> can trigger a
>> broadcast which I
>> call with
>> curl in a
>> loop (curl in
>> cygwin
>> which allows
>> sleeps < 1s, i
>> think
>> i would work
>> with out sleeps as
>> well).
>> Just before
>> the broadcast the
>> number of
>> atmosphere resources is
>> printed.
>>
>> for i in $(seq 1
>> 100); do
>> sleep 0.2;
>> curl -N
>> 'http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >>
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >>>
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >>
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >>>>
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >>
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >>>
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >>
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >>>>>
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >>
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >>>
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >>
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >>>>
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >>
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >>>
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >>
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> <http://127.0.0.1:8080/listloading-1.0-SNAPSHOT/trigger?force=true&id=2
>> >>>>>>';
>> done
>>
>> So, I start
>> broadcasting and
>> at the
>> same time I
>> press the
>> test button in
>> the browser. In my
>> situation the
>> broadcasting slows
>> down and
>> after
>> around 10
>> broadcasts
>> errors
>> appear. I
>> stop the bash loop
>> using ctrl-c
>> but the CPU load
>> stays high.
>>
>> After stopping
>> curl,
>> i closed the
>> browser and call
>> curl one
>> more time,
>> this in an error in
>> the log file.
>>
>> So:
>> 1) start the
>> application
>> 2) start comet
>> 3) update a row
>> 4) stop comet
>> 5) start curl
>> broadcasting
>> 6) press test in
>> the
>> browser
>> 7) wait for an
>> exception
>> 8) stop
>> broadcasting
>> 9) close the
>> browser
>> 10) submit one more
>> broadcast
>>
>> With the CPU load
>> high;
>> looking at
>> the runnable threads
>> using jvisualvm
>> I see a number of
>> thread
>> active, the
>> runnable (and
>> atmosphere threads)
>> are printed below.
>>
>> I can include the
>> WAR
>> file,
>> but this
>> is 11MB so if
>> you need
>> it please
>> let me know, then I
>> will put
>> in on a
>> server somewhere.
>>
>> Regards,
>>
>> Chris
>>
>>
>>
>>
>> -----------------------------------
>> The thread dump
>>
>> -----------------------------------
>>
>> "Atmosphere-BroadcasterConfig-3" daemon prio=10
>>
>> tid=0x000000003936c800
>> nid=0x163c
>> waiting on
>> condition
>> [0x000000003d9cf000]
>>
>> java.lang.Thread.State:
>> WAITING
>> (parking)
>> at
>> sun.misc.Unsafe.park(Native
>> Method)
>> - parking to
>> wait for
>> <0x000000001a814860> (a
>>
>>
>>
>>
>> java.util.concurrent.locks.AbstractQueuedSynchronizer
>> $ConditionObject)
>> at
>>
>>
>>
>>
>>
>> java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
>> at
>>
>>
>>
>>
>> java.util.concurrent.locks.AbstractQueuedSynchronizer
>> $ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
>> at
>>
>>
>>
>>
>>
>> java
>> .util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:
>> 399)
>> at
>>
>>
>>
>>
>> org.atmosphere.cpr.DefaultBroadcaster
>> $1.run(DefaultBroadcaster.java:209)
>> at
>>
>>
>>
>>
>> java.util.concurrent.Executors
>> $RunnableAdapter.call(Executors.java:441)
>> at
>>
>>
>>
>>
>> java.util.concurrent.FutureTask
>> $Sync.innerRun(FutureTask.java:303)
>> at
>>
>>
>>
>> java.util.concurrent.FutureTask.run(FutureTask.java:138)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.runTask(ThreadPoolExecutor.java:886)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.run(ThreadPoolExecutor.java:908)
>> at
>> java.lang.Thread.run(Thread.java:619)
>>
>> Locked ownable
>> synchronizers:
>> -
>> <0x000000001ae56130> (a
>>
>>
>> java.util.concurrent.locks.ReentrantLock
>> $NonfairSync)
>>
>> "Atmosphere-BroadcasterConfig-0" daemon prio=10
>>
>> tid=0x0000000037aad800
>> nid=0x610 waiting
>> on
>> condition
>> [0x000000004071f000]
>>
>> java.lang.Thread.State:
>> WAITING
>> (parking)
>> at
>> sun.misc.Unsafe.park(Native
>> Method)
>> - parking to
>> wait for
>> <0x000000001a4fc210> (a
>>
>>
>>
>>
>> java.util.concurrent.locks.AbstractQueuedSynchronizer
>> $ConditionObject)
>> at
>>
>>
>>
>>
>>
>> java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
>> at
>>
>>
>>
>>
>> java.util.concurrent.locks.AbstractQueuedSynchronizer
>> $ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
>> at
>>
>>
>>
>>
>>
>> java
>> .util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:
>> 399)
>> at
>>
>>
>>
>>
>> org.atmosphere.cpr.DefaultBroadcaster
>> $1.run(DefaultBroadcaster.java:209)
>> at
>>
>>
>>
>>
>> java.util.concurrent.Executors
>> $RunnableAdapter.call(Executors.java:441)
>> at
>>
>>
>>
>>
>> java.util.concurrent.FutureTask
>> $Sync.innerRun(FutureTask.java:303)
>> at
>>
>>
>>
>> java.util.concurrent.FutureTask.run(FutureTask.java:138)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.runTask(ThreadPoolExecutor.java:886)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.run(ThreadPoolExecutor.java:908)
>> at
>> java.lang.Thread.run(Thread.java:619)
>>
>> Locked ownable
>> synchronizers:
>> -
>> <0x000000001a4fba88> (a
>>
>>
>> java.util.concurrent.locks.ReentrantLock
>> $NonfairSync)
>>
>> "Atmosphere-BroadcasterConfig-3" daemon prio=10
>>
>> tid=0x0000000037aa8800
>> nid=0x6e8 waiting
>> on
>> condition
>> [0x000000003dacf000]
>>
>> java.lang.Thread.State:
>> WAITING
>> (parking)
>> at
>> sun.misc.Unsafe.park(Native
>> Method)
>> - parking to
>> wait for
>> <0x000000001a3683a8> (a
>>
>>
>>
>>
>> java.util.concurrent.locks.AbstractQueuedSynchronizer
>> $ConditionObject)
>> at
>>
>>
>>
>>
>>
>> java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
>> at
>>
>>
>>
>>
>> java.util.concurrent.locks.AbstractQueuedSynchronizer
>> $ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
>> at
>>
>>
>>
>>
>>
>> java
>> .util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:
>> 399)
>> at
>>
>>
>>
>>
>> org.atmosphere.cpr.DefaultBroadcaster
>> $1.run(DefaultBroadcaster.java:209)
>> at
>>
>>
>>
>>
>> java.util.concurrent.Executors
>> $RunnableAdapter.call(Executors.java:441)
>> at
>>
>>
>>
>>
>> java.util.concurrent.FutureTask
>> $Sync.innerRun(FutureTask.java:303)
>> at
>>
>>
>>
>> java.util.concurrent.FutureTask.run(FutureTask.java:138)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.runTask(ThreadPoolExecutor.java:886)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.run(ThreadPoolExecutor.java:908)
>> at
>> java.lang.Thread.run(Thread.java:619)
>>
>> Locked ownable
>> synchronizers:
>> -
>> <0x000000001a40f2c0> (a
>>
>>
>> java.util.concurrent.locks.ReentrantLock
>> $NonfairSync)
>>
>> "Atmosphere-BroadcasterConfig-4" daemon prio=10
>>
>> tid=0x0000000039366000
>> nid=0x1088
>> waiting on
>> condition
>> [0x000000004021f000]
>>
>> java.lang.Thread.State:
>> WAITING
>> (parking)
>> at
>> sun.misc.Unsafe.park(Native
>> Method)
>> - parking to
>> wait for
>> <0x000000001858d2a8> (a
>>
>>
>>
>>
>> java.util.concurrent.locks.AbstractQueuedSynchronizer
>> $ConditionObject)
>> at
>>
>>
>>
>>
>>
>> java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
>> at
>>
>>
>>
>>
>> java.util.concurrent.locks.AbstractQueuedSynchronizer
>> $ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
>> at
>>
>>
>>
>>
>>
>> java
>> .util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:
>> 399)
>> at
>>
>>
>>
>>
>> org.atmosphere.cpr.DefaultBroadcaster
>> $1.run(DefaultBroadcaster.java:209)
>> at
>>
>>
>>
>>
>> java.util.concurrent.Executors
>> $RunnableAdapter.call(Executors.java:441)
>> at
>>
>>
>>
>>
>> java.util.concurrent.FutureTask
>> $Sync.innerRun(FutureTask.java:303)
>> at
>>
>>
>>
>> java.util.concurrent.FutureTask.run(FutureTask.java:138)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.runTask(ThreadPoolExecutor.java:886)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.run(ThreadPoolExecutor.java:908)
>> at
>> java.lang.Thread.run(Thread.java:619)
>>
>> Locked ownable
>> synchronizers:
>> -
>> <0x000000001a2eaa70> (a
>>
>>
>> java.util.concurrent.locks.ReentrantLock
>> $NonfairSync)
>>
>>
>> "Thread-38" daemon prio=10 tid=0x0000000037f8d000 nid=0xa1c
>> runnable
>>
>> [0x000000003c2ff000]
>>
>> java.lang.Thread.State:
>> RUNNABLE
>> at
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl
>> $SubSelector.poll0(Native
>> Method)
>> at
>>
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl
>> $SubSelector.poll(WindowsSelectorImpl.java:273)
>> at
>>
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl$SubSelector.access
>> $400(WindowsSelectorImpl.java:255)
>> at
>>
>>
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:136)
>> at
>>
>>
>>
>>
>> sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:
>> 69)
>> - locked
>> <0x0000000017b658a0> (a
>> sun.nio.ch.Util$1)
>> - locked
>> <0x0000000017b65888> (a
>>
>> java.util.Collections$UnmodifiableSet)
>> - locked
>> <0x0000000017b654e0> (a
>>
>> sun.nio.ch.WindowsSelectorImpl)
>> at
>>
>> sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
>> at
>>
>>
>>
>>
>>
>> com.sun.grizzly.TCPSelectorHandler.select(TCPSelectorHandler.java:
>> 513)
>> at
>>
>>
>>
>>
>>
>> com
>> .sun
>> .grizzly.SelectorHandlerRunner.doSelect(SelectorHandlerRunner.java:
>> 185)
>> at
>>
>>
>>
>>
>>
>> com
>> .sun.grizzly.SelectorHandlerRunner.run(SelectorHandlerRunner.java:
>> 130)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.runTask(ThreadPoolExecutor.java:886)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.run(ThreadPoolExecutor.java:908)
>> at
>> java.lang.Thread.run(Thread.java:619)
>>
>> Locked ownable
>> synchronizers:
>> -
>> <0x0000000017b63bc8> (a
>>
>>
>> java.util.concurrent.locks.ReentrantLock
>> $NonfairSync)
>>
>> "RMI TCP Connection(39)-172.16.7.13" daemon prio=6
>>
>> tid=0x0000000037aaa800 nid=0x15d0
>> runnable
>> [0x0000000041ecf000]
>>
>> java.lang.Thread.State:
>> RUNNABLE
>> at
>>
>> java.net.SocketInputStream.socketRead0(Native Method)
>> at
>>
>>
>>
>>
>> java.net.SocketInputStream.read(SocketInputStream.java:129)
>> at
>>
>>
>>
>>
>> java.io.BufferedInputStream.fill(BufferedInputStream.java:
>> 218)
>> at
>>
>>
>>
>>
>> java.io.BufferedInputStream.read(BufferedInputStream.java:
>> 237)
>> - locked
>> <0x000000001ba490a8> (a
>>
>> java.io.BufferedInputStream)
>> at
>>
>>
>>
>>
>> java.io.FilterInputStream.read(FilterInputStream.java:66)
>> at
>>
>>
>>
>>
>>
>> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:
>> 517)
>> at
>>
>>
>>
>>
>> sun.rmi.transport.tcp.TCPTransport
>> $ConnectionHandler.run0(TCPTransport.java:790)
>> at
>>
>>
>>
>>
>> sun.rmi.transport.tcp.TCPTransport
>> $ConnectionHandler.run(TCPTransport.java:649)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.runTask(ThreadPoolExecutor.java:886)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.run(ThreadPoolExecutor.java:908)
>> at
>> java.lang.Thread.run(Thread.java:619)
>>
>> Locked ownable
>> synchronizers:
>> -
>> <0x000000001ba39230> (a
>>
>>
>> java.util.concurrent.locks.ReentrantLock
>> $NonfairSync)
>>
>> "RMI TCP Accept-0" daemon prio=6 tid=0x000000003a026800
>> nid=0x171c
>> runnable
>> [0x00000000418cf000]
>>
>> java.lang.Thread.State:
>> RUNNABLE
>> at
>>
>> java.net.PlainSocketImpl.socketAccept(Native
>> Method)
>> at
>>
>>
>>
>>
>> java.net.PlainSocketImpl.accept(PlainSocketImpl.java:390)
>> - locked
>> <0x000000001ba0ba90> (a
>> java.net.SocksSocketImpl)
>> at
>>
>>
>> java.net.ServerSocket.implAccept(ServerSocket.java:
>> 453)
>> at
>>
>> java.net.ServerSocket.accept(ServerSocket.java:421)
>> at
>>
>>
>>
>>
>> sun.management.jmxremote.LocalRMIServerSocketFactory
>> $1.accept(LocalRMIServerSocketFactory.java:34)
>> at
>>
>>
>>
>>
>> sun.rmi.transport.tcp.TCPTransport
>> $AcceptLoop.executeAcceptLoop(TCPTransport.java:369)
>> at
>>
>>
>>
>>
>> sun.rmi.transport.tcp.TCPTransport
>> $AcceptLoop.run(TCPTransport.java:341)
>> at
>> java.lang.Thread.run(Thread.java:619)
>>
>> Locked ownable
>> synchronizers:
>> - None
>>
>> "Atmosphere-BroadcasterConfig-5" daemon prio=10
>>
>> tid=0x000000003a025800
>> nid=0x175c
>> waiting on
>> condition
>> [0x00000000416cf000]
>>
>> java.lang.Thread.State:
>> WAITING
>> (parking)
>> at
>> sun.misc.Unsafe.park(Native
>> Method)
>> - parking to
>> wait for
>> <0x000000001b24c0b0> (a
>>
>>
>>
>>
>> java.util.concurrent.locks.AbstractQueuedSynchronizer
>> $ConditionObject)
>> at
>>
>>
>>
>>
>>
>> java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
>> at
>>
>>
>>
>>
>> java.util.concurrent.locks.AbstractQueuedSynchronizer
>> $ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
>> at
>>
>>
>>
>>
>>
>> java
>> .util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:
>> 399)
>> at
>>
>>
>>
>>
>> org.atmosphere.cpr.DefaultBroadcaster
>> $1.run(DefaultBroadcaster.java:209)
>> at
>>
>>
>>
>>
>> java.util.concurrent.Executors
>> $RunnableAdapter.call(Executors.java:441)
>> at
>>
>>
>>
>>
>> java.util.concurrent.FutureTask
>> $Sync.innerRun(FutureTask.java:303)
>> at
>>
>>
>>
>> java.util.concurrent.FutureTask.run(FutureTask.java:138)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.runTask(ThreadPoolExecutor.java:886)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.run(ThreadPoolExecutor.java:908)
>> at
>> java.lang.Thread.run(Thread.java:619)
>>
>> Locked ownable
>> synchronizers:
>> -
>> <0x000000001b9c70e0> (a
>>
>>
>> java.util.concurrent.locks.ReentrantLock
>> $NonfairSync)
>>
>>
>> "Thread-35" daemon prio=10 tid=0x0000000037f8a000 nid=0x1010
>> waiting on
>> condition
>> [0x000000003bcef000]
>>
>> java.lang.Thread.State:
>> RUNNABLE
>> at
>>
>>
>>
>>
>> sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:
>> 236)
>> - locked
>> <0x000000001b2c0878> (a
>> java.lang.Object)
>> at
>>
>>
>>
>>
>> org.apache.catalina.connector.Request
>> $RequestAttachment.handleSelectedKey(Request.java:3963)
>> at
>>
>>
>>
>>
>>
>> com
>> .sun
>> .grizzly
>> .SelectorHandlerRunner.handleSelectedKey(SelectorHandlerRunner.java:
>> 274)
>> at
>>
>>
>>
>>
>>
>> com
>> .sun
>> .grizzly
>> .SelectorHandlerRunner
>> .handleSelectedKeys(SelectorHandlerRunner.java:258)
>> at
>>
>>
>>
>>
>>
>> com
>> .sun
>> .grizzly.SelectorHandlerRunner.doSelect(SelectorHandlerRunner.java:
>> 195)
>> at
>>
>>
>>
>>
>>
>> com
>> .sun.grizzly.SelectorHandlerRunner.run(SelectorHandlerRunner.java:
>> 130)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.runTask(ThreadPoolExecutor.java:886)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.run(ThreadPoolExecutor.java:908)
>> at
>> java.lang.Thread.run(Thread.java:619)
>>
>> Locked ownable
>> synchronizers:
>> -
>> <0x0000000017ae13e0> (a
>>
>>
>> java.util.concurrent.locks.ReentrantLock
>> $NonfairSync)
>>
>>
>>
>>
>> "Thread-32" daemon prio=10 tid=0x00000000398b5800 nid=0xa60
>> runnable
>>
>> [0x000000004124f000]
>>
>> java.lang.Thread.State:
>> RUNNABLE
>> at
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl
>> $SubSelector.poll0(Native
>> Method)
>> at
>>
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl
>> $SubSelector.poll(WindowsSelectorImpl.java:273)
>> at
>>
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl$SubSelector.access
>> $400(WindowsSelectorImpl.java:255)
>> at
>>
>>
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:136)
>> at
>>
>>
>>
>>
>> sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:
>> 69)
>> - locked
>> <0x0000000017a3e790> (a
>> sun.nio.ch.Util$1)
>> - locked
>> <0x0000000017a3e778> (a
>>
>> java.util.Collections$UnmodifiableSet)
>> - locked
>> <0x0000000017a3e3d0> (a
>>
>> sun.nio.ch.WindowsSelectorImpl)
>> at
>>
>> sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
>> at
>>
>>
>>
>>
>>
>> com.sun.grizzly.TCPSelectorHandler.select(TCPSelectorHandler.java:
>> 513)
>> at
>>
>>
>>
>>
>>
>> com
>> .sun
>> .grizzly.SelectorHandlerRunner.doSelect(SelectorHandlerRunner.java:
>> 185)
>> at
>>
>>
>>
>>
>>
>> com
>> .sun.grizzly.SelectorHandlerRunner.run(SelectorHandlerRunner.java:
>> 130)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.runTask(ThreadPoolExecutor.java:886)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.run(ThreadPoolExecutor.java:908)
>> at
>> java.lang.Thread.run(Thread.java:619)
>>
>> Locked ownable
>> synchronizers:
>> -
>> <0x0000000017a38420> (a
>>
>>
>> java.util.concurrent.locks.ReentrantLock
>> $NonfairSync)
>>
>>
>> "Thread-23" daemon prio=10 tid=0x0000000037f98000 nid=0xc20
>> runnable
>>
>> [0x000000004051f000]
>>
>> java.lang.Thread.State:
>> RUNNABLE
>> at
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl
>> $SubSelector.poll0(Native
>> Method)
>> at
>>
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl
>> $SubSelector.poll(WindowsSelectorImpl.java:273)
>> at
>>
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl$SubSelector.access
>> $400(WindowsSelectorImpl.java:255)
>> at
>>
>>
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:136)
>> at
>>
>>
>>
>>
>> sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:
>> 69)
>> - locked
>> <0x0000000016e0fb28> (a
>> sun.nio.ch.Util$1)
>> - locked
>> <0x0000000016e0fb10> (a
>>
>> java.util.Collections$UnmodifiableSet)
>> - locked
>> <0x0000000016e0f708> (a
>>
>> sun.nio.ch.WindowsSelectorImpl)
>> at
>>
>> sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
>> at
>>
>>
>>
>>
>>
>> com.sun.grizzly.TCPSelectorHandler.select(TCPSelectorHandler.java:
>> 513)
>> at
>>
>>
>>
>>
>>
>> com
>> .sun
>> .grizzly.SelectorHandlerRunner.doSelect(SelectorHandlerRunner.java:
>> 185)
>> at
>>
>>
>>
>>
>>
>> com
>> .sun.grizzly.SelectorHandlerRunner.run(SelectorHandlerRunner.java:
>> 130)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.runTask(ThreadPoolExecutor.java:886)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.run(ThreadPoolExecutor.java:908)
>> at
>> java.lang.Thread.run(Thread.java:619)
>>
>> Locked ownable
>> synchronizers:
>> -
>> <0x0000000016e1fe78> (a
>>
>>
>> java.util.concurrent.locks.ReentrantLock
>> $NonfairSync)
>>
>> "Thread-21" daemon prio=10 tid=0x0000000037f91800 nid=0xb50
>> runnable
>>
>> [0x000000003bfcf000]
>>
>> java.lang.Thread.State:
>> RUNNABLE
>> at
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl
>> $SubSelector.poll0(Native
>> Method)
>> at
>>
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl
>> $SubSelector.poll(WindowsSelectorImpl.java:273)
>> at
>>
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl$SubSelector.access
>> $400(WindowsSelectorImpl.java:255)
>> at
>>
>>
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:136)
>> at
>>
>>
>>
>>
>> sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:
>> 69)
>> - locked
>> <0x0000000016f0c850> (a
>> sun.nio.ch.Util$1)
>> - locked
>> <0x0000000016f0c838> (a
>>
>> java.util.Collections$UnmodifiableSet)
>> - locked
>> <0x0000000016f0c160> (a
>>
>> sun.nio.ch.WindowsSelectorImpl)
>> at
>>
>> sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
>> at
>>
>>
>>
>>
>>
>> com.sun.grizzly.TCPSelectorHandler.select(TCPSelectorHandler.java:
>> 513)
>> at
>>
>>
>>
>>
>>
>> com
>> .sun
>> .grizzly.SelectorHandlerRunner.doSelect(SelectorHandlerRunner.java:
>> 185)
>> at
>>
>>
>>
>>
>>
>> com
>> .sun.grizzly.SelectorHandlerRunner.run(SelectorHandlerRunner.java:
>> 130)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.runTask(ThreadPoolExecutor.java:886)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.run(ThreadPoolExecutor.java:908)
>> at
>> java.lang.Thread.run(Thread.java:619)
>>
>> Locked ownable
>> synchronizers:
>> -
>> <0x0000000016f0bb08> (a
>>
>>
>> java.util.concurrent.locks.ReentrantLock
>> $NonfairSync)
>>
>>
>> "Thread-15" daemon prio=10 tid=0x0000000037f8e800 nid=0xdd0
>> runnable
>>
>> [0x000000003d4cf000]
>>
>> java.lang.Thread.State:
>> RUNNABLE
>> at
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl
>> $SubSelector.poll0(Native
>> Method)
>> at
>>
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl
>> $SubSelector.poll(WindowsSelectorImpl.java:273)
>> at
>>
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl$SubSelector.access
>> $400(WindowsSelectorImpl.java:255)
>> at
>>
>>
>>
>>
>>
>> sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:136)
>> at
>>
>>
>>
>>
>> sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:
>> 69)
>> - locked
>> <0x00000000174bcfb8> (a
>> sun.nio.ch.Util$1)
>> - locked
>> <0x00000000174bcfa0> (a
>>
>> java.util.Collections$UnmodifiableSet)
>> - locked
>> <0x0000000016d9ba60> (a
>>
>> sun.nio.ch.WindowsSelectorImpl)
>> at
>>
>> sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
>> at
>>
>>
>>
>>
>>
>> com.sun.grizzly.TCPSelectorHandler.select(TCPSelectorHandler.java:
>> 513)
>> at
>>
>>
>>
>>
>>
>> com
>> .sun
>> .grizzly.SelectorHandlerRunner.doSelect(SelectorHandlerRunner.java:
>> 185)
>> at
>>
>>
>>
>>
>>
>> com
>> .sun.grizzly.SelectorHandlerRunner.run(SelectorHandlerRunner.java:
>> 130)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.runTask(ThreadPoolExecutor.java:886)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.run(ThreadPoolExecutor.java:908)
>> at
>> java.lang.Thread.run(Thread.java:619)
>>
>> Locked ownable
>> synchronizers:
>> -
>> <0x00000000170bce08> (a
>>
>>
>> java.util.concurrent.locks.ReentrantLock
>> $NonfairSync)
>>
>>
>>
>> -----------------------------------
>> Encountered stack
>> traces
>>
>> -----------------------------------
>>
>>
>>
>>
>> [#|2010-09-16T13:06:54.365+0200|FINE|oracle-glassfish3.0.1|
>> com.greencat.gwt.comet.server.impl.GwtAtmosphereResourceImpl|
>> _ThreadID
>> =
>> 34
>> ;_ThreadName
>> =
>> Thread
>> -1
>> ;ClassName
>> =com.greencat.gwt.comet.server.impl.GwtAtmosphereResourceImpl
>> $2;MethodName=write;|broadcast
>> failed, connection
>> terminated
>>
>>
>> org.apache.catalina.connector.ClientAbortException:
>>
>> java.io.IOException:
>> An established
>> connection was
>> aborted
>> by the software in
>> your host machine
>> at
>>
>>
>>
>>
>>
>> org
>> .apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:
>> 382)
>> at
>>
>>
>>
>>
>>
>> org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:
>> 351)
>> at
>>
>>
>>
>>
>>
>> org
>> .apache
>> .catalina
>> .connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:176)
>> at
>>
>>
>>
>>
>>
>> com
>> .greencat
>> .gwt
>> .comet.server.impl.CountOutputStream.flush(CountOutputStream.java:64)
>> at
>>
>>
>>
>>
>>
>> com
>> .greencat
>> .gwt
>> .comet
>> .server
>> .deflate.DeflaterOutputStream.flush(DeflaterOutputStream.java:101)
>> at
>>
>>
>>
>>
>> sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:278)
>> at
>>
>>
>> sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:
>> 122)
>> at
>>
>>
>>
>>
>> java.io.OutputStreamWriter.flush(OutputStreamWriter.java:
>> 212)
>> at
>>
>>
>>
>>
>>
>> com
>> .greencat
>> .gwt
>> .comet
>> .server.impl.GwtResponseWriterImpl.flush(GwtResponseWriterImpl.java:
>> 243)
>> at
>>
>>
>>
>>
>>
>> com
>> .greencat
>> .gwt
>> .comet
>> .server.impl.GwtResponseWriterImpl.write(GwtResponseWriterImpl.java:
>> 207)
>> at
>>
>>
>>
>>
>>
>> com
>> .greencat
>> .gwt
>> .comet
>> .server
>> .impl
>> .ManagedStreamResponseWriter.write(ManagedStreamResponseWriter.java:
>> 75)
>> at
>>
>>
>>
>>
>>
>> com
>> .greencat
>> .gwt
>> .comet
>> .server.impl.GwtResponseWriterImpl.write(GwtResponseWriterImpl.java:
>> 183)
>> at
>>
>>
>>
>>
>>
>> com.greencat.gwt.comet.server.impl.GwtAtmosphereResourceImpl
>> $2.write(GwtAtmosphereResourceImpl.java:200)
>> at
>>
>>
>>
>>
>>
>> org
>> .atmosphere
>> .handler
>> .AbstractReflectorAtmosphereHandler
>> .onStateChange(AbstractReflectorAtmosphereHandler.java:82)
>> at
>>
>>
>>
>>
>>
>> org
>> .atmosphere
>> .cpr.DefaultBroadcaster.broadcast(DefaultBroadcaster.java:327)
>> at
>>
>>
>>
>>
>>
>> org.atmosphere.cpr.DefaultBroadcaster.push(DefaultBroadcaster.java:
>> 301)
>> at
>>
>>
>>
>>
>>
>> org.atmosphere.cpr.DefaultBroadcaster.push(DefaultBroadcaster.java:
>> 263)
>> at
>>
>>
>>
>>
>> org.atmosphere.cpr.DefaultBroadcaster
>> $1.run(DefaultBroadcaster.java:212)
>> at
>>
>>
>>
>>
>> java.util.concurrent.Executors
>> $RunnableAdapter.call(Executors.java:441)
>> at
>>
>>
>>
>>
>> java.util.concurrent.FutureTask
>> $Sync.innerRun(FutureTask.java:303)
>> at
>>
>>
>>
>> java.util.concurrent.FutureTask.run(FutureTask.java:138)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.runTask(ThreadPoolExecutor.java:886)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.run(ThreadPoolExecutor.java:908)
>> at
>> java.lang.Thread.run(Thread.java:619)
>> Caused by:
>> java.io.IOException: An
>> established
>> connection
>> was aborted by
>> the software in
>> your
>> host machine
>> at
>>
>> sun.nio.ch.SocketDispatcher.write0(Native
>> Method)
>> at
>>
>>
>>
>>
>> sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:33)
>> at
>>
>>
>>
>> sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:104)
>> at
>> sun.nio.ch.IOUtil.write(IOUtil.java:
>> 75)
>> at
>>
>>
>>
>>
>> sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:
>> 334)
>> at
>>
>>
>>
>>
>>
>> com.sun.grizzly.util.OutputWriter.flushChannel(OutputWriter.java:106)
>> at
>>
>>
>>
>>
>>
>> com.sun.grizzly.util.OutputWriter.flushChannel(OutputWriter.java:74)
>> at
>>
>>
>>
>>
>>
>> com
>> .sun
>> .grizzly
>> .http
>> .SocketChannelOutputBuffer
>> .flushChannel(SocketChannelOutputBuffer.java:321)
>> at
>>
>>
>>
>>
>>
>> com
>> .sun
>> .grizzly
>> .http
>> .SocketChannelOutputBuffer
>> .flushBuffer(SocketChannelOutputBuffer.java:392)
>> at
>>
>>
>>
>>
>>
>> com
>> .sun
>> .grizzly
>> .http
>> .SocketChannelOutputBuffer.flush(SocketChannelOutputBuffer.java:370)
>> at
>>
>>
>>
>>
>>
>> com.sun.grizzly.http.ProcessorTask.action(ProcessorTask.java:1174)
>> at
>>
>>
>> com.sun.grizzly.tcp.Response.action(Response.java:
>> 266)
>> at
>>
>>
>>
>>
>>
>> org
>> .apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:
>> 378)
>> ... 23 more
>> |#]
>>
>>
>>
>>
>>
>> [#|2010-09-16T13:06:59.949+0200|INFO|oracle-glassfish3.0.1|
>> javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|
>> _ThreadID=31;_ThreadName=Thread-1;|Number
>> of resources in
>> broadcaster: 1|#]
>>
>>
>>
>>
>>
>> [#|2010-09-16T13:06:59.950+0200|FINE|oracle-glassfish3.0.1|
>> com.greencat.gwt.comet.server.impl.GwtAtmosphereResourceImpl|
>> _ThreadID
>> =
>> 35
>> ;_ThreadName
>> =
>> Thread
>> -1
>> ;ClassName
>> =com.greencat.gwt.comet.server.impl.GwtAtmosphereResourceImpl
>> $2;MethodName=write;|broadcast
>> failed, connection
>> terminated
>>
>> java.io.IOException:
>> CometServletResponse terminated
>> at
>>
>>
>>
>>
>>
>> com
>> .greencat
>> .gwt
>> .comet
>> .server.impl.GwtResponseWriterImpl.write(GwtResponseWriterImpl.java:
>> 199)
>> at
>>
>>
>>
>>
>>
>> com
>> .greencat
>> .gwt
>> .comet
>> .server
>> .impl
>> .ManagedStreamResponseWriter.write(ManagedStreamResponseWriter.java:
>> 75)
>> at
>>
>>
>>
>>
>>
>> com
>> .greencat
>> .gwt
>> .comet
>> .server.impl.GwtResponseWriterImpl.write(GwtResponseWriterImpl.java:
>> 183)
>> at
>>
>>
>>
>>
>>
>> com.greencat.gwt.comet.server.impl.GwtAtmosphereResourceImpl
>> $2.write(GwtAtmosphereResourceImpl.java:200)
>> at
>>
>>
>>
>>
>>
>> org
>> .atmosphere
>> .handler
>> .AbstractReflectorAtmosphereHandler
>> .onStateChange(AbstractReflectorAtmosphereHandler.java:82)
>> at
>>
>>
>>
>>
>>
>> org
>> .atmosphere
>> .cpr.DefaultBroadcaster.broadcast(DefaultBroadcaster.java:327)
>> at
>>
>>
>>
>>
>>
>> org.atmosphere.cpr.DefaultBroadcaster.push(DefaultBroadcaster.java:
>> 301)
>> at
>>
>>
>>
>>
>>
>> org.atmosphere.cpr.DefaultBroadcaster.push(DefaultBroadcaster.java:
>> 263)
>> at
>>
>>
>>
>>
>> org.atmosphere.cpr.DefaultBroadcaster
>> $1.run(DefaultBroadcaster.java:212)
>> at
>>
>>
>>
>>
>> java.util.concurrent.Executors
>> $RunnableAdapter.call(Executors.java:441)
>> at
>>
>>
>>
>>
>> java.util.concurrent.FutureTask
>> $Sync.innerRun(FutureTask.java:303)
>> at
>>
>>
>>
>> java.util.concurrent.FutureTask.run(FutureTask.java:138)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.runTask(ThreadPoolExecutor.java:886)
>> at
>>
>>
>>
>>
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.run(ThreadPoolExecutor.java:908)
>> at
>> java.lang.Thread.run(Thread.java:619)
>> |#]
>>
>>
>>
>> << removed previous mails >>
>>
>>
>>
>>
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-
>> mail:
>> users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>>>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>>>>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>>>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>>>>>
>>
>> For additional
>> commands, e-mail:
>> users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>>>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>>>>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>>>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>>>>>
>>
>>
>>
>>
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail:
>> users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>>>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>>>>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>>>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>>>>>
>>
>> For additional
>> commands,
>> e-mail:
>> users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>>>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>>>>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>>>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>>>>>
>>
>>
>>
>>
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail:
>> users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>>>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>>>>
>> For additional commands, e-mail:
>> users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>>>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>>>>
>>
>>
>>
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail:
>> users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>>>
>> For additional commands, e-mail:
>> users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>>>
>>
>>
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail:
>> users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>>>
>> For additional commands, e-mail:
>> users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>>>
>>
>>
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail:
>> users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>>
>> For additional commands, e-mail:
>> users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>
>> <mailto:users-help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>>
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe_at_atmosphere.dev.java.net
>> <mailto:users-unsubscribe_at_atmosphere.dev.java.net>
>> For additional commands, e-mail: users-
>> help_at_atmosphere.dev.java.net
>> <mailto:users-help_at_atmosphere.dev.java.net>
>>
>>