svn commit: r1839370 - /uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/OrchestratorComponent.java
Author: degenaro Date: Mon Aug 27 19:41:02 2018 New Revision: 1839370 URL: http://svn.apache.org/viewvc?rev=1839370=rev Log: UIMA-5860 DUCC Orchestrator (OR) NullPointerException (NPE) Modified: uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/OrchestratorComponent.java Modified: uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/OrchestratorComponent.java URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/OrchestratorComponent.java?rev=1839370=1839369=1839370=diff == --- uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/OrchestratorComponent.java (original) +++ uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/OrchestratorComponent.java Mon Aug 27 19:41:02 2018 @@ -657,6 +657,7 @@ implements Orchestrator { IDuccProcess process = duccEvent.getProcess(); DuccId processDuccId = getProcessDuccId(duccEvent); logger.debug(location, processDuccId, "process"); + DuccId dwId = OrchestratorCommonArea.getInstance().getProcessAccounting().getJobId(processDuccId); if(process == null) { sb.append("process:"+process+" "); sb.append("node:"+node+" "); @@ -688,9 +689,16 @@ implements Orchestrator { sb.append("processType:"+processType+" "); logger.error(location, jobid, sb.toString()); } + else if(dwId == null) { + sb.append("id:"+id+" "); + sb.append("node:"+node+" "); + sb.append("lifefcycleEvent:"+lifecycleEvent.name()+" "); + sb.append("processType:"+processType+" "); + sb.append("dwId:"+dwId+" "); + logger.error(location, jobid, sb.toString()); + } else { DuccWorkMap workMap = orchestratorCommonArea.getWorkMap(); - DuccId dwId = OrchestratorCommonArea.getInstance().getProcessAccounting().getJobId(processDuccId); IDuccWork dw = workMap.findDuccWork(dwId); DuccType dwType = dw.getDuccType(); sb.append("dwId:"+dwId+" ");
svn commit: r1839320 [1/2] - in /uima/uima-ducc/trunk: uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/ uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/config/ uima-ducc-agent/src/ma
Author: cwiklik Date: Mon Aug 27 13:31:17 2018 New Revision: 1839320 URL: http://svn.apache.org/viewvc?rev=1839320=rev Log: UIMA-5814 add support for agent quiesce and stop Added: uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/DuccAdminEventQuiesceAndStop.java uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/DuccAdminEventStop.java uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/TargetableDuccAdminEvent.java Modified: uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/NodeAgent.java uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/config/AgentConfiguration.java uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/event/AgentEventListener.java uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CGroupsManager.java uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/DuccCommandExecutor.java uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/ManagedProcess.java uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/DuccAdminEventStopMetrics.java uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/component/AbstractDuccComponent.java uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/DuccAdmin.java uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/main/PullService.java uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/main/ServiceWrapper.java uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/processor/uima/UimaAsServiceProcessor.java uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/protocol/builtin/DefaultServiceProtocolHandler.java uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/transport/IServiceTransport.java uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/transport/http/HttpServiceTransport.java uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/utils/Utils.java uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/IProcessState.java Modified: uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/NodeAgent.java URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/NodeAgent.java?rev=1839320=1839319=1839320=diff == --- uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/NodeAgent.java (original) +++ uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/NodeAgent.java Mon Aug 27 13:31:17 2018 @@ -31,11 +31,16 @@ import java.io.ObjectOutputStream; import java.net.InetAddress; import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; +import java.util.Timer; +import java.util.TimerTask; import java.util.TreeMap; +import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; @@ -60,6 +65,8 @@ import org.apache.uima.ducc.agent.metric import org.apache.uima.ducc.common.Node; import org.apache.uima.ducc.common.NodeIdentity; import org.apache.uima.ducc.common.admin.event.DuccAdminEvent; +import org.apache.uima.ducc.common.admin.event.DuccAdminEventQuiesceAndStop; +import org.apache.uima.ducc.common.admin.event.DuccAdminEventStop; import org.apache.uima.ducc.common.admin.event.DuccAdminEventStopMetrics; import org.apache.uima.ducc.common.boot.DuccDaemonRuntimeProperties; import org.apache.uima.ducc.common.component.AbstractDuccComponent; @@ -113,7 +120,7 @@ public class NodeAgent extends AbstractD public static String cgroupFailureReason; // Map of known processes this agent is managing. This map is published // at regular intervals as part of agent's inventory update. - private Map inventory = new HashMap(); + private HashMap inventory = new HashMap(); // Semaphore controlling access to inventory Map private Semaphore inventorySemaphore = new Semaphore(1); @@ -305,7 +312,7 @@ public class NodeAgent extends AbstractD /* * Remove ManagedProcess from map and send lifecycle event */ - private void processUndeploy(ManagedProcess mp) { + private void processUndeploy(ManagedProcess mp,
svn commit: r1839320 [2/2] - in /uima/uima-ducc/trunk: uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/ uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/config/ uima-ducc-agent/src/ma
Modified: uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/protocol/builtin/DefaultServiceProtocolHandler.java URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/protocol/builtin/DefaultServiceProtocolHandler.java?rev=1839320=1839319=1839320=diff == --- uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/protocol/builtin/DefaultServiceProtocolHandler.java (original) +++ uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/protocol/builtin/DefaultServiceProtocolHandler.java Mon Aug 27 13:31:17 2018 @@ -43,6 +43,7 @@ import org.apache.uima.ducc.ps.service.p import org.apache.uima.ducc.ps.service.transport.IServiceTransport; import org.apache.uima.ducc.ps.service.transport.TransportException; import org.apache.uima.ducc.ps.service.transport.XStreamUtils; +import org.apache.uima.ducc.ps.service.utils.Utils; import org.apache.uima.util.Level; import org.apache.uima.util.Logger; @@ -291,10 +292,12 @@ public class DefaultServiceProtocolHandl break; } catch (Exception e) { + logger.log(Level.WARNING,"",e); } } stopLatch.countDown(); + System.out.println(Utils.getTimestamp()+">>> "+Utils.getShortClassname(this.getClass())+".call() >> Thread ["+Thread.currentThread().getId()+"] "+ " ProtocolHandler stopped requesting new tasks - Stopping processor"); logger.log(Level.INFO,"ProtocolHandler stopped requesting new tasks - Stopping processor"); if ( processor != null ) { @@ -334,15 +337,23 @@ public class DefaultServiceProtocolHandl } @Override public void quiesceAndStop() { + // Use System.out since the logger's ShutdownHook may have closed streams + System.out.println(Utils.getTimestamp()+">>> "+Utils.getShortClassname(this.getClass())+".queisceAndStop()"); + logger.log(Level.INFO, this.getClass().getName()+" quiesceAndStop() called"); + // change state of transport to not running but keep connection open + // so that other threads can quiesce (send results) + transport.stop(true); + quiescing = true; running = false; - logger.log(Level.INFO, this.getClass().getName()+" quiesceAndStop() called"); try { // wait for process threads to terminate stopLatch.await(); } catch( Exception e ) { } + // Use System.out since the logger's ShutdownHook may have closed streams + System.out.println(Utils.getTimestamp()+">>> "+Utils.getShortClassname(this.getClass())+".queisceAndStop() All process threads completed quiesce"); logger.log(Level.INFO, this.getClass().getName()+" All process threads completed quiesce"); } @Override Modified: uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/transport/IServiceTransport.java URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/transport/IServiceTransport.java?rev=1839320=1839319=1839320=diff == --- uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/transport/IServiceTransport.java (original) +++ uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/transport/IServiceTransport.java Mon Aug 27 13:31:17 2018 @@ -29,6 +29,6 @@ public interface IServiceTransport exten // initialize transport public void initialize() throws ServiceInitializationException; // stop transport - public void stop(); + public void stop(boolean quiesce); public void addRequestorInfo(IMetaTaskTransaction transaction); } Modified: uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/transport/http/HttpServiceTransport.java URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/transport/http/HttpServiceTransport.java?rev=1839320=1839319=1839320=diff == --- uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/transport/http/HttpServiceTransport.java (original) +++
svn commit: r1839321 - /uima/uima-ducc/trunk/uima-ducc-pullservice/src/test/java/org/apache/uima/ducc/ps/transport/JunitProtocolHandlerTestCase.java
Author: cwiklik Date: Mon Aug 27 13:33:58 2018 New Revision: 1839321 URL: http://svn.apache.org/viewvc?rev=1839321=rev Log: UIMA-5814 added support for agent quiesce and stop Modified: uima/uima-ducc/trunk/uima-ducc-pullservice/src/test/java/org/apache/uima/ducc/ps/transport/JunitProtocolHandlerTestCase.java Modified: uima/uima-ducc/trunk/uima-ducc-pullservice/src/test/java/org/apache/uima/ducc/ps/transport/JunitProtocolHandlerTestCase.java URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-pullservice/src/test/java/org/apache/uima/ducc/ps/transport/JunitProtocolHandlerTestCase.java?rev=1839321=1839320=1839321=diff == --- uima/uima-ducc/trunk/uima-ducc-pullservice/src/test/java/org/apache/uima/ducc/ps/transport/JunitProtocolHandlerTestCase.java (original) +++ uima/uima-ducc/trunk/uima-ducc-pullservice/src/test/java/org/apache/uima/ducc/ps/transport/JunitProtocolHandlerTestCase.java Mon Aug 27 13:33:58 2018 @@ -122,14 +122,14 @@ public class JunitProtocolHandlerTestCas public void stop() { threadPool.shutdown(); protocolHandler.stop(); - transport.stop(); + transport.stop(false); processor.stop(); } @Override public void quiesceAndStop() { protocolHandler.quiesceAndStop(); threadPool.shutdown(); - transport.stop(); + transport.stop(true); processor.stop(); } @Override
svn commit: r1839329 - /uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerHttpRequestFilter.java
Author: degenaro Date: Mon Aug 27 14:03:40 2018 New Revision: 1839329 URL: http://svn.apache.org/viewvc?rev=1839329=rev Log: UIMA-5855 DUCC Web Server (WS) http -> https redirect does not include query string Modified: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerHttpRequestFilter.java Modified: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerHttpRequestFilter.java URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerHttpRequestFilter.java?rev=1839329=1839328=1839329=diff == --- uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerHttpRequestFilter.java (original) +++ uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerHttpRequestFilter.java Mon Aug 27 14:03:40 2018 @@ -22,6 +22,7 @@ import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; +import java.net.URLDecoder; import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicLong; @@ -278,6 +279,11 @@ public class DuccHandlerHttpRequestFilte String reqUri = request.getRequestURI(); if(isRestrictedUri(reqUri)) { String url = request.getRequestURL().toString(); + String encodedQS = request.getQueryString(); + if(encodedQS != null) { + String qs = URLDecoder.decode(encodedQS, "UTF-8"); + url = url+"?"+qs; + } String portHttps = ""+ConfigValue.PortHttps.getInt(DuccPropertiesResolver.get(DuccPropertiesResolver.ducc_ws_port_ssl)); String portHttp = ""+ConfigValue.PortHttp.getInt(DuccPropertiesResolver.get(DuccPropertiesResolver.ducc_ws_port)); String s1Before = "http"+":";
svn commit: r1839326 - in /uima/uima-ducc/trunk: uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/DefaultNodeMetricsProcessor.java uima-ducc-common/src/main/java/org/apache/uima/duc
Author: cwiklik Date: Mon Aug 27 13:41:44 2018 New Revision: 1839326 URL: http://svn.apache.org/viewvc?rev=1839326=rev Log: UIMA-5858 publish agent state in node metrics Modified: uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/DefaultNodeMetricsProcessor.java uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/node/metrics/NodeMetrics.java Modified: uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/DefaultNodeMetricsProcessor.java URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/DefaultNodeMetricsProcessor.java?rev=1839326=1839325=1839326=diff == --- uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/DefaultNodeMetricsProcessor.java (original) +++ uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/DefaultNodeMetricsProcessor.java Mon Aug 27 13:41:44 2018 @@ -80,7 +80,9 @@ public class DefaultNodeMetricsProcessor NodeMetrics nodeMetrics = new NodeMetrics(agent.getIdentity(), nmiFuture.get(), loadFuture.get(), cpuInfo, nuiFuture.get(), cpuReportingEnabled); - + if ( agent.isStopping()) { + nodeMetrics.disableNode(); // sends Unavailable status to clients (RM,WS) + } //Node node = new DuccNode(new NodeIdentity(), nodeMetrics); // jrc 2011-07-30 I think this needs to be agent.getIdentity(), not create a new identity. Node node = new DuccNode(agent.getIdentity(), nodeMetrics, agent.useCgroups); Modified: uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/node/metrics/NodeMetrics.java URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/node/metrics/NodeMetrics.java?rev=1839326=1839325=1839326=diff == --- uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/node/metrics/NodeMetrics.java (original) +++ uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/node/metrics/NodeMetrics.java Mon Aug 27 13:41:44 2018 @@ -26,6 +26,8 @@ import org.apache.uima.ducc.common.agent public class NodeMetrics implements Serializable { + public enum NodeStatus {Available, UnAvailable}; + private static final long serialVersionUID = 4646364817769237774L; private NodeLoadAverage nodeLoadAverage; private NodeMemory nodeMemory; @@ -33,6 +35,7 @@ public class NodeMetrics implements Seri private NodeIdentity nodeIdentity; TreeMap nodeUsersMap; private boolean cpuReportingEnabled = false; + private NodeStatus nodeStatus = NodeStatus.Available; public NodeMetrics(NodeIdentity nodeIdentity, NodeMemory nodeMemory, NodeLoadAverage nodeLoadAverage , NodeCpuInfo nodeCpu, TreeMap userProcessMap, boolean cpuReportingEnabled) { this.nodeIdentity = nodeIdentity; @@ -49,6 +52,12 @@ public class NodeMetrics implements Seri public boolean isCpuReportingEnabled() { return cpuReportingEnabled; } + public NodeStatus getNodeStatus() { + return nodeStatus; + } + public void disableNode() { + nodeStatus = NodeStatus.UnAvailable; + } public NodeIdentity getNodeIdentity() { return nodeIdentity; }
svn commit: r1839334 - in /uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws: server/nodeviz/VisualizedHost.java utils/BasicsHelper.java
Author: degenaro Date: Mon Aug 27 14:19:48 2018 New Revision: 1839334 URL: http://svn.apache.org/viewvc?rev=1839334=rev Log: UIMA-5857 DUCC Web Server (WS) NumberFormatException Added: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/utils/BasicsHelper.java (with props) Modified: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/nodeviz/VisualizedHost.java Modified: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/nodeviz/VisualizedHost.java URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/nodeviz/VisualizedHost.java?rev=1839334=1839333=1839334=diff == --- uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/nodeviz/VisualizedHost.java (original) +++ uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/nodeviz/VisualizedHost.java Mon Aug 27 14:19:48 2018 @@ -27,6 +27,7 @@ import java.util.List; import org.apache.uima.ducc.common.utils.DuccLogger; import org.apache.uima.ducc.transport.event.common.IDuccTypes.DuccType; import org.apache.uima.ducc.ws.MachineInfo; +import org.apache.uima.ducc.ws.utils.BasicsHelper; class VisualizedHost { @@ -53,8 +54,8 @@ class VisualizedHost this.quantum = quantum; this.name = NodeViz.strip(info.getName()); this.ip = info.getIp(); -this.mem_total = Integer.parseInt(info.getMemTotal()); -this.mem_reserve = Integer.parseInt(info.getMemReserve()); +this.mem_total = BasicsHelper.safeString2Int(info.getMemTotal()); +this.mem_reserve = BasicsHelper.safeString2Int(info.getMemReserve()); this.shares_reserve = (mem_reserve / quantum); this.shares_free = shares_reserve; } Added: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/utils/BasicsHelper.java URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/utils/BasicsHelper.java?rev=1839334=auto == --- uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/utils/BasicsHelper.java (added) +++ uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/utils/BasicsHelper.java Mon Aug 27 14:19:48 2018 @@ -0,0 +1,44 @@ +/* + * 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.utils; + +import org.apache.uima.ducc.common.utils.DuccLogger; +import org.apache.uima.ducc.common.utils.id.DuccId; + +public class BasicsHelper { + + private static DuccLogger logger = DuccLogger.getLogger(BasicsHelper.class); + private static DuccId jobid = null; + + public static int safeString2Int(String value) { + return safeString2Int(value,0); + } + + public static int safeString2Int(String value, int defaultValue) { + String location = "safeString2Int"; + int retVal = defaultValue; + try { + retVal = Integer.parseInt(value); + } + catch(Exception e) { + logger.debug(location, jobid, e); + } + return retVal; + } +} Propchange: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/utils/BasicsHelper.java -- svn:eol-style = native
svn commit: r1839336 - in /uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server: DuccHandlerClassic.java DuccHandlerJsonFormat.java
Author: degenaro Date: Mon Aug 27 14:48:53 2018 New Revision: 1839336 URL: http://svn.apache.org/viewvc?rev=1839336=rev Log: UIMA-5859 DUCC Web Server (WS) java.lang.NullPointerException Modified: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java Modified: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java?rev=1839336=1839335=1839336=diff == --- uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java (original) +++ uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java Mon Aug 27 14:48:53 2018 @@ -2161,7 +2161,11 @@ public class DuccHandlerClassic extends Map> topicAttributes = brokerHelper.getEntityAttributes(); - if(topicAttributes.size() > 0) { + int taSize = 0; + if(topicAttributes != null) { + taSize = topicAttributes.size(); + } + if(taSize > 0) { for(Entry> entry : topicAttributes.entrySet()) { String topic = entry.getKey(); String attrValue; Modified: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java?rev=1839336=1839335=1839336=diff == --- uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java (original) +++ uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java Mon Aug 27 14:48:53 2018 @@ -2089,7 +2089,11 @@ public class DuccHandlerJsonFormat exten Map> topicAttributes = brokerHelper.getEntityAttributes(); - if(topicAttributes.size() > 0) { + int taSize = 0; + if(topicAttributes != null) { + taSize = topicAttributes.size(); + } + if(taSize > 0) { for(Entry> entry : topicAttributes.entrySet()) { String topic = entry.getKey(); String attrValue;