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/05 17:52:32 UTC

svn commit: r1452891 - in /uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws: DuccData.java IListenerOrchestrator.java Info.java server/DuccHandlerJsonFormat.java server/DuccHandlerLegacy.java

Author: degenaro
Date: Tue Mar  5 16:52:32 2013
New Revision: 1452891

URL: http://svn.apache.org/r1452891
Log:
UIMA-2691 DUCC webserver (WS) support for "managed reservations", fix improper default sorting of Reservations page

Added:
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/Info.java
Modified:
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccData.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/IListenerOrchestrator.java
    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

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccData.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccData.java?rev=1452891&r1=1452890&r2=1452891&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccData.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccData.java Tue Mar  5 16:52:32 2013
@@ -21,18 +21,24 @@ package org.apache.uima.ducc.ws;
 import java.util.Iterator;
 import java.util.concurrent.ConcurrentSkipListMap;
 
+import org.apache.uima.ducc.common.utils.DuccLogger;
+import org.apache.uima.ducc.common.utils.DuccLoggerComponents;
 import org.apache.uima.ducc.common.utils.TimeStamp;
 import org.apache.uima.ducc.common.utils.id.DuccId;
 import org.apache.uima.ducc.transport.event.common.DuccWorkJob;
 import org.apache.uima.ducc.transport.event.common.DuccWorkMap;
 import org.apache.uima.ducc.transport.event.common.DuccWorkReservation;
 import org.apache.uima.ducc.transport.event.common.IDuccWork;
