From 33661c6abf51a0e7f5b5a0e17acd3fff712e1ac8 Mon Sep 17 00:00:00 2001
From: abobrov <abobrov@localhost>
Date: Sat, 13 Jun 2009 04:42:25 +0000
Subject: [PATCH] - attempt to fix possible race conditions when tasks changing their state upon completion.
---
opendj-sdk/opends/src/server/org/opends/server/backends/task/Task.java | 26 +++++---------------------
1 files changed, 5 insertions(+), 21 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/task/Task.java b/opendj-sdk/opends/src/server/org/opends/server/backends/task/Task.java
index 8f66618..8d88c57 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/task/Task.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/task/Task.java
@@ -1145,10 +1145,11 @@
setTaskState(TaskState.RUNNING);
taskScheduler.writeState();
+ TaskState taskState = this.taskState;
+
try
{
- TaskState taskState = runTask();
- setTaskState(taskState);
+ taskState = runTask();
}
catch (Exception e)
{
@@ -1157,29 +1158,12 @@
TRACER.debugCaught(DebugLogLevel.ERROR, e);
}
- setTaskState(TaskState.STOPPED_BY_ERROR);
+ taskState = TaskState.STOPPED_BY_ERROR;
Message message = ERR_TASK_EXECUTE_FAILED.get(
String.valueOf(taskEntry.getDN()), stackTraceToSingleLineString(e));
logError(message);
}
- finally
- {
- setCompletionTime(TimeThread.getTime());
- taskScheduler.writeState();
- }
-
- try
- {
- sendNotificationEMailMessage();
- }
- catch (Exception e)
- {
- if (debugEnabled())
- {
- TRACER.debugCaught(DebugLogLevel.ERROR, e);
- }
- }
return taskState;
}
@@ -1193,7 +1177,7 @@
* @throws MessagingException If a problem occurs while attempting to send
* the message.
*/
- private void sendNotificationEMailMessage()
+ protected void sendNotificationEMailMessage()
throws MessagingException
{
if (DirectoryServer.mailServerConfigured())
--
Gitblit v1.10.0