On 17/10/2013 11:53, Mark Thomas wrote:
> On 17/10/2013 11:50, Konstantin Preißer wrote:
>> Hi Mark,
>>
>>> -----Original Message-----
>>> From: Mark Thomas [mailto:ma...@apache.org]
>>> Sent: Thursday, October 17, 2013 12:49 PM
>>> To: Tomcat Developers List
>>> Subject: Re: svn commit: r1533035 -
>>> /tomcat/tc7.0.x/trunk/webapps/examples/WEB-
>>> INF/classes/websocket/drawboard/Room.java
>>>
>>> On 17/10/2013 11:39, Konstantin Kolinko wrote:
>>>> 2013/10/17  <ma...@apache.org>:
>>>>> Author: markt
>>>>> Date: Thu Oct 17 10:32:21 2013
>>>>> New Revision: 1533035
>>>>>
>>>>> URL: http://svn.apache.org/r1533035
>>>>> Log:
>>>>> Avoid hangs on shutdown
>>>>>
>>>>> Modified:
>>>>>     tomcat/tc7.0.x/trunk/webapps/examples/WEB-
>>> INF/classes/websocket/drawboard/Room.java
>>>>>
>>>>
>>>> I expect this to
>>>> a) fail when running with a security manager
>>>> b) cause a memory leak when examples app is reloaded, as you will get
>>>> a new instance of ShutdownDetection class in webapp's classloader and
>>>> new instance of shutdown hook.
>>>
>>> I'm open to better suggestions. Another option I considered was just
>>> removing the call to roomGraphics.dispose(); and letting GC take care of
>>> things.
>>>
>>> Alternatively, we could provide some form of global flag.
>>>
>>> I think I prefer the global flag that indicates that a shutdown is in
>>> process. I can think of several other places where such a flag would
>>> have been useful and we can expose it through a custom servlet context
>>> attribute such as "org.apache.tomcat.JVM_SHUTDOWN_IN_PROGRESS".
>>>
>>> I'll start looking at the global flag option. Meanwhile, any suggestions
>>> on how to improve the fix or an alternative fix welcome.
>>
>> Can you give me some insight of why Grahpics2D.dispose() may cause a hang on 
>> shutdown? I have never seen .dispose() causing a hang, at least not on 
>> Windows.
>> If it hangs, might this be a result of different threads using the Grahpics 
>> object?
> 
> Clean 7.0.x build
> catalina.bat start
> CTRL-C in the Tomcat Window
> 
> The result is an exception written to stderr (I assume err rather than
> out) and Tomcat fails to stop. The exception is triggered by AWT trying
> to register a shutdown hook after the shutdown process has started.

Ah. More info. It only occurs with Java 6.

We could just classify this as a JVM bug and more on. That said, I think
some changes to the init code could probably avoid this in Java 6 as
well. I'll take a quick look.

Mark


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

Reply via email to