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 2013/03/20 19:26:23 UTC

svn commit: r1458991 - in /uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server: DuccHandlerJsonFormat.java DuccHandlerLegacy.java DuccWebUtil.java

Author: degenaro
Date: Wed Mar 20 18:26:22 2013
New Revision: 1458991

URL: http://svn.apache.org/r1458991
Log:
UIMA-2762 DUCC webserver (WS) incorrectly calculates display list for Managed + Unmanaged Reservations

Modified:
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerLegacy.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebUtil.java

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java?rev=1458991&r1=1458990&r2=1458991&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java Wed Mar 20 18:26:22 2013
@@ -378,72 +378,15 @@ public class DuccHandlerJsonFormat exten
 		ArrayList<String> users = getJobsUsers(request);
 		DuccData duccData = DuccData.getInstance();
 		ConcurrentSkipListMap<JobInfo,JobInfo> sortedJobs = duccData.getSortedJobs();
-		DuccCookies.FilterUsersStyle filterUsersStyle = DuccCookies.getFilterUsersStyle(request);
 		if(sortedJobs.size()> 0) {
 			Iterator<Entry<JobInfo, JobInfo>> iterator = sortedJobs.entrySet().iterator();
 			int counter = 0;
 			while(iterator.hasNext()) {
 				JobInfo jobInfo = iterator.next().getValue();
 				DuccWorkJob job = jobInfo.getJob();
-				boolean list = false;
-				if(!users.isEmpty()) {
-					String jobUser = job.getStandardInfo().getUser().trim();
-					switch(filterUsersStyle) {
-					case IncludePlusActive:
-						if(!job.isCompleted()) {
-							list = true;
-						}
-						else if(users.contains(jobUser)) {
-							if(maxRecords > 0) {
-								if (counter++ < maxRecords) {
-									list = true;
-								}
-							}
-						}
-						break;
-					case ExcludePlusActive:
-						if(!job.isCompleted()) {
-							list = true;
-						}
-						else if(!users.contains(jobUser)) {
-							if(maxRecords > 0) {
-								if (counter++ < maxRecords) {
-									list = true;
-								}
-							}
-						}
-						break;
-					case Include:
-						if(users.contains(jobUser)) {
-							if(maxRecords > 0) {
-								if (counter++ < maxRecords) {
-									list = true;
-								}
-							}
-						}
-						break;
-					case Exclude:
-						if(!users.contains(jobUser)) {
-							if(maxRecords > 0) {
-								if (counter++ < maxRecords) {
-									list = true;
-								}
-							}
-						}
-						break;
-					}	
-				}
-				else {
-					if(!job.isCompleted()) {
-						list = true;
-					}
-					else if(maxRecords > 0) {
-						if (counter++ < maxRecords) {
-							list = true;
-						}
-					}
-				}
+				boolean list = DuccWebUtil.isListable(request, users, maxRecords, counter, job);
 				if(list) {
+					counter++;
 					JsonArray row = buildJobRow(request, job, duccData, servicesRegistry);
 					data.add(row);
 				}
@@ -828,48 +771,6 @@ public class DuccHandlerJsonFormat exten
 		return row;
 	}
 	
-	private boolean isListEligible(ArrayList<String> users, DuccCookies.FilterUsersStyle filterUsersStyle, String user, boolean completed) {
-		boolean list = false;
-		if(!users.isEmpty()) {
-			switch(filterUsersStyle) {
-			case IncludePlusActive:
-				if(!completed) {
-					list = true;
-				}
-				else if(users.contains(user)) {
-						list = true;
-				}
-				break;
-			case ExcludePlusActive:
-				if(!completed) {
-					list = true;
-				}
-				else if(!users.contains(user)) {
-						list = true;
-				}
-				break;
-			case Include:
-				if(users.contains(user)) {
-						list = true;
-				}
-				break;
-			case Exclude:
-				if(!users.contains(user)) {
-						list = true;
-				}
-				break;
-			}	
-		}
-		else {
-			if(!completed) {
-				list = true;
-			}
-			else 
-				list = true;
-		}
-		return list;
-	}
-		
 	private void handleServletJsonFormatReservationsAaData(String target,Request baseRequest,HttpServletRequest request,HttpServletResponse response) 
 	throws IOException, ServletException
 	{
@@ -886,7 +787,6 @@ public class DuccHandlerJsonFormat exten
 		ConcurrentSkipListMap<Info,Info> sortedCombinedReservations = duccData.getSortedCombinedReservations();
 
 		ArrayList<String> users = getReservationsUsers(request);
-		DuccCookies.FilterUsersStyle filterUsersStyle = DuccCookies.getFilterUsersStyle(request);
 		
 		if((sortedCombinedReservations.size() > 0)) {
 			int counter = 0;
@@ -894,9 +794,9 @@ public class DuccHandlerJsonFormat exten
 			while(iR.hasNext()) {
 				Info info = iR.next().getValue();
 				IDuccWork dw = info.getDuccWork();
-				String user = dw.getStandardInfo().getUser().trim();
-				boolean completed = dw.isCompleted();
-				if(isListEligible(users, filterUsersStyle, user, completed)) {
+				boolean list = DuccWebUtil.isListable(request, users, maxRecords, counter, dw);
+				if(list) {
+					counter++;
 					if(dw instanceof DuccWorkReservation) {
 						DuccWorkReservation reservation = (DuccWorkReservation) dw;
 						JsonArray row = buildReservationRow(request, reservation, duccData);
@@ -910,9 +810,6 @@ public class DuccHandlerJsonFormat exten
 					else {
 						// huh?
 					}
-					if(counter++ > maxRecords) {
-						break;
-					}
 				}
 			}
 		}

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerLegacy.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerLegacy.java?rev=1458991&r1=1458990&r2=1458991&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerLegacy.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerLegacy.java Wed Mar 20 18:26:22 2013
@@ -334,72 +334,15 @@ public class DuccHandlerLegacy extends D
 		ArrayList<String> users = getJobsUsers(request);
 		DuccData duccData = DuccData.getInstance();
 		ConcurrentSkipListMap<JobInfo,JobInfo> sortedJobs = duccData.getSortedJobs();
-		DuccCookies.FilterUsersStyle filterUsersStyle = DuccCookies.getFilterUsersStyle(request);
 		if(sortedJobs.size()> 0) {
 			Iterator<Entry<JobInfo, JobInfo>> iterator = sortedJobs.entrySet().iterator();
 			int counter = 0;
 			while(iterator.hasNext()) {
 				JobInfo jobInfo = iterator.next().getValue();
 				DuccWorkJob job = jobInfo.getJob();
-				boolean list = false;
-				if(!users.isEmpty()) {
-					String jobUser = job.getStandardInfo().getUser().trim();
-					switch(filterUsersStyle) {
-					case IncludePlusActive:
-						if(!job.isCompleted()) {
-							list = true;
-						}
-						else if(users.contains(jobUser)) {
-							if(maxRecords > 0) {
-								if (counter++ < maxRecords) {
-									list = true;
-								}
-							}
-						}
-						break;
-					case ExcludePlusActive:
-						if(!job.isCompleted()) {
-							list = true;
-						}
-						else if(!users.contains(jobUser)) {
-							if(maxRecords > 0) {
-								if (counter++ < maxRecords) {
-									list = true;
-								}
-							}
-						}
-						break;
-					case Include:
-						if(users.contains(jobUser)) {
-							if(maxRecords > 0) {
-								if (counter++ < maxRecords) {
-									list = true;
-								}
-							}
-						}
-						break;
-					case Exclude:
-						if(!users.contains(jobUser)) {
-							if(maxRecords > 0) {
-								if (counter++ < maxRecords) {
-									list = true;
-								}
-							}
-						}
-						break;
-					}	
-				}
-				else {
-					if(!job.isCompleted()) {
-						list = true;
-					}
-					else if(maxRecords > 0) {
-						if (counter++ < maxRecords) {
-							list = true;
-						}
-					}
-				}
+				boolean list = DuccWebUtil.isListable(request, users, maxRecords, counter, job);
 				if(list) {
+					counter++;
 					sb.append(trGet(counter));
 					buildJobsListEntry(request, sb, job.getDuccId(), job, duccData, servicesRegistry);
 				}
@@ -730,48 +673,6 @@ public class DuccHandlerLegacy extends D
 		sb.append("</tr>");
 	}
 	
-	private boolean isListEligible(ArrayList<String> users, DuccCookies.FilterUsersStyle filterUsersStyle, String user, boolean completed) {
-		boolean list = false;
-		if(!users.isEmpty()) {
-			switch(filterUsersStyle) {
-			case IncludePlusActive:
-				if(!completed) {
-					list = true;
-				}
-				else if(users.contains(user)) {
-						list = true;
-				}
-				break;
-			case ExcludePlusActive:
-				if(!completed) {
-					list = true;
-				}
-				else if(!users.contains(user)) {
-						list = true;
-				}
-				break;
-			case Include:
-				if(users.contains(user)) {
-						list = true;
-				}
-				break;
-			case Exclude:
-				if(!users.contains(user)) {
-						list = true;
-				}
-				break;
-			}	
-		}
-		else {
-			if(!completed) {
-				list = true;
-			}
-			else 
-				list = true;
-		}
-		return list;
-	}
-	
 	private void handleServletLegacyReservations(String target,Request baseRequest,HttpServletRequest request,HttpServletResponse response) 
 	throws IOException, ServletException
 	{
@@ -786,7 +687,6 @@ public class DuccHandlerLegacy extends D
 		ConcurrentSkipListMap<Info,Info> sortedCombinedReservations = duccData.getSortedCombinedReservations();
 
 		ArrayList<String> users = getReservationsUsers(request);
-		DuccCookies.FilterUsersStyle filterUsersStyle = DuccCookies.getFilterUsersStyle(request);
 		
 		if((sortedCombinedReservations.size() > 0)) {
 			int counter = 0;
@@ -794,9 +694,9 @@ public class DuccHandlerLegacy extends D
 			while(iR.hasNext()) {
 				Info info = iR.next().getValue();
 				IDuccWork dw = info.getDuccWork();
-				String user = dw.getStandardInfo().getUser().trim();
-				boolean completed = dw.isCompleted();
-				if(isListEligible(users, filterUsersStyle, user, completed)) {
+				boolean list = DuccWebUtil.isListable(request, users, maxRecords, counter, dw);
+				if(list) {
+					counter++;
 					if(dw instanceof DuccWorkReservation) {
 						DuccWorkReservation reservation = (DuccWorkReservation) dw;
 						sb.append(trGet(counter));
@@ -810,9 +710,6 @@ public class DuccHandlerLegacy extends D
 					else {
 						// huh?
 					}
-					if(counter++ > maxRecords) {
-						break;
-					}
 				}
 			}
 		}

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebUtil.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebUtil.java?rev=1458991&r1=1458990&r2=1458991&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebUtil.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebUtil.java Wed Mar 20 18:26:22 2013
@@ -18,8 +18,13 @@
 */
 package org.apache.uima.ducc.ws.server;
 
+import java.util.ArrayList;
+
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.uima.ducc.transport.event.common.IDuccWork;
+
 public class DuccWebUtil {
 
 	/*
@@ -33,4 +38,67 @@ public class DuccWebUtil {
 		response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
 		response.setDateHeader("Expires", 0); // Proxies.
 	}
+	
+	public static final boolean isListable(HttpServletRequest request, ArrayList<String> users, int maxRecords, int counter, IDuccWork dw) {
+		boolean list = false;
+		DuccCookies.FilterUsersStyle filterUsersStyle = DuccCookies.getFilterUsersStyle(request);
+		if(!users.isEmpty()) {
+			String jobUser = dw.getStandardInfo().getUser().trim();
+			switch(filterUsersStyle) {
+			case IncludePlusActive:
+				if(!dw.isCompleted()) {
+					list = true;
+				}
+				else if(users.contains(jobUser)) {
+					if(maxRecords > 0) {
+						if (counter < maxRecords) {
+							list = true;
+						}
+					}
+				}
+				break;
+			case ExcludePlusActive:
+				if(!dw.isCompleted()) {
+					list = true;
+				}
+				else if(!users.contains(jobUser)) {
+					if(maxRecords > 0) {
+						if (counter < maxRecords) {
+							list = true;
+						}
+					}
+				}
+				break;
+			case Include:
+				if(users.contains(jobUser)) {
+					if(maxRecords > 0) {
+						if (counter < maxRecords) {
+							list = true;
+						}
+					}
+				}
+				break;
+			case Exclude:
+				if(!users.contains(jobUser)) {
+					if(maxRecords > 0) {
+						if (counter < maxRecords) {
+							list = true;
+						}
+					}
+				}
+				break;
+			}	
+		}
+		else {
+			if(!dw.isCompleted()) {
+				list = true;
+			}
+			else if(maxRecords > 0) {
+				if (counter < maxRecords) {
+					list = true;
+				}
+			}
+		}
+		return list;
+	}
 }