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 2015/12/08 20:28:17 UTC

svn commit: r1718679 - in /uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws: db/ db/DbMachine.java db/DbQuery.java db/IDbMachine.java server/DuccHandlerClassic.java server/DuccHandlerJsonFormat.java server/Helper.java

Author: degenaro
Date: Tue Dec  8 19:28:17 2015
New Revision: 1718679

URL: http://svn.apache.org/viewvc?rev=1718679&view=rev
Log:
UIMA-4704 DUCC Web Server (WS) Machine page support for Database query to determine up/down status

Added:
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/DbMachine.java   (with props)
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/DbQuery.java   (with props)
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/IDbMachine.java   (with props)
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/Helper.java   (with props)
Modified:
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java

Added: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/DbMachine.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/DbMachine.java?rev=1718679&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/DbMachine.java (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/DbMachine.java Tue Dec  8 19:28:17 2015
@@ -0,0 +1,135 @@
+/*
+ * 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.db;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class DbMachine implements IDbMachine{
+	
+	private Map<String, Object> map = new HashMap<String, Object>();
+	
+	private enum Key { 
+		classes, 		// [weekly urgent background normal reserve JobDriver high debug low standalone fixed] 
+		reservable,		// [true]
+		share_order,	// [2]
+		assignments,	// [0] 
+		blacklisted,	// [false]
+		memory,			// [30]
+		online,			// [true]
+		ip,				// [192.168.4.4]
+		heartbeats,		// [0]
+		nodepool,		// [--default--]
+		shares_left,	// [2]
+		quantum,		// [15]
+		name,			// [bluejws67-4]
+		responsive,		// [true]
+		};
+	
+	public DbMachine(Map<String, Object> map) {
+		initMap(map);
+	}
+	
+	private void initMap(Map<String, Object> value) {
+		if(value != null) {
+			map.putAll(value);
+		}
+	}
+	
+	public List<String> getClasses() {
+		List<String> retVal = new ArrayList<String>();
+		String classes = (String) map.get(Key.classes.name());
+		if(classes != null) {
+			String[] array = classes.split("\\s+");
+			if(array != null) {
+				retVal = Arrays.asList(array);
+			}
+		}
+		return retVal;
+	}
+	
+	public Boolean getReservable() {
+		Boolean retVal = (Boolean) map.get(Key.reservable.name());
+		return retVal;
+	}
+	
+	public Integer getShareOrder() {
+		Integer retVal = (Integer) map.get(Key.share_order.name());
+		return retVal;
+	}
+	
+	public Integer getAssignments() {
+		Integer retVal = (Integer) map.get(Key.assignments.name());
+		return retVal;
+	}
+	
+	public Boolean getBlacklisted() {
+		Boolean retVal = (Boolean) map.get(Key.blacklisted.name());
+		return retVal;
+	}
+	
+	public Integer getMemory() {
+		Integer retVal = (Integer) map.get(Key.memory.name());
+		return retVal;
+	}
+	
+	public Boolean getOnline() {
+		Boolean retVal = (Boolean) map.get(Key.online.name());
+		return retVal;
+	}
+	
+	public String getIp() {
+		String retVal = (String) map.get(Key.ip.name());
+		return retVal;
+	}
+	
+	public Integer getHeartbeats() {
+		Integer retVal = (Integer) map.get(Key.heartbeats.name());
+		return retVal;
+	}
+	
+	public String getNodePool() {
+		String retVal = (String) map.get(Key.nodepool.name());
+		return retVal;
+	}
+	
+	public Integer getSharesLeft() {
+		Integer retVal = (Integer) map.get(Key.shares_left.name());
+		return retVal;
+	}
+	
+	public Integer getQuantum() {
+		Integer retVal = (Integer) map.get(Key.quantum.name());
+		return retVal;
+	}
+	
+	public String getName() {
+		String retVal = (String) map.get(Key.name.name());
+		return retVal;
+	}
+	
+	public Boolean getResponsive() {
+		Boolean retVal = (Boolean) map.get(Key.responsive.name());
+		return retVal;
+	}
+
+}

Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/DbMachine.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/DbMachine.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/DbQuery.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/DbQuery.java?rev=1718679&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/DbQuery.java (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/DbQuery.java Tue Dec  8 19:28:17 2015
@@ -0,0 +1,126 @@
+/*
+ * 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.db;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.apache.uima.ducc.common.persistence.rm.IRmPersistence;
+import org.apache.uima.ducc.common.persistence.rm.RmPersistenceFactory;
+import org.apache.uima.ducc.common.utils.DuccLogger;
+import org.apache.uima.ducc.common.utils.DuccLoggerComponents;
+import org.apache.uima.ducc.common.utils.DuccPropertiesResolver;
+import org.apache.uima.ducc.common.utils.IDuccLoggerComponents;
+import org.apache.uima.ducc.common.utils.id.DuccId;
+
+public class DbQuery {
+
+	private static DuccLogger logger = DuccLoggerComponents.getWsLogger(DbQuery.class.getName());
+	private static DuccId jobid = null;
+	
+	private static DbQuery instance = null;
+	
+	private static boolean enabled = true;
+	
+	private IRmPersistence persistence = null;
+	
+	private static String component = IDuccLoggerComponents.abbrv_webServer;
+	
+	static {
+		synchronized(DbQuery.class) {
+			if(instance == null) {
+				instance = new DbQuery();
+			}
+		}
+	}
+	
+	private DbQuery() {
+		DuccPropertiesResolver dpr = DuccPropertiesResolver.getInstance();
+		String value;
+		value = dpr.getProperty(DuccPropertiesResolver.ducc_database_host);
+		if(value != null) {
+			if(value.equalsIgnoreCase(DuccPropertiesResolver.ducc_database_disabled)) {
+				enabled = false;
+			}
+		}
+		persistence = RmPersistenceFactory.getInstance(this.getClass().getName(),component);
+	}
+	
+	public static DbQuery getInstance() {
+		return instance;
+	}
+
+	public boolean isEnabled() {
+		return enabled;
+	}
+	
+	public static void dumpMap(Map<String, IDbMachine> dbMachineMap) {
+		String location = "dumpMap";
+		if(dbMachineMap != null) {
+			if(!dbMachineMap.isEmpty()) {
+				for(Entry<String, IDbMachine> entry : dbMachineMap.entrySet()) {
+					String key = entry.getKey();
+					String value = entry.getValue().getIp();
+					logger.debug(location, jobid, "host="+key+" "+"ip="+value);
+				}
+			}
+			else {
+				logger.debug(location, jobid, "map is empty");
+			}
+		}
+		else {
+			logger.debug(location, jobid, "map is null");
+		}
+	}
+	
+	public Map<String, IDbMachine> getMapMachines() { 
+		String location = "getMapMachines";
+		Map<String, IDbMachine> retVal = new HashMap<String, IDbMachine>();
+		if(isEnabled()) {
+			try {
+				Map<String, Map<String, Object>> state = persistence.getAllMachines();
+				if(!state.isEmpty()) {
+					for ( String key : state.keySet() ) {
+						Map<String, Object> entry = state.get(key);
+						DbMachine value = new DbMachine(entry);
+						retVal.put(key, value);
+					}
+				}
+				else {
+					logger.info(location, jobid, "map is empty");
+				}
+			}
+			catch(Exception e) {
+				logger.error(location, jobid, e);
+			}
+		}
+		else {
+			logger.info(location, jobid, "enabled="+enabled);
+		}
+		dumpMap(retVal);
+		return retVal;
+	}
+	
+	public void close() {
+		if(persistence != null) {
+			persistence.close();
+		}
+	}
+}

Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/DbQuery.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/DbQuery.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/IDbMachine.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/IDbMachine.java?rev=1718679&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/IDbMachine.java (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/IDbMachine.java Tue Dec  8 19:28:17 2015
@@ -0,0 +1,35 @@
+/*
+ * 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.db;
+
+public interface IDbMachine {
+	public Boolean getReservable();	
+	public Integer getShareOrder();	
+	public Integer getAssignments();	
+	public Boolean getBlacklisted();	
+	public Integer getMemory();	
+	public Boolean getOnline();
+	public String getIp();
+	public Integer getHeartbeats();
+	public String getNodePool();
+	public Integer getSharesLeft();
+	public Integer getQuantum();
+	public String getName();
+	public Boolean getResponsive();
+}

Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/IDbMachine.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/IDbMachine.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java?rev=1718679&r1=1718678&r2=1718679&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java Tue Dec  8 19:28:17 2015
@@ -72,10 +72,12 @@ import org.apache.uima.ducc.ws.DuccMachi
 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.db.DbQuery;
+import org.apache.uima.ducc.ws.db.IDbMachine;
 import org.apache.uima.ducc.ws.helper.BrokerHelper;
+import org.apache.uima.ducc.ws.helper.BrokerHelper.FrameworkAttribute;
 import org.apache.uima.ducc.ws.helper.DatabaseHelper;
 import org.apache.uima.ducc.ws.helper.EntityInfo;
-import org.apache.uima.ducc.ws.helper.BrokerHelper.FrameworkAttribute;
 import org.apache.uima.ducc.ws.registry.ServiceInterpreter.StartState;
 import org.apache.uima.ducc.ws.registry.ServicesRegistry;
 import org.apache.uima.ducc.ws.registry.sort.IServiceAdapter;
@@ -1605,6 +1607,8 @@ public class DuccHandlerClassic extends
 		StringBuffer row;
 		StringBuffer data = new StringBuffer();
 		
+		Map<String, IDbMachine> dbMachineMap = DbQuery.getInstance().getMapMachines();
+		
 		DuccMachinesData instance = DuccMachinesData.getInstance();
 		
 		MachineFactsList factsList = instance.getMachineFactsList();
@@ -1682,14 +1686,16 @@ public class DuccHandlerClassic extends
 				row.append((trGet(counter)));
 				// Status
 				StringBuffer sb = new StringBuffer();
-				String status = facts.status;
+				String[] machineStatus = Helper.getMachineStatus(facts, dbMachineMap);
+				String status = machineStatus[0];
+				hover = "title=\""+machineStatus[1]+"\"";
 				if(status.equals("down")) {
-					sb.append("<span class=\"health_red\""+">");
+					sb.append("<span "+hover+" class=\"health_red\""+">");
 					sb.append(status);
 					sb.append("</span>");
 				}
 				else if(status.equals("up")) {
-					sb.append("<span class=\"health_green\""+">");
+					sb.append("<span "+hover+"class=\"health_green\""+">");
 					sb.append(status);
 					sb.append("</span>");
 				}

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=1718679&r1=1718678&r2=1718679&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 Dec  8 19:28:17 2015
@@ -77,6 +77,8 @@ 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.db.DbQuery;
+import org.apache.uima.ducc.ws.db.IDbMachine;
 import org.apache.uima.ducc.ws.helper.BrokerHelper;
 import org.apache.uima.ducc.ws.helper.DatabaseHelper;
 import org.apache.uima.ducc.ws.helper.EntityInfo;
@@ -1324,6 +1326,8 @@ public class DuccHandlerJsonFormat exten
 		JsonArray row;
 		StringBuffer sb;
 		
+		Map<String, IDbMachine> dbMachineMap = DbQuery.getInstance().getMapMachines();
+		
 		DuccMachinesData instance = DuccMachinesData.getInstance();
 		
 		MachineFactsList factsList = instance.getMachineFactsList();
@@ -1379,14 +1383,16 @@ public class DuccHandlerJsonFormat exten
 				row = new JsonArray();
 				// Status
 				sb = new StringBuffer();
-				String status = facts.status;
+				String[] machineStatus = Helper.getMachineStatus(facts, dbMachineMap);
+				String status = machineStatus[0];
+				hover = "title=\""+machineStatus[1]+"\"";
 				if(status.equals("down")) {
-					sb.append("<span class=\"health_red\""+">");
+					sb.append("<span "+hover+" class=\"health_red\""+">");
 					sb.append(status);
 					sb.append("</span>");
 				}
 				else if(status.equals("up")) {
-					sb.append("<span class=\"health_green\""+">");
+					sb.append("<span "+hover+"class=\"health_green\""+">");
 					sb.append(status);
 					sb.append("</span>");
 				}
@@ -2054,10 +2060,14 @@ public class DuccHandlerJsonFormat exten
 		duccLogger.trace(methodName, jobid, messages.fetch("enter"));
 		StringBuffer sb = new StringBuffer();
 		
+		Map<String, IDbMachine> dbMachineMap = DbQuery.getInstance().getMapMachines();
+		
 		DuccMachinesData instance = DuccMachinesData.getInstance();
 		
 		MachineFactsList factsList = instance.getMachineFactsList();
 		
+		Helper.updateMachineStatus(factsList, dbMachineMap);
+		
 		Gson gson = new Gson();
 		String jSon = gson.toJson(factsList);
 		sb.append(jSon);

Added: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/Helper.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/Helper.java?rev=1718679&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/Helper.java (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/Helper.java Tue Dec  8 19:28:17 2015
@@ -0,0 +1,93 @@
+package org.apache.uima.ducc.ws.server;
+
+import java.util.Map;
+
+import org.apache.uima.ducc.cli.ws.json.MachineFacts;
+import org.apache.uima.ducc.cli.ws.json.MachineFactsList;
+import org.apache.uima.ducc.ws.db.IDbMachine;
+
+public class Helper {
+	
+	// up: responsive == true && online == true && blacklisted == false
+	
+	public enum MachineStatus { up, down, unknown };
+	
+	private static String[] getMachineStatusWs(MachineFacts facts, Map<String, IDbMachine> dbMachineMap) {
+		String[] retVal = null;
+		if(facts != null) {
+			if(facts.status != null) {
+				if(facts.status.equals("up")) {
+					retVal = new String[2];
+					retVal[0] = facts.status;
+					retVal[1] = "";
+				}
+				else if(facts.status.equals("down")) {
+					retVal = new String[2];
+					retVal[0] = facts.status;
+					retVal[1] = "heartbeat=missing";
+				}
+			}
+		}
+		return retVal;
+	}
+	
+	private static String[] getMachineStatusDb(MachineFacts facts, Map<String, IDbMachine> dbMachineMap) {
+		String[] retVal = null;
+		if(facts != null) {
+			if(facts.status != null) {
+				if(dbMachineMap != null) {
+					IDbMachine dbMachine = dbMachineMap.get(facts.name);
+					if(dbMachine != null) {
+						Boolean responsive = dbMachine.getResponsive();
+						Boolean online = dbMachine.getOnline();
+						Boolean blacklisted = dbMachine.getBlacklisted();
+						StringBuffer sb = new StringBuffer();
+						sb.append("responsive="+responsive);
+						sb.append(" ");
+						sb.append("online="+online);
+						sb.append(" ");
+						sb.append("blacklisted="+blacklisted);
+						retVal = new String[2];
+						retVal[0] = MachineStatus.down.name();
+						retVal[1] = sb.toString();
+						if(responsive) {
+							if(online) {
+								if(!blacklisted) {
+									retVal[0] = MachineStatus.up.name();
+								}
+							}
+						}
+					}
+				}
+			}
+		}
+		return retVal;
+	}
+	
+	public static String[] getMachineStatus(MachineFacts facts, Map<String, IDbMachine> dbMachineMap) {
+		String[] retVal = null;
+		if(retVal == null) {
+			retVal = getMachineStatusDb(facts, dbMachineMap);
+		}
+		if(retVal == null) {
+			retVal = getMachineStatusWs(facts, dbMachineMap);
+		}
+		if(retVal == null) {
+			retVal = new String[2];
+			retVal[0] = facts.status;
+			retVal[1] = "";
+		}
+		return retVal;
+	}
+	
+	public static void updateMachineStatus(MachineFactsList factsList, Map<String, IDbMachine> dbMachineMap) {
+		if(factsList!= null) {
+			if(dbMachineMap != null) {
+				for(MachineFacts facts : factsList) {
+					String[] machineStatus = getMachineStatus(facts, dbMachineMap);
+					facts.status = machineStatus[0];
+				}
+			}
+		}
+	}
+}

Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/Helper.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/Helper.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain