Author: degenaro
Date: Tue Jul 31 14:09:24 2018
New Revision: 1837149

URL: http://svn.apache.org/viewvc?rev=1837149&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-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java
    
uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerUtils.java

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=1837149&r1=1837148&r2=1837149&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
 Tue Jul 31 14:09:24 2018
@@ -1300,17 +1300,6 @@ 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
        {
@@ -1321,7 +1310,6 @@ public class DuccHandler extends DuccAbs
                DuccWorkJob job = getJob(jobNo);
                if(job != null) {
                        try {
-                               long refTime = getReferenceTime(job);
                                String directory = job.getLogDirectory()+jobNo;
                                EffectiveUser eu = 
EffectiveUser.create(request);
                                long wiVersion = job.getWiVersion();
@@ -1382,6 +1370,7 @@ public class DuccHandler extends DuccAbs
                                                duccLogger.warn(methodName, 
job.getDuccId(), "work items display max:"+DuccConstants.workItemsDisplayMax);
                                                break;
                                        }
+                                       long refTime = 
DuccHandlerUtils.getReferenceTime(job,wis.getNode(),wis.getPid());
                                        // SeqNo
                                                row.append("<td 
align=\"right\">");
                                                row.append(wis.getSeqNo());

Modified: 
uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerUtils.java
URL: 
http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerUtils.java?rev=1837149&r1=1837148&r2=1837149&view=diff
==============================================================================
--- 
uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerUtils.java
 (original)
+++ 
uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerUtils.java
 Tue Jul 31 14:09:24 2018
@@ -19,9 +19,23 @@
 package org.apache.uima.ducc.ws.server;
 
 import java.text.DecimalFormat;
+import java.util.Map.Entry;
+
+import org.apache.uima.ducc.common.Node;
+import org.apache.uima.ducc.common.NodeIdentity;
+import org.apache.uima.ducc.common.utils.DuccLogger;
+import org.apache.uima.ducc.common.utils.id.DuccId;
+import org.apache.uima.ducc.transport.event.common.IDuccProcess;
+import org.apache.uima.ducc.transport.event.common.IDuccProcessMap;
+import org.apache.uima.ducc.transport.event.common.IDuccStandardInfo;
+import org.apache.uima.ducc.transport.event.common.IDuccWorkJob;
+import org.apache.uima.ducc.transport.event.common.ITimeWindow;
 
 public class DuccHandlerUtils {
 
+       private static DuccLogger duccLogger = 
DuccLogger.getLogger(DuccHandlerUtils.class);
+       private static DuccId jobid = null;
+       
        public static String warn(String text) {
                StringBuffer sb = new StringBuffer();
                sb.append("<span class=\"health_red\""+">");
@@ -103,8 +117,78 @@ public class DuccHandlerUtils {
                return retVal;
        }
        
-       
-       
-       
+       public static boolean safeCompare(String s1, String s2) {
+               boolean retVal = false;
+               if (s1 != null) {
+                       if (s2 != null) {
+                               retVal = s1.equals(s2);
+                       }
+               }
+               return retVal;
+       }
+
+       public static String getNode(IDuccProcess p) {
+               String retVal = null;
+               Node node = p.getNode();
+               NodeIdentity ni = node.getNodeIdentity();
+               String name = ni.getIp();
+               retVal = name;
+               return retVal;
+       }
+
+       public static String getPid(IDuccProcess p) {
+               String retVal = p.getPID();
+               return retVal;
+       }
+
+       public static IDuccProcess getJobProcess(IDuccWorkJob job, String node, 
String pid) {
+               String location = "getJobProcess";
+               IDuccProcess retVal = null;
+               try {
+                       IDuccProcessMap map = job.getProcessMap();
+                       for (Entry<DuccId, IDuccProcess> entry : 
map.entrySet()) {
+                               IDuccProcess p = entry.getValue();
+                               String pnode = getNode(p);
+                               String ppid = getPid(p);
+                               duccLogger.debug(location, jobid, node, pid, 
pnode, ppid);
+                               if (safeCompare(node, pnode)) {
+                                       if (safeCompare(pid, ppid)) {
+                                               retVal = p;
+                                               break;
+                                       }
+                               }
+                       }
+               } catch (Exception e) {
+                       // no worries
+               }
+               return retVal;
+       }
+
+       public static long getReferenceTime(IDuccWorkJob job, String node, 
String pid) {
+               String location = "getReferenceTime";
+               long retVal = System.currentTimeMillis();
+               if (job != null) {
+                       if (job.isCompleted()) {
+                               IDuccStandardInfo stdInfo = 
job.getStandardInfo();
+                               long time = stdInfo.getDateOfCompletionMillis();
+                               if(time > 0) {
+                                       duccLogger.debug(location, jobid, "job: 
"+time);
+                                       retVal = time;
+                               }
+                       }
+                       IDuccProcess p = getJobProcess(job, node, pid);
+                       if (p != null) {
+                               ITimeWindow tw = p.getTimeWindowRun();
+                               if (tw != null) {
+                                       long time = tw.getEndLong();
+                                       if (time > 0) {
+                                               duccLogger.debug(location, 
jobid, "process: "+time);
+                                               retVal = time;
+                                       }
+                               }
+                       }
+               }
+               return retVal;
+       }
        
 }


Reply via email to