You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ja...@apache.org on 2012/07/17 14:28:25 UTC
svn commit: r1362469 -
/ofbiz/trunk/framework/service/src/org/ofbiz/service/job/JobManager.java
Author: jacopoc
Date: Tue Jul 17 12:28:24 2012
New Revision: 1362469
URL: http://svn.apache.org/viewvc?rev=1362469&view=rev
Log:
Changes to fix some thread unsafe code in the JobManager constructors.
Modified:
ofbiz/trunk/framework/service/src/org/ofbiz/service/job/JobManager.java
Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/job/JobManager.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/job/JobManager.java?rev=1362469&r1=1362468&r2=1362469&view=diff
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/job/JobManager.java (original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/job/JobManager.java Tue Jul 17 12:28:24 2012
@@ -21,11 +21,11 @@ package org.ofbiz.service.job;
import java.io.IOException;
import java.sql.Timestamp;
import java.util.Date;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javolution.util.FastList;
-import javolution.util.FastMap;
import org.ofbiz.base.util.Debug;
import org.ofbiz.base.util.GeneralRuntimeException;
@@ -59,34 +59,25 @@ public class JobManager {
public static final String instanceId = UtilProperties.getPropertyValue("general.properties", "unique.instanceId", "ofbiz0");
public static final Map<String, Object> updateFields = UtilMisc.<String, Object>toMap("runByInstanceId", instanceId, "statusId", "SERVICE_QUEUED");
public static final String module = JobManager.class.getName();
- public static Map<String, JobManager> registeredManagers = FastMap.newInstance();
+
+ private static final Map<String, JobManager> registeredManagers = new HashMap<String, JobManager>();
protected Delegator delegator;
protected JobPoller jp;
- /** Creates a new JobManager object. */
- public JobManager(Delegator delegator) {
- this(delegator, true);
- }
-
- public JobManager(Delegator delegator, boolean enabled) {
+ private JobManager(Delegator delegator, boolean enabled) {
if (delegator == null) {
throw new GeneralRuntimeException("ERROR: null delegator passed, cannot create JobManager");
}
- if (JobManager.registeredManagers.get(delegator.getDelegatorName()) != null) {
- throw new GeneralRuntimeException("JobManager for [" + delegator.getDelegatorName() + "] already running");
- }
-
this.delegator = delegator;
jp = new JobPoller(this, enabled);
- JobManager.registeredManagers.put(delegator.getDelegatorName(), this);
}
- public static JobManager getInstance(Delegator delegator, boolean enabled)
- {
+ public synchronized static JobManager getInstance(Delegator delegator, boolean enabled) {
JobManager jm = JobManager.registeredManagers.get(delegator.getDelegatorName());
if (jm == null) {
jm = new JobManager(delegator, enabled);
+ JobManager.registeredManagers.put(delegator.getDelegatorName(), jm);
}
return jm;
}