[409616] [dstore] ServerCommandHandler update for restarted
ServerIdleThread
diff --git a/rse/plugins/org.eclipse.dstore.core/src/org/eclipse/dstore/internal/core/server/ServerCommandHandler.java b/rse/plugins/org.eclipse.dstore.core/src/org/eclipse/dstore/internal/core/server/ServerCommandHandler.java
index 2b5fcce..4615a59 100644
--- a/rse/plugins/org.eclipse.dstore.core/src/org/eclipse/dstore/internal/core/server/ServerCommandHandler.java
+++ b/rse/plugins/org.eclipse.dstore.core/src/org/eclipse/dstore/internal/core/server/ServerCommandHandler.java
@@ -22,6 +22,7 @@
* David McKnight (IBM) - [373459] [dstore][multithread] duplicate finish() calls during idle timeout
* David McKnight (IBM) - [378136] [dstore] miner.finish is stuck
* David McKnight (IBM) - [408801] [dstore] change ServerIdleThread so that it can extend SecuredThread
+ * David McKnight (IBM) - [409616] [dstore] ServerCommandHandler update for restarted ServerIdleThread
*******************************************************************************/
package org.eclipse.dstore.internal.core.server;
@@ -222,7 +223,7 @@
if (_dataStore.getClient() != null) {
_dataStore.getClient().getLogger().logInfo(this.getClass().toString(), "ServerCommandHandler.finish()"); //$NON-NLS-1$
}
-
+ _dataStore.setConnected(false); // set dstore to be not connected so the server idle thread doesn't get started again
if (_serverIdleThread != null){
if (_dataStore.getClient() != null) {
_dataStore.getClient().getLogger().logInfo(this.getClass().toString(), "ServerCommandHandler clearing server idle thread"); //$NON-NLS-1$
@@ -305,6 +306,7 @@
if (commandName.equals(DataStoreSchema.C_VALIDATE_TICKET))
{
+ _dataStore.setConnected(true); // make sure set to connected so server idle thread can be started
DataElement serverTicket = _dataStore.getTicket();
DataElement clientTicket = command.get(0);
String st = serverTicket.getName();
@@ -623,7 +625,7 @@
// new command so restart timeout
_serverIdleThread.interrupt();
}
- else
+ else if (_dataStore.isConnected()) // only create idle thread when connected
{
_serverIdleThread = new ServerIdleThread(serverIdleShutdownTimeout, _dataStore);
_serverIdleThread.start();