Removing terminated thread from local map which contains running thread. Fixes #3342

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/vre-management/smart-executor@114593 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Luca Frosini 2015-04-29 16:12:20 +00:00
parent ea89017b96
commit 80b827d08c
1 changed files with 7 additions and 2 deletions

View File

@ -6,6 +6,7 @@ package org.gcube.vremanagement.executor.pluginmanager;
import java.util.Map;
import java.util.UUID;
import org.gcube.vremanagement.executor.SmartExecutorInitalizator;
import org.gcube.vremanagement.executor.plugin.Plugin;
import org.gcube.vremanagement.executor.plugin.PluginDeclaration;
import org.gcube.vremanagement.executor.plugin.PluginState;
@ -32,12 +33,14 @@ public class PluginThread<T extends Plugin<? extends PluginDeclaration>> extends
inputs.hashCode(), SEPARATOR, uuid);
}
protected T plugin;
protected Map<String, Object> inputs;
protected final T plugin;
protected final UUID uuid;
protected final Map<String, Object> inputs;
public PluginThread(T plugin, Map<String, Object> inputs, UUID uuid){
super(getThreadName(plugin, inputs, uuid));
this.plugin = plugin;
this.uuid = uuid;
this.inputs = inputs;
this.plugin.setState(PluginState.CREATED);
}
@ -51,6 +54,8 @@ public class PluginThread<T extends Plugin<? extends PluginDeclaration>> extends
} catch(Exception e) {
logger.trace(String.format("Thread %s failed", getName()),e);
plugin.setState(PluginState.FAILED);
} finally{
SmartExecutorInitalizator.getPluginInstances().remove(uuid);
}
}