You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by bo...@apache.org on 2006/10/26 23:40:04 UTC

svn commit: r468147 - /incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java

Author: boisvert
Date: Thu Oct 26 14:40:02 2006
New Revision: 468147

URL: http://svn.apache.org/viewvc?view=rev&rev=468147
Log:
Calendar is expensive to initialize so we cache and clone it

Modified:
    incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java

Modified: incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java
URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java?view=diff&rev=468147&r1=468146&r2=468147
==============================================================================
--- incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java (original)
+++ incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java Thu Oct 26 14:40:02 2006
@@ -67,6 +67,7 @@
     protected BpelEngineImpl _engine;
     protected BpelServerImpl _server;
     protected BpelDatabase _db;
+    protected Calendar _calendar = Calendar.getInstance(); // Calendar is expensive to initialize so we cache and clone it
 
     public ProcessAndInstanceManagementImpl(BpelDatabase db, BpelEngineImpl engine, BpelServerImpl server) {
         _db = db;
@@ -744,8 +745,8 @@
 
         ProcessInstanceDAO.EventsFirstLastCountTuple flc = instance.getEventsFirstLastCount();
         TInstanceInfo.EventInfo eventInfo = info.addNewEventInfo();
-        Calendar first = Calendar.getInstance();
-        Calendar last = Calendar.getInstance();
+        Calendar first = (Calendar) _calendar.clone();
+        Calendar last = (Calendar) _calendar.clone();
 
         // Setting valued correlation properties
         if (!instance.getCorrelationSets().isEmpty()) {
@@ -769,7 +770,7 @@
 
         if (instance.getActivityFailureCount() > 0) {
           TInstanceInfo.Failures failures = info.addNewFailures();
-          Calendar failureDt = Calendar.getInstance();
+          Calendar failureDt = (Calendar) _calendar.clone();
           failureDt.setTime(instance.getActivityFailureDateTime());
           failures.setCount(instance.getActivityFailureCount());
           failures.setDtFailure(failureDt);
@@ -822,7 +823,7 @@
                   if (String.valueOf(recovery.getActivityId()).equals(ai.getActivityInfo().getAiid())) {
                     TActivityInfo.Failure failure = ai.getActivityInfo().addNewFailure();
                     failure.setReason(recovery.getReason());
-                    Calendar cal = Calendar.getInstance();
+                    Calendar cal = (Calendar) _calendar.clone();
                     cal.setTime(recovery.getDateTime());
                     failure.setDtFailure(cal);
                     failure.setActions(recovery.getActions());
@@ -874,7 +875,7 @@
         info.setName(BpelEvent.eventName(event));
         info.setType(event.getType().toString());
         info.setLineNumber(event.getLineNo());
-        Calendar c = Calendar.getInstance();
+        Calendar c = (Calendar) _calendar.clone();
         c.setTime(event.getTimestamp());
         info.setTimestamp(c);
         if (event instanceof ActivityEvent) {
@@ -961,11 +962,11 @@
      * @param dtime a {@link Date}
      * @return a {@link Calendar}
      */
-    private static Calendar toCalendar(Date dtime) {
+    private Calendar toCalendar(Date dtime) {
         if (dtime == null)
             return null;
 
-        Calendar c = Calendar.getInstance();
+        Calendar c = (Calendar) _calendar.clone();
         c.setTime(dtime);
         return c;
     }