[icedtea-web] not closeable javaws (and maybe more)
Jiri Vanek
jvanek at redhat.com
Wed Feb 18 09:48:57 UTC 2015
On 02/17/2015 12:30 PM, Jiri Vanek wrote:
> On 02/17/2015 11:57 AM, Jiri Vanek wrote:
>> On 02/17/2015 11:00 AM, Jiri Vanek wrote:
>>> Hi!
>>>
>>> Head, for already some time javaws apps needs to be closed by signal kill. For long time I
>>> thought this is soem accident or whatever, but it is not.
>>> Today I tracked it to guilty changeset of
>>> http://icedtea.classpath.org/hg/icedtea-web/rev/6f4c1d501560
>>>
>>> Looking for the fix now, but in case I fail, this will spare some time to the followr,
>>>
>>> J.
>>
>> Ok, so the caus eis clear, ServiceExecutor do not run as daemon, and so is preventing jvm to stop.
>>
>> I'm wondering Why I dont see this issue from plugin side...
>>
>> Anyway - for javaws - both ok and failed run - where to place call to
>>
>> diff -r a8baec8d9d21 netx/net/sourceforge/jnlp/cache/ResourceTracker.java
>> --- a/netx/net/sourceforge/jnlp/cache/ResourceTracker.java Fri Feb 13 12:48:24 2015 +0100
>> +++ b/netx/net/sourceforge/jnlp/cache/ResourceTracker.java Tue Feb 17 11:57:01 2015 +0100
>> @@ -34,6 +34,7 @@
>> import java.util.List;
>> import java.util.concurrent.ExecutorService;
>> import java.util.concurrent.Executors;
>> +import java.util.concurrent.TimeUnit;
>>
>> import net.sourceforge.jnlp.DownloadOptions;
>> import net.sourceforge.jnlp.Version;
>> @@ -633,4 +634,15 @@
>> interface Filter<T> {
>> public boolean test(T t);
>> }
>> +
>> + public static void shutdDownThreadPool() throws InterruptedException{
>> + threadPool.shutdown();
>> + if (!threadPool.awaitTermination(5, TimeUnit.SECONDS)) {
>> + OutputController.getLogger().log("Executor did not terminate in the specified time.");
>> + List<Runnable> droppedTasks = threadPool.shutdownNow();
>> + OutputController.getLogger().log("Executor was abruptly shut down. " +
>> droppedTasks.size() + " tasks will not be executed.");
>> + }
>> + }
>> +
>> +
>> }
>>
>>
>> ?
>
> One more thought, attached patch fixed the issue for me:
>
> It does only thing - it changes threads used by ExecutorService to daemons.
>
> Well, I dont know whot Iahve done - I dont know if ExecutorService is still keeping its purpose when
> its threads are daemons.
>
> On contrary, documentation is silent, and usage of custom ThreadFactory is supported....
> As negativism, original code (before patch 6f4c1d501560) was not using daemons. But was not
> recycling threads...
>
>
> Thoughts?
>
> J.
>
>
ping?
More information about the distro-pkg-dev
mailing list