{
String methodName = "handleDuccServletJobWorkitemsData";
duccLogger.trace(methodName, null, messages.fetch("enter"));
StringBuffer sb = new StringBuffer();
String jobNo = request.getParameter("id");
DuccWorkJob job = getJob(jobNo);
if(job != null) {
try {
String userId = duccWebSessionManager.getUserId(request);
WorkItemStateManager workItemStateManager = new WorkItemStateManager(job.getLogDirectory()+jobNo);
workItemStateManager.importData(userId);
ConcurrentSkipListMap<Long,IWorkItemState> map = workItemStateManager.getMap();
if( (map == null) || (map.size() == 0) ) {
sb.append("no data (map empty?)");
}
else {
ConcurrentSkipListMap<IWorkItemState,IWorkItemState> sortedMap = new ConcurrentSkipListMap<IWorkItemState,IWorkItemState>();
for (Entry<Long, IWorkItemState> entry : map.entrySet()) {
sortedMap.put(entry.getValue(), entry.getValue());
}
DuccMachinesData machinesData = DuccMachinesData.getInstance();
DecimalFormat formatter = new DecimalFormat("##0.00");
double time;
int counter = 0;
for (Entry<IWorkItemState, IWorkItemState> entry : sortedMap.entrySet()) {
StringBuffer row = new StringBuffer();
IWorkItemState wis = entry.getValue();
row.append(trGet(counter++));
if(counter > DuccConstants.workItemsDisplayMax) {
// SeqNo
row.append("<td align=\"right\">");
row.append("*****");
// Id
row.append("<td align=\"right\">");
row.append("*****");
// Status
row.append("<td align=\"right\">");
row.append("display");
// Queuing Time (sec)
row.append("<td align=\"right\">");
row.append("limit");
// Processing Time (sec)
row.append("<td align=\"right\">");
row.append("reached");
// Node (IP)
row.append("<td align=\"right\">");
row.append("*****");
// Node (Name)
row.append("<td align=\"right\">");
row.append("*****");
// PID
row.append("<td align=\"right\">");
row.append("*****");
sb.append(row);
duccLogger.warn(methodName, job.getDuccId(), "work items display max:"+DuccConstants.workItemsDisplayMax);
break;
}
// SeqNo
row.append("<td align=\"right\">");
row.append(wis.getSeqNo());