diff --git a/pact/pact-clients/resources/web-docs/launch.html b/pact/pact-clients/resources/web-docs/launch.html index 3b8e86dddb511f34a2567476865d9654bb400ab1..e91de11495baea5721029271ff2246ea36791996 100755 --- a/pact/pact-clients/resources/web-docs/launch.html +++ b/pact/pact-clients/resources/web-docs/launch.html @@ -85,8 +85,7 @@ type: "GET", url: "pactPlan", data: { job: id }, - success: function(response) { showPreviewPlan(response); }, - error:function (xhr, ajaxOptions, thrownError) { alert(xhr.responseText); pactPlanRequested = 0; } + success: function(response) { showPreviewPlan(response); } }); } else { diff --git a/pact/pact-clients/src/main/java/eu/stratosphere/pact/client/nephele/api/PactProgram.java b/pact/pact-clients/src/main/java/eu/stratosphere/pact/client/nephele/api/PactProgram.java index 6bf47225fe9c5c969413f60b7ebb96cb92d2a462..6507adcaf12b9105ad2a7472bb248c2d85e78c7a 100644 --- a/pact/pact-clients/src/main/java/eu/stratosphere/pact/client/nephele/api/PactProgram.java +++ b/pact/pact-clients/src/main/java/eu/stratosphere/pact/client/nephele/api/PactProgram.java @@ -121,7 +121,12 @@ public class PactProgram { * @throws ErrorInPlanAssemblerException */ public OptimizedPlan getPreOptimizedPlan() throws ProgramInvocationException, ErrorInPlanAssemblerException { - return getPreOptimizedPlan(getPlan()); + Plan plan = getPlan(); + if(plan != null) { + return getPreOptimizedPlan(plan); + } else { + return null; + } } /** diff --git a/pact/pact-clients/src/main/java/eu/stratosphere/pact/client/web/PactJobJSONServlet.java b/pact/pact-clients/src/main/java/eu/stratosphere/pact/client/web/PactJobJSONServlet.java index c50075e2e9634b1fbaf419d4169fbb2fe2635073..71bc43e7846b9ab1cc87408ba6c0aa3010c98c4c 100644 --- a/pact/pact-clients/src/main/java/eu/stratosphere/pact/client/web/PactJobJSONServlet.java +++ b/pact/pact-clients/src/main/java/eu/stratosphere/pact/client/web/PactJobJSONServlet.java @@ -73,17 +73,19 @@ public class PactJobJSONServlet extends HttpServlet { // create the pact plan try { - PactProgram pactProgram = new PactProgram(jarFile, (String[]) null); + PactProgram pactProgram = new PactProgram(jarFile, new String[0]); OptimizedPlan optPlan = pactProgram.getPreOptimizedPlan(); - String programDescription = pactProgram.getDescription(); - String json = new JSONGenerator().compilePlanToJSON(optPlan); - + String programDescription = pactProgram.getDescription(); + resp.setStatus(HttpServletResponse.SC_OK); PrintWriter wrt = resp.getWriter(); wrt.print("{ \"jobname\": \""); - wrt.print(jobName); - wrt.print("\", \"plan\": "); - wrt.println(json); + wrt.print(jobName); + if(optPlan != null) { + wrt.print("\", \"plan\": "); + String json = new JSONGenerator().compilePlanToJSON(optPlan); + wrt.println(json); + } if (programDescription != null) { wrt.print(", \"description\": \""); wrt.print(escapeString(programDescription)); diff --git a/pact/pact-examples/src/main/java/eu/stratosphere/pact/example/datamining/KMeansIteration.java b/pact/pact-examples/src/main/java/eu/stratosphere/pact/example/datamining/KMeansIteration.java index 6bba10511f5ba390078e616e1275d03d56b0c741..9d738397ffdca0e47bb33c0dbd7024aa6263f0c7 100644 --- a/pact/pact-examples/src/main/java/eu/stratosphere/pact/example/datamining/KMeansIteration.java +++ b/pact/pact-examples/src/main/java/eu/stratosphere/pact/example/datamining/KMeansIteration.java @@ -631,17 +631,20 @@ public class KMeansIteration implements PlanAssembler, PlanAssemblerDescription @Override public Plan getPlan(String... args) { + int noSubTasks = 1; + String dataPointInput = ""; + String clusterInput = ""; + String output = ""; + // check for the correct number of job parameters - if (args.length != 4) { - return null; + if (args.length == 4) { + // parse job parameters + noSubTasks = Integer.parseInt(args[0]); + dataPointInput = args[1]; + clusterInput = args[2]; + output = args[3]; } - - // parse job parameters - int noSubTasks = Integer.parseInt(args[0]); - String dataPointInput = args[1]; - String clusterInput = args[2]; - String output = args[3]; - + // create DataSourceContract for data point input DataSourceContract dataPoints = new DataSourceContract( PointInFormat.class, dataPointInput, "Read Data Points");