Author: degenaro
Date: Mon Jul 30 18:38:47 2018
New Revision: 1837079

URL: http://svn.apache.org/viewvc?rev=1837079&view=rev
Log:
UIMA-5851 DUCC Web Server (WS) displays ever increasing Processing Time on Work 
Items tab

Modified:
    
uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/IWorkItemState.java
    
uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/WorkItemState.java
    
uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java

Modified: 
uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/IWorkItemState.java
URL: 
http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/IWorkItemState.java?rev=1837079&r1=1837078&r2=1837079&view=diff
==============================================================================
--- 
uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/IWorkItemState.java
 (original)
+++ 
uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/IWorkItemState.java
 Mon Jul 30 18:38:47 2018
@@ -58,11 +58,9 @@ public interface IWorkItemState extends
        public void investmentReset();
        
        public long getMillisAtStart();
-       public long getMillisOverhead();
        public long getMillisProcessing();
-       public long getMillisInvestment();
        
-       public long getMillisOverhead(long now);
-       public long getMillisProcessing(long now);
-       public long getMillisInvestment(long now);
+       public long getMillisOverhead(long refTime);
+       public long getMillisProcessing(long refTime);
+       public long getMillisInvestment(long refTime);
 }

Modified: 
uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/WorkItemState.java
URL: 
http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/WorkItemState.java?rev=1837079&r1=1837078&r2=1837079&view=diff
==============================================================================
--- 
uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/WorkItemState.java
 (original)
+++ 
uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/WorkItemState.java
 Mon Jul 30 18:38:47 2018
@@ -180,11 +180,7 @@ public class WorkItemState implements IW
                return millisAtStart;
        }
        
-       public long getMillisOverhead() {
-               return getMillisOverhead(System.currentTimeMillis());
-       }
-       
-       public long getMillisOverhead(long now) {
+       public long getMillisOverhead(long refTime) {
                long retVal = 0;
                if(millisAtStart > 0) {
                        if(millisAtQueued > 0) {
@@ -194,7 +190,9 @@ public class WorkItemState implements IW
                                retVal = millisAtOperating - millisAtStart;
                        }
                        else {
-                               retVal = now - millisAtStart;
+                               if(refTime > millisAtStart) {
+                                       retVal = refTime - millisAtStart;
+                               }
                        }
                }
                return retVal;
@@ -204,31 +202,31 @@ public class WorkItemState implements IW
                return getMillisProcessing(System.currentTimeMillis());
        }
        
-       public long getMillisProcessing(long now) {
+       public long getMillisProcessing(long refTime) {
                long retVal = 0;
                if(millisAtOperating > 0) {
                        if(millisAtFinish > 0) {
                                retVal = millisAtFinish - millisAtOperating;
                        }
                        else {
-                               retVal =  now - millisAtOperating;
+                               if(refTime > millisAtOperating) {
+                                       retVal =  refTime - millisAtOperating;
+                               }
                        }
                }
                return retVal;
        }
        
-       public long getMillisInvestment() {
-               return getMillisInvestment(System.currentTimeMillis());
-       }
-       
-       public long getMillisInvestment(long now) {
+       public long getMillisInvestment(long refTime) {
                long retVal = 0;
                if(millisAtFinish < 0) {
                        if(millisAtInvestment > 0) {
-                               retVal = now - millisAtInvestment;
+                               if(refTime > millisAtInvestment) {
+                                       retVal = refTime - millisAtInvestment;
+                               }
                        }
                        else {
-                               retVal = getMillisProcessing();
+                               retVal = getMillisProcessing(refTime);
                        }
                }
                return retVal;

Modified: 
uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java
URL: 
http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java?rev=1837079&r1=1837078&r2=1837079&view=diff
==============================================================================
--- 
uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java
 (original)
+++ 
uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java
 Mon Jul 30 18:38:47 2018
@@ -1299,6 +1299,18 @@ public class DuccHandler extends DuccAbs
                }
                return adjustedTime;
        }
+       
+       private long getReferenceTime(IDuccWorkJob job) {
+               long time = System.currentTimeMillis();
+               if(job != null) {
+                       if(job.isCompleted()) {
+                               IDuccStandardInfo stdInfo = 
job.getStandardInfo();
+                               time = stdInfo.getDateOfCompletionMillis();
+                       }
+               }
+               return time;
+       }
+       
        private void handleDuccServletJobWorkitemsData(String target,Request 
baseRequest,HttpServletRequest request,HttpServletResponse response)
        throws IOException, ServletException
        {
@@ -1309,7 +1321,7 @@ public class DuccHandler extends DuccAbs
                DuccWorkJob job = getJob(jobNo);
                if(job != null) {
                        try {
-                               long now = System.currentTimeMillis();
+                               long refTime = getReferenceTime(job);
                                String directory = job.getLogDirectory()+jobNo;
                                EffectiveUser eu = 
EffectiveUser.create(request);
                                long wiVersion = job.getWiVersion();
@@ -1410,12 +1422,12 @@ public class DuccHandler extends DuccAbs
                                                row.append("<td 
align=\"right\">");
                                                row.append(fmt_startTime);
                                                // Queuing Time (sec)
-                                               time = 
getAdjustedTime(wis.getMillisOverhead(), job);
+                                               time = 
getAdjustedTime(wis.getMillisOverhead(refTime), job);
                                                time = time/1000;
                                                row.append("<td 
align=\"right\">");
                                                
row.append(formatter.format(time));
                                                // Processing Time (sec)
-                                               time = 
getAdjustedTime(wis.getMillisProcessing(now), job);
+                                               time = 
getAdjustedTime(wis.getMillisProcessing(refTime), job);
                                                time = time/1000;
                                                ptime = formatter.format(time);
                                                row.append("<td 
align=\"right\">");
@@ -1432,7 +1444,7 @@ public class DuccHandler extends DuccAbs
                                                row.append(ptime);
                                                row.append("</span>");
                                                // Investment Time (sec)
-                                               time = 
getAdjustedTime(wis.getMillisInvestment(now), job);
+                                               time = 
getAdjustedTime(wis.getMillisInvestment(refTime), job);
                                                time = time/1000;
                                                itime = formatter.format(time);
                                                row.append("<td 
align=\"right\">");


Reply via email to