<Swing Dev> Fwd: Bug in ShellFolder.

Pavel Porvatov Pavel.Porvatov at Sun.COM
Fri Nov 20 07:55:36 UTC 2009


Hi Paulo,
> So it is a won't fix then?
Who say that? There is a bug. It has not the highest priority and it's 
the reason why it still not fixed.

Regards, Pavel.
> Seems really short-sighted, since probably forever people will want to 
> serialize things when shutting down the application.
> Anyway the only operation i found that uses the COM thread is the 
> shellfolder2 class. I'm sure at least this very common case can be 
> worked around i its serialization routine.
>
> On Thu, Nov 19, 2009 at 11:23 AM, Pavel Porvatov 
> <Pavel.Porvatov at sun.com <mailto:Pavel.Porvatov at sun.com>> wrote:
>
>     Hi Paulo,
>
>     The problem is described in the bug 6612928:
>     Since 6u2 b01 we use the concurrent package to marshall COM calls
>     to the dedicated thread. The investigation shows that this
>     exception is thrown with a scenario like this:
>
>     1) user exits the application
>     2) the JVM starts invoking shutdown hooks
>     3) the COM thread's shutdown hook initiates shutdown of
>     ThreadPoolExecutor (used for marshalling COM calls to the
>     dedicated thread)
>     4) a new COM call is submitted from within another thread
>
>
>         Couldn't something equivalent be done in writeReplace be used
>         for the
>         same thing inside one of those classes?
>
>     Therefore you shouldn't call any methods that use COM thread after
>     a shutdownhook. As a temporary workaround you can try to cache
>     values for serialization BEFORE a shutdownhook is initialized.
>
>     Regards, Pavel
>
>         Forward. I already resolved it by serializing the string
>         instead of
>         the file, but i thought you should know, if you don't already, why
>         people are seeing this exception on shutdown.
>
>
>         ---------- Forwarded message ----------
>         From: Alan Bateman <Alan.Bateman at sun.com
>         <mailto:Alan.Bateman at sun.com>>
>         Date: Fri, Nov 13, 2009 at 9:53 AM
>         Subject: Re: Bug in ShellFolder.
>         To: Paulo Levi <i30817 at gmail.com <mailto:i30817 at gmail.com>>
>         Cc: nio-discuss at openjdk.java.net
>         <mailto:nio-discuss at openjdk.java.net>
>
>
>         Paulo Levi wrote:
>          
>
>             In this thread, i found a bug similar to a strange
>             exception i was
>             (not) seeing when overriding writeObject
>
>             http://forums.java.net/jive/thread.jspa?threadID=31316&tstart=0
>             <http://forums.java.net/jive/thread.jspa?threadID=31316&tstart=0>
>
>             I found that it occurs because of saving files returned by the
>             filechooser (extensions of sun.awt.shell.ShellFolder) when
>             trying to
>             serialize on a shutdownhook,
>             because serializing triggers some file operation that
>             needs to send a
>             task to a Executor that is already closed.
>             I avoid it by:
>             out.writeObject(new File(((File) first).getAbsolutePath()));
>             Couldn't something equivalent be done in writeReplace be
>             used for the
>             same thing inside one of those classes?
>
>                
>
>
>         Sorry, I can't help you here - I would suggest bringing it up
>         on one
>         of the Swing forums or mailing lists.
>
>         -Alan.
>          
>
>
>




More information about the swing-dev mailing list