[ 
https://issues.apache.org/jira/browse/FELIX-4837?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15873865#comment-15873865
 ] 

Karl Pauls commented on FELIX-4837:
-----------------------------------

I guess I'm not sure I understand what is going on. You are saying for some 
reason anonymous classes inside a shutdown hook are a problem for webstart but 
your fix is still instantiating an anonymous inner class (just a subclass of 
Thread) and the jdk bug you point to doesn't necessarily confirms anonymous 
classes being an issue (the comment points to a logging issue and the two 
referenced bugs are closed as cannot reproduce9). 

Ultimately, I'm not against applying your patch on the basis that it doesn't 
change anything in theory and you saying it helps in Webstart but I'd really 
would like to understand a little better what is going on if possible.

> Workaround for JNLPClassLoader in ShutdownHook 
> -----------------------------------------------
>
>                 Key: FELIX-4837
>                 URL: https://issues.apache.org/jira/browse/FELIX-4837
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: framework-5.0.1, framework-5.6.1
>         Environment: all
>            Reporter: Nicolas Roduit
>            Assignee: Karl Pauls
>
> This a workaround of the issue that I submitted on 
> https://bugs.openjdk.java.net/browse/JDK-8054639
> The Java Web Start classloader doesn't support to have anonymous classes or 
> enum within the shutdown hook.
> The patch below allows to stop all the bundles correctly when calling  
> m_felix.stop() in the shutdown hook. Otherwise the framework throws an 
> exception and do not call the bundle stop. This is a problem when each bundle 
> write its preferences or state during the stop method.
> {code}                 
> diff --git a/framework/src/main/java/org/apache/felix/framework/Felix.java 
> b/framework/src/main/java/org/apache/felix/framework/Felix.java
> index c6b305a..e44ccea 100644
> --- a/framework/src/main/java/org/apache/felix/framework/Felix.java
> +++ b/framework/src/main/java/org/apache/felix/framework/Felix.java
> @@ -1023,7 +1023,7 @@
>          {
>              // Spec says stop() on SystemBundle should return immediately and
>              // shutdown framework on another thread.
> -            new Thread(new Runnable() {
> +            Thread t = new Thread( "FelixShutdown"){
>                  public void run()
>                  {
>                      try
> @@ -1038,7 +1038,8 @@
>                              ex);
>                      }
>                  }
> -            }, "FelixShutdown").start();
> +            };
> +            t.start();
>          }
>      }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to