Author: vanto
Date: Wed Nov 21 23:01:45 2012
New Revision: 1412353
URL: http://svn.apache.org/viewvc?rev=1412353&view=rev
Log:
fixing ODE-943: NoClassDefFoundError for
org.apache.log4j.helpers.AbsoluteTimeDateFormat in
SimpleScheduler.doLoadImmediate() leads memory leak
Modified:
ode/branches/ode-1.3.6.x/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java
Modified:
ode/branches/ode-1.3.6.x/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java
URL:
http://svn.apache.org/viewvc/ode/branches/ode-1.3.6.x/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java?rev=1412353&r1=1412352&r2=1412353&view=diff
==============================================================================
---
ode/branches/ode-1.3.6.x/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java
(original)
+++
ode/branches/ode-1.3.6.x/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java
Wed Nov 21 23:01:45 2012
@@ -19,7 +19,14 @@
package org.apache.ode.scheduler.simple;
-import java.util.*;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+import java.util.Properties;
+import java.util.Random;
import java.util.concurrent.Callable;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArraySet;
@@ -33,15 +40,11 @@ import javax.transaction.Synchronization
import javax.transaction.SystemException;
import javax.transaction.Transaction;
import javax.transaction.TransactionManager;
-import javax.xml.namespace.QName;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.ode.bpel.common.CorrelationKey;
import org.apache.ode.bpel.iapi.ContextException;
import org.apache.ode.bpel.iapi.Scheduler;
-import org.apache.log4j.helpers.AbsoluteTimeDateFormat;
-import org.apache.ode.bpel.iapi.Scheduler.JobType;
/**
* A reliable and relatively simple scheduler that uses a database to persist
information about
@@ -142,6 +145,8 @@ public class SimpleScheduler implements
/** Interval between immediate retries when the transaction fails **/
private long _immediateTransactionRetryInterval = 1000;
+ private DateFormat debugDateFormatter = new
SimpleDateFormat("HH:mm:ss,SSS");
+
public SimpleScheduler(String nodeId, DatabaseDelegate del, Properties
conf) {
_nodeId = nodeId;
_db = del;
@@ -704,7 +709,7 @@ public class SimpleScheduler implements
long delayedTime = System.currentTimeMillis() - _warningDelay;
int delayedCount = 0;
boolean runningLate;
- AbsoluteTimeDateFormat f = new AbsoluteTimeDateFormat();
+
for (Job j : jobs) {
// jobs might have been enqueued by #addTodoOnCommit meanwhile
if (_outstandingJobs.size() >= _todoLimit){
@@ -716,7 +721,7 @@ public class SimpleScheduler implements
delayedCount++;
}
if (__log.isDebugEnabled())
- __log.debug("todo.enqueue job from db: " + j.jobId.trim()
+ " for " + j.schedDate + "(" + f.format(j.schedDate)+") "+(runningLate?"
delayed=true":""));
+ __log.debug("todo.enqueue job from db: " + j.jobId.trim()
+ " for " + j.schedDate + "(" + debugDateFormatter.format(j.schedDate)+")
"+(runningLate?" delayed=true":""));
enqueue(j);
}
if (delayedCount > 0) {