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;
+       }
 }


Reply via email to