You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by gi...@apache.org on 2015/06/22 13:16:23 UTC
syncope git commit: [SYNCOPE-660]This closes #7
Repository: syncope
Updated Branches:
refs/heads/1_2_X 92994299f -> fed10a7a7 (forced update)
[SYNCOPE-660]This closes #7
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/fed10a7a
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/fed10a7a
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/fed10a7a
Branch: refs/heads/1_2_X
Commit: fed10a7a779b22cbb58ed824f4b386c2ec19f667
Parents: 69c0950
Author: giacomolm <gi...@hotmail.it>
Authored: Mon Jun 22 12:28:38 2015 +0200
Committer: giacomolm <gi...@hotmail.it>
Committed: Mon Jun 22 13:15:38 2015 +0200
----------------------------------------------------------------------
.../apache/syncope/core/quartz/AbstractTaskJob.java | 16 +++++++++++++++-
core/src/main/resources/content.xml | 5 +++++
core/src/test/resources/content.xml | 7 ++++++-
3 files changed, 26 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/fed10a7a/core/src/main/java/org/apache/syncope/core/quartz/AbstractTaskJob.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/quartz/AbstractTaskJob.java b/core/src/main/java/org/apache/syncope/core/quartz/AbstractTaskJob.java
index 9538311..52615ae 100644
--- a/core/src/main/java/org/apache/syncope/core/quartz/AbstractTaskJob.java
+++ b/core/src/main/java/org/apache/syncope/core/quartz/AbstractTaskJob.java
@@ -29,6 +29,7 @@ import org.apache.syncope.core.audit.AuditManager;
import org.apache.syncope.core.notification.NotificationManager;
import org.apache.syncope.core.persistence.beans.Task;
import org.apache.syncope.core.persistence.beans.TaskExec;
+import org.apache.syncope.core.persistence.dao.ConfDAO;
import org.apache.syncope.core.persistence.dao.TaskDAO;
import org.apache.syncope.core.persistence.dao.TaskExecDAO;
import org.apache.syncope.core.util.ExceptionUtil;
@@ -81,6 +82,12 @@ public abstract class AbstractTaskJob implements TaskJob {
private TaskExecDAO taskExecDAO;
/**
+ * Configuration DAO.
+ */
+ @Autowired
+ private ConfDAO confDAO;
+
+ /**
* Notification manager.
*/
@Autowired
@@ -194,9 +201,16 @@ public abstract class AbstractTaskJob implements TaskJob {
LOG.info("Interrupting job time {} ", (new SimpleDateFormat(SyncopeConstants.DEFAULT_DATE_PATTERN, Locale.
getDefault())).format(new Date()));
thread.interrupt();
+ if (thread.isAlive()) {
+ long maxRetry = confDAO.find("tasks.interruptMaxRetries", "0").getValues().get(0).getLongValue();
+ for (int i = 0; i <= maxRetry && thread.isAlive(); i++) {
+ thread.interrupt();
+ }
+ //if the thread is still alive, it should be available in the next stop
+ if(thread.isAlive()) this.runningThread.set(thread);
+ }
} else {
LOG.warn("Unable to retrieve the right thread related to the current job execution");
}
}
-;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/fed10a7a/core/src/main/resources/content.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/content.xml b/core/src/main/resources/content.xml
index 827e6c9..90a17cd 100644
--- a/core/src/main/resources/content.xml
+++ b/core/src/main/resources/content.xml
@@ -77,6 +77,11 @@ under the License.
mandatoryCondition="true" multivalue="0" uniqueConstraint="0" readonly="0"/>
<CAttr id="11" owner_id="1" schema_name="log.lastlogindate"/>
<CAttrValue id="11" attribute_id="11" booleanValue="1"/>
+
+ <CSchema name="tasks.interruptMaxRetries" type="Long"
+ mandatoryCondition="true" multivalue="0" uniqueConstraint="0" readonly="0"/>
+ <CAttr id="12" owner_id="1" schema_name="tasks.interruptMaxRetries"/>
+ <CAttrValue id="12" attribute_id="12" longValue="20"/>
<!-- For usage with admin console -->
<CSchema name="admin.user.layout" type="String"
http://git-wip-us.apache.org/repos/asf/syncope/blob/fed10a7a/core/src/test/resources/content.xml
----------------------------------------------------------------------
diff --git a/core/src/test/resources/content.xml b/core/src/test/resources/content.xml
index a361a6d..d1ec455 100644
--- a/core/src/test/resources/content.xml
+++ b/core/src/test/resources/content.xml
@@ -71,12 +71,17 @@ under the License.
<CAttr id="9" owner_id="1" schema_name="authentication.statuses"/>
<CAttrValue id="9" attribute_id="9" stringValue="created"/>
<CAttrValue id="10" attribute_id="9" stringValue="active"/>
-
+
<!-- Save user login date upon successful authentication -->
<CSchema name="log.lastlogindate" type="Boolean"
mandatoryCondition="true" multivalue="0" uniqueConstraint="0" readonly="0"/>
<CAttr id="11" owner_id="1" schema_name="log.lastlogindate"/>
<CAttrValue id="11" attribute_id="11" booleanValue="1"/>
+
+ <CSchema name="tasks.interruptMaxRetries" type="Long"
+ mandatoryCondition="true" multivalue="0" uniqueConstraint="0" readonly="0"/>
+ <CAttr id="12" owner_id="1" schema_name="tasks.interruptMaxRetries"/>
+ <CAttrValue id="12" attribute_id="12" longValue="20"/>
<!-- For usage with admin console -->
<CSchema name="admin.user.layout" type="String"