You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by de...@apache.org on 2018/07/30 18:38:47 UTC

svn commit: r1837079 - in /uima/uima-ducc/trunk: uima-ducc-common/src/main/java/org/apache/uima/ducc/common/jd/files/ uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/

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\">");