Author: vanto Date: Wed Nov 21 22:57:22 2012 New Revision: 1412351 URL: http://svn.apache.org/viewvc?rev=1412351&view=rev Log: fixing ODE-943: NoClassDefFoundError for org.apache.log4j.helpers.AbsoluteTimeDateFormat in SimpleScheduler.doLoadImmediate() leads memory leak
From: Tammo van Lessen <[email protected]> Modified: ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java Modified: ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java URL: http://svn.apache.org/viewvc/ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java?rev=1412351&r1=1412350&r2=1412351&view=diff ============================================================================== --- ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java (original) +++ ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java Wed Nov 21 22:57:22 2012 @@ -19,6 +19,8 @@ package org.apache.ode.scheduler.simple; +import java.text.DateFormat; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collections; import java.util.Date; @@ -41,7 +43,6 @@ import javax.transaction.TransactionMana import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.log4j.helpers.AbsoluteTimeDateFormat; import org.apache.ode.bpel.iapi.ContextException; import org.apache.ode.bpel.iapi.Scheduler; @@ -144,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; @@ -729,7 +732,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){ @@ -741,7 +744,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) {
