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