+import org.apache.uima.ducc.transport.event.common.IDuccWorkService.ServiceDeploymentType;
 import org.apache.uima.ducc.transport.event.common.history.HistoryPersistenceManager;
 import org.apache.uima.ducc.transport.event.common.history.IHistoryPersistenceManager;
 
 
 public class DuccData {
 
+
+	private static DuccLogger logger = DuccLoggerComponents.getWsLogger(DuccData.class.getName());
+	
 	private static DuccWorkMap duccWorkMap = new DuccWorkMap();
 	private static DuccWorkMap duccWorkLive = new DuccWorkMap();
 	
@@ -40,10 +46,12 @@ public class DuccData {
 	private static ConcurrentSkipListMap<ReservationInfo,ReservationInfo> sortedReservations = new ConcurrentSkipListMap<ReservationInfo,ReservationInfo>();
 	private static ConcurrentSkipListMap<JobInfo,JobInfo> sortedServices = new ConcurrentSkipListMap<JobInfo,JobInfo>();
 
-	private static ConcurrentSkipListMap<DuccId,Object> keyMap = new ConcurrentSkipListMap<DuccId,Object>();
-	
+	private static ConcurrentSkipListMap<Info,Info> sortedCombinedReservations = new ConcurrentSkipListMap<Info,Info>();
+
 	private static DuccData duccData = new DuccData();
 	
+	private static DuccId jobid = null;
+	
 	public static DuccData getInstance() {
 		return duccData;
 	}
@@ -122,47 +130,63 @@ public class DuccData {
 	}
 	
 	private void cacheManager(IDuccWork duccWork, Object cacheKey) {
-		DuccId duccId = duccWork.getDuccId();
-		if(keyMap.containsKey(duccId)) {
-			switch(duccWork.getDuccType()) {
-			case Job:
-				sortedJobs.remove(keyMap.get(duccId));
-				break;
-			case Reservation:
-				sortedReservations.remove(keyMap.get(duccId));
-				break;
-			case Service:
-				sortedServices.remove(keyMap.get(duccId));
-				break;
-			}
-			keyMap.remove(duccId);
-		}
-		if(!duccWork.isCompleted()) {
-			keyMap.put(duccId, cacheKey);
+		switch(duccWork.getDuccType()) {
+		case Job:
+			sortedJobs.remove(cacheKey);
+			break;
+		case Reservation:
+			if(cacheKey instanceof ReservationInfo) {
+				sortedReservations.remove(cacheKey);				}
+				else if(cacheKey instanceof Info) 
+					sortedCombinedReservations.remove(cacheKey);
+				
+			break;
+		case Service:
+			sortedServices.remove(cacheKey);
+			break;			
 		}
 	}
 	
 	private void updateSortedMaps(IDuccWork duccWork) {
+		String location = "updateSortedMaps";
+		Info info;
 		switch(duccWork.getDuccType()) {
-			case Job:
-				DuccWorkJob job = (DuccWorkJob)duccWork;
-				JobInfo jobInfo = new JobInfo(job);
-				cacheManager(job, jobInfo);
-				sortedJobs.put(jobInfo, jobInfo);
-				break;
-			case Reservation:
-				DuccWorkReservation reservation = (DuccWorkReservation)duccWork;
-				ReservationInfo reservationInfo = new ReservationInfo(reservation);
-				cacheManager(reservation, reservationInfo);
-				sortedReservations.put(reservationInfo, reservationInfo);
-				break;
-			case Service:
-				DuccWorkJob service = (DuccWorkJob)duccWork;
-				JobInfo serviceInfo = new JobInfo(service);
-				cacheManager(service, serviceInfo);
-				sortedServices.put(serviceInfo, serviceInfo);
-				break;
+		case Job:
+			DuccWorkJob job = (DuccWorkJob)duccWork;
+			JobInfo jobInfo = new JobInfo(job);
+			cacheManager(job, jobInfo);
+			sortedJobs.put(jobInfo, jobInfo);
+			break;
+		case Reservation:
+			DuccWorkReservation reservation = (DuccWorkReservation)duccWork;
+			ReservationInfo reservationInfo = new ReservationInfo(reservation);
+			cacheManager(reservation, reservationInfo);
+			sortedReservations.put(reservationInfo, reservationInfo);
+			info= new Info(reservation);
+			cacheManager(reservation, info);
+			sortedCombinedReservations.put(info, info);
+			break;
+		case Service:
+			DuccWorkJob service = (DuccWorkJob)duccWork;
+			JobInfo serviceInfo = new JobInfo(service);
+			cacheManager(service, serviceInfo);
+			sortedServices.put(serviceInfo, serviceInfo);
+			ServiceDeploymentType sdt = service.getServiceDeploymentType();
+			if(sdt != null) {
+				switch(sdt) {
+				case other:
+					info = new Info(service);
+					sortedCombinedReservations.put(info, info);
+					break;
+				default:
+					break;
+				}
+			}
 		}
+		logger.trace(location, jobid, "sortedJobs:"+sortedJobs.size()+" ");
+		logger.trace(location, jobid, "sortedReservations:"+sortedReservations.size()+" ");
+		logger.trace(location, jobid, "sortedServices:"+sortedServices.size()+" ");
+		logger.trace(location, jobid, "sortedCombinedReservations:"+sortedCombinedReservations.size()+" ");
 	}
 	
 	public ConcurrentSkipListMap<JobInfo,JobInfo> getSortedJobs() {
@@ -173,6 +197,10 @@ public class DuccData {
 		return sortedReservations;
 	}
 	
+	public ConcurrentSkipListMap<Info,Info> getSortedCombinedReservations() {
+		return sortedCombinedReservations;
+	}
+	
 	public ConcurrentSkipListMap<JobInfo,JobInfo> getSortedServices() {
 		return sortedServices;
 	}

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/IListenerOrchestrator.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/IListenerOrchestrator.java?rev=1452891&r1=1452890&r2=1452891&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/IListenerOrchestrator.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/IListenerOrchestrator.java Tue Mar  5 16:52:32 2013
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+*/
 package org.apache.uima.ducc.ws;
 
 import org.apache.uima.ducc.transport.event.OrchestratorStateDuccEvent;

Added: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/Info.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/Info.java?rev=1452891&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/Info.java (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/Info.java Tue Mar  5 16:52:32 2013
@@ -0,0 +1,107 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+*/
+package org.apache.uima.ducc.ws;
+
+import org.apache.uima.ducc.transport.event.common.DuccWorkJob;
+import org.apache.uima.ducc.transport.event.common.DuccWorkReservation;
+import org.apache.uima.ducc.transport.event.common.IDuccWork;
+
+public class Info implements Comparable<Info> {
+
+	private IDuccWork _dw;
+	
+	public Info(DuccWorkJob job) {
+		_dw = job;
+	}
+	
+	public Info(DuccWorkReservation reservation) {
+		_dw = reservation;
+	}
+	
+	public IDuccWork getDuccWork() {
+		return _dw;
+	}
+	
+	public DuccWorkJob getJob() {
+		DuccWorkJob retVal = null;
+		if(_dw instanceof DuccWorkJob) {
+			retVal = (DuccWorkJob) _dw;
+		}
+		return retVal;
+	}
+	
+	public DuccWorkReservation getReservation() {
+		DuccWorkReservation retVal = null;
+		if(_dw instanceof DuccWorkReservation) {
+			retVal = (DuccWorkReservation) _dw;
+		}
+		return retVal;
+	}
+	
+	public boolean isOperational() {
+		return _dw.isOperational();
+	}
+	
+	@Override
+	public int compareTo(Info info) {
+		int retVal = 0;
+		IDuccWork dw1 = this._dw;
+		IDuccWork dw2 = info._dw;
+		long f1 = dw1.getDuccId().getFriendly();
+		long f2 = dw2.getDuccId().getFriendly();
+		if(f1 != f2) {
+			if(!dw1.isOperational() && dw2.isOperational()) {
+				retVal = 1;
+			}
+			else if(dw1.isOperational() && !dw2.isOperational()) {
+				retVal = -1;
+			}
+			else if(f1 > f2) {
+				retVal = -1;
+			}
+			else if(f1 < f2) {
+				retVal = 1;
+			}
+		}
+		return retVal;
+	}
+	
+	@Override 
+	public boolean equals(Object object) {
+		boolean retVal = false;
+		try {
+			IDuccWork dw1 = this._dw;
+			IDuccWork dw2 = (IDuccWork)object;
+			String s1 = dw1.getDuccId().toString();
+			String s2 = dw2.getDuccId().toString();
+			retVal = s1.equals(s2);
+		}
+		catch(Throwable t) {	
+		}
+		return retVal;
+	}
+	
+	@Override 
+	public int hashCode() {
+		IDuccWork dw = this._dw;
+		String s1 = dw.getDuccId().toString();
+		return s1.hashCode();
+	}
+
+}

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=1452891&r1=1452890&r2=1452891&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 Tue Mar  5 16:52:32 2013
@@ -61,12 +61,12 @@ import org.apache.uima.ducc.transport.ev
 import org.apache.uima.ducc.transport.event.common.IDuccUnits.MemoryUnits;
 import org.apache.uima.ducc.transport.event.common.IDuccWork;
 import org.apache.uima.ducc.transport.event.common.IDuccWorkJob;
-import org.apache.uima.ducc.transport.event.common.IDuccWorkService.ServiceDeploymentType;
 import org.apache.uima.ducc.transport.event.common.IRationale;
 import org.apache.uima.ducc.ws.DuccDaemonsData;
 import org.apache.uima.ducc.ws.DuccData;
 import org.apache.uima.ducc.ws.DuccDataHelper;
 import org.apache.uima.ducc.ws.DuccMachinesData;
+import org.apache.uima.ducc.ws.Info;
 import org.apache.uima.ducc.ws.JobInfo;
 import org.apache.uima.ducc.ws.MachineInfo;
 import org.apache.uima.ducc.ws.ReservationInfo;
@@ -921,60 +921,27 @@ public class DuccHandlerJsonFormat exten
 		
 		DuccData duccData = DuccData.getInstance();
 		
-		ConcurrentSkipListMap<ReservationInfo,ReservationInfo> sortedReservations = duccData.getSortedReservations();
-		ConcurrentSkipListMap<JobInfo, JobInfo> sortedServices = duccData.getSortedServices();
-		ConcurrentSkipListMap<Long, Object> sortedCombined = new ConcurrentSkipListMap<Long, Object>();
-		
+		ConcurrentSkipListMap<Info,Info> sortedCombinedReservations = duccData.getSortedCombinedReservations();
+
 		ArrayList<String> users = getReservationsUsers(request);
 		FilterUsersStyle filterUsersStyle = getFilterUsersStyle(request);
 		
-		if((sortedReservations.size() > 0) || (sortedServices.size() > 0)) {
-			Iterator<Entry<ReservationInfo, ReservationInfo>> iR = sortedReservations.entrySet().iterator();
+		if((sortedCombinedReservations.size() > 0)) {
+			int counter = 0;
+			Iterator<Entry<Info, Info>> iR = sortedCombinedReservations.entrySet().iterator();
 			while(iR.hasNext()) {
-				ReservationInfo reservationInfo = iR.next().getValue();
-				DuccWorkReservation reservation = reservationInfo.getReservation();
-				String user = reservation.getStandardInfo().getUser().trim();
-				boolean completed = reservation.isCompleted();
+				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)) {
-					Long key = new Long(reservation.getDuccId().getFriendly());
-					sortedCombined.put(key, reservation);
-				}
-			}
-			Iterator<Entry<JobInfo, JobInfo>> iS = sortedServices.entrySet().iterator();
-			while(iS.hasNext()) {
-				JobInfo jobInfo = iS.next().getValue();
-				DuccWorkJob job = jobInfo.getJob();
-				ServiceDeploymentType sdt = job.getServiceDeploymentType();
-				if(sdt != null) {
-					switch(sdt) {
-					case uima:
-					case custom:
-					default:
-						break;
-					case other:
-						String user = job.getStandardInfo().getUser().trim();
-						boolean completed = job.isCompleted();
-						if(isListEligible(users, filterUsersStyle, user, completed)) {
-							Long key = new Long(job.getDuccId().getFriendly());
-							sortedCombined.put(key, job);
-						}
-						break;
-					}
-				}
-			}
-			if(sortedCombined.size() > 0) {
-				int counter = 0;
-				Iterator<Long> keys = sortedCombined.descendingKeySet().iterator();
-				while(keys.hasNext()) {
-					Long key = keys.next();
-					Object object = sortedCombined.get(key);
-					if(object instanceof DuccWorkReservation) {
-						DuccWorkReservation reservation = (DuccWorkReservation) object;
+					if(dw instanceof DuccWorkReservation) {
+						DuccWorkReservation reservation = (DuccWorkReservation) dw;
 						JsonArray row = buildReservationRow(request, reservation, duccData);
 						data.add(row);
 					}
-					else if(object instanceof DuccWorkJob) {
-						DuccWorkJob job = (DuccWorkJob) object;
+					else if(dw instanceof DuccWorkJob) {
+						DuccWorkJob job = (DuccWorkJob) dw;
 						JsonArray row = buildReservationRow(request, job, duccData);
 						data.add(row);
 					}
@@ -986,38 +953,6 @@ public class DuccHandlerJsonFormat exten
 					}
 				}
 			}
-			else {
-				JsonArray row = new JsonArray();
-				// Terminate
-				row.add(new JsonPrimitive("no reservations meet criteria"));
-				// Id
-				row.add(new JsonPrimitive(""));
-				// Start
-				row.add(new JsonPrimitive(""));
-				// End
-				row.add(new JsonPrimitive(""));
-				// User
-				row.add(new JsonPrimitive(""));
-				// Class
-				row.add(new JsonPrimitive(""));
-				// Type
-				row.add(new JsonPrimitive(""));
-				// State
-				row.add(new JsonPrimitive(""));
-				// Reason
-				row.add(new JsonPrimitive(""));
-				// Allocation
-				row.add(new JsonPrimitive(""));
-				// User Processes
-				row.add(new JsonPrimitive(""));
-				// Size
-				row.add(new JsonPrimitive(""));
-				// List
-				row.add(new JsonPrimitive(""));
-				// Description
-				row.add(new JsonPrimitive(""));
-				data.add(row);
-			}
 		}
 		else {
 			JsonArray row = new JsonArray();

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=1452891&r1=1452890&r2=1452891&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 Tue Mar  5 16:52:32 2013
@@ -52,15 +52,14 @@ import org.apache.uima.ducc.transport.ev
 import org.apache.uima.ducc.transport.event.common.IDuccUnits.MemoryUnits;
 import org.apache.uima.ducc.transport.event.common.IDuccWork;
 import org.apache.uima.ducc.transport.event.common.IDuccWorkJob;
-import org.apache.uima.ducc.transport.event.common.IDuccWorkService.ServiceDeploymentType;
 import org.apache.uima.ducc.transport.event.common.IRationale;
 import org.apache.uima.ducc.ws.DuccDaemonsData;
 import org.apache.uima.ducc.ws.DuccData;
 import org.apache.uima.ducc.ws.DuccDataHelper;
 import org.apache.uima.ducc.ws.DuccMachinesData;
+import org.apache.uima.ducc.ws.Info;
 import org.apache.uima.ducc.ws.JobInfo;
 import org.apache.uima.ducc.ws.MachineInfo;
-import org.apache.uima.ducc.ws.ReservationInfo;
 import org.apache.uima.ducc.ws.registry.IServicesRegistry;
 import org.apache.uima.ducc.ws.registry.ServicesRegistry;
 import org.apache.uima.ducc.ws.registry.ServicesRegistryMap;
@@ -830,60 +829,27 @@ public class DuccHandlerLegacy extends D
 		
 		DuccData duccData = DuccData.getInstance();
 		
-		ConcurrentSkipListMap<ReservationInfo,ReservationInfo> sortedReservations = duccData.getSortedReservations();
-		ConcurrentSkipListMap<JobInfo, JobInfo> sortedServices = duccData.getSortedServices();
-		ConcurrentSkipListMap<Long, Object> sortedCombined = new ConcurrentSkipListMap<Long, Object>();
-		
+		ConcurrentSkipListMap<Info,Info> sortedCombinedReservations = duccData.getSortedCombinedReservations();
+
 		ArrayList<String> users = getReservationsUsers(request);
 		FilterUsersStyle filterUsersStyle = getFilterUsersStyle(request);
 		
-		if((sortedReservations.size() > 0) || (sortedServices.size() > 0)) {
-			Iterator<Entry<ReservationInfo, ReservationInfo>> iR = sortedReservations.entrySet().iterator();
+		if((sortedCombinedReservations.size() > 0)) {
+			int counter = 0;
+			Iterator<Entry<Info, Info>> iR = sortedCombinedReservations.entrySet().iterator();
 			while(iR.hasNext()) {
-				ReservationInfo reservationInfo = iR.next().getValue();
-				DuccWorkReservation reservation = reservationInfo.getReservation();
-				String user = reservation.getStandardInfo().getUser().trim();
-				boolean completed = reservation.isCompleted();
+				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)) {
-					Long key = new Long(reservation.getDuccId().getFriendly());
-					sortedCombined.put(key, reservation);
-				}
-			}
-			Iterator<Entry<JobInfo, JobInfo>> iS = sortedServices.entrySet().iterator();
-			while(iS.hasNext()) {
-				JobInfo jobInfo = iS.next().getValue();
-				DuccWorkJob job = jobInfo.getJob();
-				ServiceDeploymentType sdt = job.getServiceDeploymentType();
-				if(sdt != null) {
-					switch(sdt) {
-					case uima:
-					case custom:
-					default:
-						break;
-					case other:
-						String user = job.getStandardInfo().getUser().trim();
-						boolean completed = job.isCompleted();
-						if(isListEligible(users, filterUsersStyle, user, completed)) {
-							Long key = new Long(job.getDuccId().getFriendly());
-							sortedCombined.put(key, job);
-						}
-						break;
-					}
-				}
-			}
-			if(sortedCombined.size() > 0) {
-				int counter = 0;
-				Iterator<Long> keys = sortedCombined.descendingKeySet().iterator();
-				while(keys.hasNext()) {
-					Long key = keys.next();
-					Object object = sortedCombined.get(key);
-					if(object instanceof DuccWorkReservation) {
-						DuccWorkReservation reservation = (DuccWorkReservation) object;
+					if(dw instanceof DuccWorkReservation) {
+						DuccWorkReservation reservation = (DuccWorkReservation) dw;
 						sb.append(trGet(counter));
 						buildReservationsListEntry(request, sb, reservation.getDuccId(), reservation, duccData);
 					}
-					else if(object instanceof DuccWorkJob) {
-						DuccWorkJob job = (DuccWorkJob) object;
+					else if(dw instanceof DuccWorkJob) {
+						DuccWorkJob job = (DuccWorkJob) dw;
 						sb.append(trGet(counter));
 						buildReservationsListEntry(request, sb, job.getDuccId(), job, duccData);
 					}
@@ -895,11 +861,6 @@ public class DuccHandlerLegacy extends D
 					}
 				}
 			}
-			else {
-				sb.append("<tr>");
-				sb.append("<td>");
-				sb.append(messages.fetch("no reservations meet criteria"));
-			}
 		}
 		else {
 			sb.append("<tr>");