You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2010/12/28 16:39:48 UTC

svn commit: r1053371 - in /sling/trunk/contrib/extensions/bgservlets/src/main/java/org/apache/sling/bgservlets/impl: servlets/JobStateChangeServlet.java storage/NodeJobStatusFactoryImpl.java

Author: bdelacretaz
Date: Tue Dec 28 15:39:47 2010
New Revision: 1053371

URL: http://svn.apache.org/viewvc?rev=1053371&view=rev
Log:
SLING-1903 - return 200 response with additional JSON info if job state cannot be changed

Modified:
    sling/trunk/contrib/extensions/bgservlets/src/main/java/org/apache/sling/bgservlets/impl/servlets/JobStateChangeServlet.java
    sling/trunk/contrib/extensions/bgservlets/src/main/java/org/apache/sling/bgservlets/impl/storage/NodeJobStatusFactoryImpl.java

Modified: sling/trunk/contrib/extensions/bgservlets/src/main/java/org/apache/sling/bgservlets/impl/servlets/JobStateChangeServlet.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/bgservlets/src/main/java/org/apache/sling/bgservlets/impl/servlets/JobStateChangeServlet.java?rev=1053371&r1=1053370&r2=1053371&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/bgservlets/src/main/java/org/apache/sling/bgservlets/impl/servlets/JobStateChangeServlet.java (original)
+++ sling/trunk/contrib/extensions/bgservlets/src/main/java/org/apache/sling/bgservlets/impl/servlets/JobStateChangeServlet.java Tue Dec 28 15:39:47 2010
@@ -76,7 +76,9 @@ public class JobStateChangeServlet exten
             return;
         }
         final JobStatus j = jobConsole.getJobStatus(session, request.getResource().getPath());
+        final JobStatus.State oldState = j.getState();
         j.requestStateChange(desiredState);
+        final JobStatus.State newState = j.getState();
         
         response.setContentType("application/json");
         response.setCharacterEncoding("UTF-8");
@@ -86,7 +88,8 @@ public class JobStateChangeServlet exten
             w.key("info").value("Requested state change");
             w.key(PARAM_STATE).value(desiredState.toString());
             w.key("path").value(j.getPath());
-            w.key("currentState").value(j.getState());
+            w.key("currentState").value(newState);
+            w.key("stateChanged").value(newState != oldState);
             w.endObject();
         } catch(JSONException je) {
             throw new ServletException("JSONException in doPost", je);

Modified: sling/trunk/contrib/extensions/bgservlets/src/main/java/org/apache/sling/bgservlets/impl/storage/NodeJobStatusFactoryImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/bgservlets/src/main/java/org/apache/sling/bgservlets/impl/storage/NodeJobStatusFactoryImpl.java?rev=1053371&r1=1053370&r2=1053371&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/bgservlets/src/main/java/org/apache/sling/bgservlets/impl/storage/NodeJobStatusFactoryImpl.java (original)
+++ sling/trunk/contrib/extensions/bgservlets/src/main/java/org/apache/sling/bgservlets/impl/storage/NodeJobStatusFactoryImpl.java Tue Dec 28 15:39:47 2010
@@ -86,9 +86,10 @@ public class NodeJobStatusFactoryImpl im
         public void requestStateChange(State s) {
             final JobStatus j = getActiveJob();
             if(j == null) {
-                throw new JobStorageException("Job is not active, cannot change state, path=" + path);
+                log.debug("Job {} is not active, cannot change state", path);
+            } else {
+                j.requestStateChange(s);
             }
-            j.requestStateChange(s);
         }
         
         private JobStatus getActiveJob() {