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) {


Reply via email to