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/01/31 12:25:41 UTC
svn commit: r1440914 - in /uima/sandbox/uima-ducc/trunk:
uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/
uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/cli/
Author: degenaro
Date: Thu Jan 31 11:25:41 2013
New Revision: 1440914
URL: http://svn.apache.org/viewvc?rev=1440914&view=rev
Log:
UIMA-2627 Fix NPE in OR when submitting Job/Reservation/Service with missing value(s)
Modified:
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobSubmit.java
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationSubmit.java
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceSubmit.java
uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/cli/JobRequestProperties.java
uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/cli/ReservationRequestProperties.java
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobSubmit.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobSubmit.java?rev=1440914&r1=1440913&r2=1440914&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobSubmit.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobSubmit.java Thu Jan 31 11:25:41 2013
@@ -36,6 +36,7 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Properties;
+import java.util.Set;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
@@ -898,6 +899,29 @@ public class DuccJobSubmit extends DuccU
return DuccUiConstants.ERROR;
}
+ boolean missingValue = false;
+ Set<Object> keys = jobRequestProperties.keySet();
+ for(Object key : keys) {
+ if(JobRequestProperties.keys_requiring_values.contains(key)) {
+ Object oValue = jobRequestProperties.get(key);
+ if(oValue == null) {
+ duccMessageProcessor.err("missing value for: "+key);
+ missingValue = true;
+ }
+ else if(oValue instanceof String) {
+ String sValue = (String)oValue;
+ if(sValue.trim().length() < 1) {
+ duccMessageProcessor.err("missing value for: "+key);
+ missingValue = true;
+ }
+ }
+
+ }
+ }
+ if(missingValue) {
+ return DuccUiConstants.ERROR;
+ }
+
/*
* send to JM & get reply
*/
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationSubmit.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationSubmit.java?rev=1440914&r1=1440913&r2=1440914&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationSubmit.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationSubmit.java Thu Jan 31 11:25:41 2013
@@ -24,6 +24,7 @@ import java.lang.management.ManagementFa
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Properties;
+import java.util.Set;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
@@ -41,6 +42,7 @@ import org.apache.uima.ducc.transport.di
import org.apache.uima.ducc.transport.event.DuccEvent;
import org.apache.uima.ducc.transport.event.SubmitReservationDuccEvent;
import org.apache.uima.ducc.transport.event.SubmitReservationReplyDuccEvent;
+import org.apache.uima.ducc.transport.event.cli.JobSpecificationProperties;
import org.apache.uima.ducc.transport.event.cli.ReservationRequestProperties;
import org.apache.uima.ducc.transport.event.cli.ReservationSpecificationProperties;
import org.apache.uima.ducc.transport.event.cli.SpecificationProperties;
@@ -220,6 +222,30 @@ public class DuccReservationSubmit exten
* identify invoker
*/
reservationRequestProperties.setProperty(ReservationRequestProperties.key_submitter_pid_at_host, ManagementFactory.getRuntimeMXBean().getName());
+
+ boolean missingValue = false;
+ Set<Object> keys = reservationRequestProperties.keySet();
+ for(Object key : keys) {
+ if(ReservationRequestProperties.keys_requiring_values.contains(key)) {
+ Object oValue = reservationRequestProperties.get(key);
+ if(oValue == null) {
+ duccMessageProcessor.err("missing value for: "+key);
+ missingValue = true;
+ }
+ else if(oValue instanceof String) {
+ String sValue = (String)oValue;
+ if(sValue.trim().length() < 1) {
+ duccMessageProcessor.err("missing value for: "+key);
+ missingValue = true;
+ }
+ }
+
+ }
+ }
+ if(missingValue) {
+ return DuccUiConstants.ERROR;
+ }
+
/*
* send to Orchestrator & get reply
*/
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceSubmit.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceSubmit.java?rev=1440914&r1=1440913&r2=1440914&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceSubmit.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceSubmit.java Thu Jan 31 11:25:41 2013
@@ -28,6 +28,7 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
+import java.util.Set;
import java.util.Map.Entry;
import java.util.Properties;
@@ -50,6 +51,7 @@ import org.apache.uima.ducc.transport.di
import org.apache.uima.ducc.transport.event.DuccEvent;
import org.apache.uima.ducc.transport.event.SubmitServiceDuccEvent;
import org.apache.uima.ducc.transport.event.SubmitServiceReplyDuccEvent;
+import org.apache.uima.ducc.transport.event.cli.JobRequestProperties;
import org.apache.uima.ducc.transport.event.cli.ServiceRequestProperties;
import org.apache.uima.ducc.transport.event.cli.ServiceSpecificationProperties;
import org.apache.uima.ducc.transport.event.cli.SpecificationProperties;
@@ -669,6 +671,30 @@ public class DuccServiceSubmit extends D
* identify invoker
*/
serviceRequestProperties.setProperty(ServiceRequestProperties.key_submitter_pid_at_host, ManagementFactory.getRuntimeMXBean().getName());
+
+ boolean missingValue = false;
+ Set<Object> keys = serviceRequestProperties.keySet();
+ for(Object key : keys) {
+ if(ServiceRequestProperties.keys_requiring_values.contains(key)) {
+ Object oValue = serviceRequestProperties.get(key);
+ if(oValue == null) {
+ duccMessageProcessor.err("missing value for: "+key);
+ missingValue = true;
+ }
+ else if(oValue instanceof String) {
+ String sValue = (String)oValue;
+ if(sValue.trim().length() < 1) {
+ duccMessageProcessor.err("missing value for: "+key);
+ missingValue = true;
+ }
+ }
+
+ }
+ }
+ if(missingValue) {
+ return DuccUiConstants.ERROR;
+ }
+
/*
* send to JM & get reply
*/
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/cli/JobRequestProperties.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/cli/JobRequestProperties.java?rev=1440914&r1=1440913&r2=1440914&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/cli/JobRequestProperties.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/cli/JobRequestProperties.java Thu Jan 31 11:25:41 2013
@@ -19,7 +19,9 @@
package org.apache.uima.ducc.transport.event.cli;
import java.io.Serializable;
+import java.util.Arrays;
import java.util.Enumeration;
+import java.util.List;
import org.apache.uima.ducc.common.utils.DuccLogger;
@@ -56,6 +58,50 @@ public class JobRequestProperties extend
public static String key_id = "id";
public static String key_dpid = "dpid";
+ public static List<String> keys_requiring_values = Arrays.asList(
+ JobRequestProperties.key_signature,
+ JobRequestProperties.key_job_broker,
+ JobRequestProperties.key_job_endpoint,
+ JobRequestProperties.key_service_broker,
+ JobRequestProperties.key_service_endpoint,
+ JobRequestProperties.key_description,
+ JobRequestProperties.key_scheduling_class,
+ JobRequestProperties.key_submitter_pid_at_host,
+ key_user,
+ key_specification,
+ key_notifications,
+ key_log_directory,
+ key_working_directory,
+ key_scheduling_priority,
+ key_jvm,
+ key_driver_jvm_args,
+ key_driver_classpath,
+ key_driver_environment,
+ key_driver_memory_size,
+ key_driver_descriptor_CR,
+ key_driver_descriptor_CR_overrides,
+ key_driver_exception_handler,
+ key_process_jvm_args,
+ key_process_classpath,
+ key_process_environment,
+ key_process_memory_size,
+ key_process_DD,
+ key_process_descriptor_CM,
+ key_process_descriptor_CM_overrides,
+ key_process_descriptor_AE,
+ key_process_descriptor_AE_overrides,
+ key_process_descriptor_CC,
+ key_process_descriptor_CC_overrides,
+ key_process_deployments_max,
+ key_process_deployments_min,
+ key_process_initialization_failures_cap,
+ key_process_failures_limit,
+ key_process_thread_count,
+ key_process_get_meta_time_max,
+ key_process_per_item_time_max,
+ key_service_dependency
+ );
+
public void specification(DuccLogger logger) {
String methodName = "specification";
Enumeration<Object> keys = keys();
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/cli/ReservationRequestProperties.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/cli/ReservationRequestProperties.java?rev=1440914&r1=1440913&r2=1440914&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/cli/ReservationRequestProperties.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/cli/ReservationRequestProperties.java Thu Jan 31 11:25:41 2013
@@ -19,6 +19,8 @@
package org.apache.uima.ducc.transport.event.cli;
import java.io.Serializable;
+import java.util.Arrays;
+import java.util.List;
/**
* Request characteristics provided by user.
@@ -55,4 +57,18 @@ public class ReservationRequestPropertie
* node_list: list of assigned nodes
*/
public static String key_node_list = "node_list";
+
+ public static List<String> keys_requiring_values = Arrays.asList(
+ JobRequestProperties.key_signature,
+ JobRequestProperties.key_job_broker,
+ JobRequestProperties.key_job_endpoint,
+ JobRequestProperties.key_service_broker,
+ JobRequestProperties.key_service_endpoint,
+ JobRequestProperties.key_description,
+ JobRequestProperties.key_scheduling_class,
+ JobRequestProperties.key_submitter_pid_at_host,
+ key_user,
+ key_specification
+ );
+
}