Reviewers: MikeSamuel, Description: If cajoling fails because there's an error in the input, the cajoler still returns the errors found during cajoling, but now sets the Http status to 400 so that clients that rely on the status can error out early.
Please review this at http://codereview.appspot.com/1904046/show Affected files: M src/com/google/caja/service/CajolingServlet.java Index: src/com/google/caja/service/CajolingServlet.java =================================================================== --- src/com/google/caja/service/CajolingServlet.java (revision 4221) +++ src/com/google/caja/service/CajolingServlet.java (working copy) @@ -19,6 +19,7 @@ import com.google.caja.lexer.escaping.Escaping; import com.google.caja.reporting.Message; import com.google.caja.reporting.MessageContext; +import com.google.caja.reporting.MessageLevel; import com.google.caja.reporting.MessageQueue; import com.google.caja.reporting.SimpleMessageQueue; @@ -144,7 +145,10 @@ return; } - resp.setStatus(HttpServletResponse.SC_OK); + int status = mq.hasMessageAtLevel(MessageLevel.ERROR) ? + HttpServletResponse.SC_BAD_REQUEST : HttpServletResponse.SC_OK; + resp.setStatus(status); + String responseContentType = result.getContentType(); if (result.getCharSet() != null) { responseContentType += ";charset=" + result.getCharSet();
