Author: burn
Date: Thu May 19 15:17:40 2016
New Revision: 1744595

URL: http://svn.apache.org/viewvc?rev=1744595&view=rev
Log:
UIMA-4922 Improve error msg when the classes or nodes files are misconfigured

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/DuccManagedReservationSubmit.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/DuccServiceApi.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/AllInOneLauncher.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=1744595&r1=1744594&r2=1744595&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 May 19 15:17:40 2016
@@ -23,6 +23,7 @@ import java.util.Properties;
 
 import org.apache.uima.ducc.cli.aio.AllInOneLauncher;
 import org.apache.uima.ducc.common.utils.DuccSchedulerClasses;
+import org.apache.uima.ducc.common.utils.IllegalConfigurationException;
 import org.apache.uima.ducc.transport.event.IDuccContext.DuccContext;
 import org.apache.uima.ducc.transport.event.SubmitJobDuccEvent;
 import org.apache.uima.ducc.transport.event.SubmitJobReplyDuccEvent;
@@ -184,15 +185,19 @@ public class DuccJobSubmit
         String scheduling_class = null;
          String user_scheduling_class = null;
          String pname = UiOption.SchedulingClass.pname();
-         DuccSchedulerClasses duccSchedulerClasses = 
DuccSchedulerClasses.getInstance();
-         if (props.containsKey(pname)) {
-             user_scheduling_class = props.getProperty(pname);
-             if (duccSchedulerClasses.isPreemptable(user_scheduling_class)) {
-                 scheduling_class = 
duccSchedulerClasses.getDebugClassSpecificName(user_scheduling_class);
-             }
-         } else {
-             scheduling_class = 
duccSchedulerClasses.getDebugClassDefaultName();
-         }
+        try {
+            DuccSchedulerClasses duccSchedulerClasses = 
DuccSchedulerClasses.getInstance();
+            if (props.containsKey(pname)) {
+                user_scheduling_class = props.getProperty(pname);
+                if (duccSchedulerClasses.isPreemptable(user_scheduling_class)) 
{
+                    scheduling_class = 
duccSchedulerClasses.getDebugClassSpecificName(user_scheduling_class);
+                }
+            } else {
+                scheduling_class = 
duccSchedulerClasses.getDebugClassDefaultName();
+            }
+        } catch (Exception e) {
+            throw new IllegalConfigurationException("Error in DUCC 
configuration files - administrator error: " + e);
+        }
          if (scheduling_class != null) {
               props.setProperty(pname, scheduling_class);
               String text = pname+"="+scheduling_class+" -- was 
"+user_scheduling_class;

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccManagedReservationSubmit.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccManagedReservationSubmit.java?rev=1744595&r1=1744594&r2=1744595&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccManagedReservationSubmit.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccManagedReservationSubmit.java
 Thu May 19 15:17:40 2016
@@ -22,6 +22,7 @@ import java.util.ArrayList;
 import java.util.Properties;
 
 import org.apache.uima.ducc.common.utils.DuccSchedulerClasses;
+import org.apache.uima.ducc.common.utils.IllegalConfigurationException;
 import org.apache.uima.ducc.transport.event.IDuccContext.DuccContext;
 import org.apache.uima.ducc.transport.event.SubmitServiceDuccEvent;
 import org.apache.uima.ducc.transport.event.SubmitServiceReplyDuccEvent;
@@ -152,14 +153,18 @@ public class DuccManagedReservationSubmi
         String pname = UiOption.SchedulingClass.pname();
         String scheduling_class = serviceRequestProperties.getProperty(pname);
         if (scheduling_class != null) {
-            DuccSchedulerClasses duccSchedulerClasses = 
DuccSchedulerClasses.getInstance();
-            if (duccSchedulerClasses.isPreemptable(scheduling_class)) {
-                String np_scheduling_class = 
duccSchedulerClasses.getDebugClassSpecificName(scheduling_class);
-                if (np_scheduling_class != null) {
-                    serviceRequestProperties.setProperty(pname, 
np_scheduling_class);
-                    String msg = "Changed the scheduling_class from " + 
scheduling_class + " to the non-preemptable " + np_scheduling_class;
-                    message(msg);
+            try {
+                DuccSchedulerClasses duccSchedulerClasses = 
DuccSchedulerClasses.getInstance();
+                if (duccSchedulerClasses.isPreemptable(scheduling_class)) {
+                    String np_scheduling_class = 
duccSchedulerClasses.getDebugClassSpecificName(scheduling_class);
+                    if (np_scheduling_class != null) {
+                        serviceRequestProperties.setProperty(pname, 
np_scheduling_class);
+                        String msg = "Changed the scheduling_class from " + 
scheduling_class + " to the non-preemptable " + np_scheduling_class;
+                        message(msg);
+                    }
                 }
+            } catch (Exception e) {
+                throw new IllegalConfigurationException("Error in DUCC 
configuration files - administrator error: " + e);
             }
         }
         

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=1744595&r1=1744594&r2=1744595&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 May 19 15:17:40 2016
@@ -23,6 +23,7 @@ import java.util.Arrays;
 import java.util.Properties;
 
 import org.apache.uima.ducc.common.utils.DuccSchedulerClasses;
+import org.apache.uima.ducc.common.utils.IllegalConfigurationException;
 import org.apache.uima.ducc.transport.event.IDuccContext.DuccContext;
 import org.apache.uima.ducc.transport.event.SubmitReservationDuccEvent;
 import org.apache.uima.ducc.transport.event.SubmitReservationReplyDuccEvent;
@@ -100,10 +101,14 @@ public class DuccReservationSubmit
         String pname = UiOption.SchedulingClass.pname();
         String scheduling_class = requestProperties.getProperty(pname);
         if (scheduling_class != null) {
+          try {
             String[] reserveClasses = 
DuccSchedulerClasses.getInstance().getReserveClasses();
             if (!Arrays.asList(reserveClasses).contains(scheduling_class)) {
                throw new IllegalArgumentException("Invalid value for 
scheduling_class - must be one of the reserve classes");
             }
+          } catch (Exception e) {
+              throw new IllegalConfigurationException("Error in DUCC 
configuration files - administrator error: " + e);
+          }
         }
         SubmitReservationDuccEvent      ev    = new 
SubmitReservationDuccEvent(requestProperties, CliVersion.getVersion());
         SubmitReservationReplyDuccEvent reply = null;

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceApi.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceApi.java?rev=1744595&r1=1744594&r2=1744595&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceApi.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceApi.java
 Thu May 19 15:17:40 2016
@@ -25,6 +25,7 @@ import org.apache.uima.ducc.common.Pair;
 import org.apache.uima.ducc.common.utils.DuccProperties;
 import org.apache.uima.ducc.common.utils.DuccPropertiesResolver;
 import org.apache.uima.ducc.common.utils.DuccSchedulerClasses;
+import org.apache.uima.ducc.common.utils.IllegalConfigurationException;
 import org.apache.uima.ducc.transport.event.ServiceDisableEvent;
 import org.apache.uima.ducc.transport.event.ServiceEnableEvent;
 import org.apache.uima.ducc.transport.event.ServiceIgnoreEvent;
@@ -439,13 +440,17 @@ public class DuccServiceApi
 
         // Check if falsely using a fair-share class; set the default if 
missing
         String scheduling_class = 
cli_props.getProperty(UiOption.SchedulingClass.pname());
-        DuccSchedulerClasses duccSchedulerClasses = 
DuccSchedulerClasses.getInstance();
-        if (scheduling_class != null) {
-            if (duccSchedulerClasses.isPreemptable(scheduling_class)) {
-                throw new IllegalArgumentException("Invalid pre-emptable 
scheduling class: " + scheduling_class);
+        try {
+            DuccSchedulerClasses duccSchedulerClasses = 
DuccSchedulerClasses.getInstance();
+            if (scheduling_class != null) {
+                if (duccSchedulerClasses.isPreemptable(scheduling_class)) {
+                    throw new IllegalArgumentException("Invalid pre-emptable 
scheduling class: " + scheduling_class);
+                }
+            } else {
+                cli_props.setProperty(UiOption.SchedulingClass.pname(), 
duccSchedulerClasses.getDebugClassDefaultName());
             }
-        } else {
-            cli_props.setProperty(UiOption.SchedulingClass.pname(), 
duccSchedulerClasses.getDebugClassDefaultName());
+        } catch (Exception e) {
+            throw new IllegalConfigurationException("Error in DUCC 
configuration files - administrator error: " + e);
         }
         
         // work out stuff I'm dependent upon

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/AllInOneLauncher.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/AllInOneLauncher.java?rev=1744595&r1=1744594&r2=1744595&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/AllInOneLauncher.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/AllInOneLauncher.java
 Thu May 19 15:17:40 2016
@@ -37,6 +37,7 @@ import org.apache.uima.ducc.cli.IDuccCal
 import org.apache.uima.ducc.cli.aio.IMessageHandler.Level;
 import org.apache.uima.ducc.cli.aio.IMessageHandler.Toggle;
 import org.apache.uima.ducc.common.utils.DuccSchedulerClasses;
+import org.apache.uima.ducc.common.utils.IllegalConfigurationException;
 import org.apache.uima.ducc.common.utils.QuotedOptions;
 import org.apache.uima.ducc.transport.event.cli.JobRequestProperties;
 
@@ -360,6 +361,7 @@ public class AllInOneLauncher extends Cl
         // If omitted let DUCC choose the default for an AP
         // If a preemptable one change to a fixed one if possible
         if (jobRequestProperties.containsKey(pname)) {
+          try {
             DuccSchedulerClasses duccSchedulerClasses = 
DuccSchedulerClasses.getInstance();
             scheduling_class = jobRequestProperties.getProperty(pname);
             String message = pname + "=" + scheduling_class + " [original]";
@@ -376,6 +378,9 @@ public class AllInOneLauncher extends Cl
                 }
             }
             used(pname);
+          } catch (Exception e) {
+              throw new IllegalConfigurationException("Error in DUCC 
configuration files - administrator error: " + e);
+          }
         }
         mh.frameworkTrace(cid, mid, exit);
     }


Reply via email to