Author: jawi
Date: Thu Mar 6 16:04:12 2014
New Revision: 1574940
URL: http://svn.apache.org/r1574940
Log:
ACE-249 - properly handle exceptions during streaming:
- when a AceRestException cannot propagate a given exception to the calling
side, make sure to log it on the server as a last resort to get some clue
as to why things are failing.
Modified:
ace/trunk/org.apache.ace.deployment/src/org/apache/ace/deployment/servlet/AceRestException.java
ace/trunk/org.apache.ace.deployment/src/org/apache/ace/deployment/servlet/AgentDeploymentServlet.java
ace/trunk/org.apache.ace.deployment/src/org/apache/ace/deployment/servlet/DeploymentServlet.java
Modified:
ace/trunk/org.apache.ace.deployment/src/org/apache/ace/deployment/servlet/AceRestException.java
URL:
http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.deployment/src/org/apache/ace/deployment/servlet/AceRestException.java?rev=1574940&r1=1574939&r2=1574940&view=diff
==============================================================================
---
ace/trunk/org.apache.ace.deployment/src/org/apache/ace/deployment/servlet/AceRestException.java
(original)
+++
ace/trunk/org.apache.ace.deployment/src/org/apache/ace/deployment/servlet/AceRestException.java
Thu Mar 6 16:04:12 2014
@@ -19,6 +19,7 @@
package org.apache.ace.deployment.servlet;
import java.io.IOException;
+
import javax.servlet.http.HttpServletResponse;
/**
@@ -40,7 +41,12 @@ public class AceRestException extends Ex
*
* @param response
*/
- public void handleAsHttpError(HttpServletResponse response) throws
IOException {
- response.sendError(m_statusCode, m_description);
+ public boolean handleAsHttpError(HttpServletResponse response) throws
IOException {
+ if (!response.isCommitted()) {
+ response.reset();
+ response.sendError(m_statusCode, m_description);
+ return true;
+ }
+ return false;
}
}
\ No newline at end of file
Modified:
ace/trunk/org.apache.ace.deployment/src/org/apache/ace/deployment/servlet/AgentDeploymentServlet.java
URL:
http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.deployment/src/org/apache/ace/deployment/servlet/AgentDeploymentServlet.java?rev=1574940&r1=1574939&r2=1574940&view=diff
==============================================================================
---
ace/trunk/org.apache.ace.deployment/src/org/apache/ace/deployment/servlet/AgentDeploymentServlet.java
(original)
+++
ace/trunk/org.apache.ace.deployment/src/org/apache/ace/deployment/servlet/AgentDeploymentServlet.java
Thu Mar 6 16:04:12 2014
@@ -143,7 +143,9 @@ public class AgentDeploymentServlet exte
}
catch (AceRestException e) {
m_log.log(LogService.LOG_WARNING, e.getMessage(), e);
- e.handleAsHttpError(response);
+ if (!e.handleAsHttpError(response)) {
+ m_log.log(LogService.LOG_ERROR, "Failed to properly notify
client of exception!", e);
+ }
}
}
Modified:
ace/trunk/org.apache.ace.deployment/src/org/apache/ace/deployment/servlet/DeploymentServlet.java
URL:
http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.deployment/src/org/apache/ace/deployment/servlet/DeploymentServlet.java?rev=1574940&r1=1574939&r2=1574940&view=diff
==============================================================================
---
ace/trunk/org.apache.ace.deployment/src/org/apache/ace/deployment/servlet/DeploymentServlet.java
(original)
+++
ace/trunk/org.apache.ace.deployment/src/org/apache/ace/deployment/servlet/DeploymentServlet.java
Thu Mar 6 16:04:12 2014
@@ -148,7 +148,9 @@ public class DeploymentServlet extends H
}
catch (AceRestException e) {
m_log.log(LogService.LOG_WARNING, e.getMessage(), e);
- e.handleAsHttpError(response);
+ if (!e.handleAsHttpError(response)) {
+ m_log.log(LogService.LOG_ERROR, "Failed to properly notify
client of exception!", e);
+ }
}
catch (OverloadedException oe) {
throw new ServletException(oe);
@@ -178,7 +180,9 @@ public class DeploymentServlet extends H
}
catch (AceRestException e) {
m_log.log(LogService.LOG_WARNING, e.getMessage(), e);
- e.handleAsHttpError(response);
+ if (!e.handleAsHttpError(response)) {
+ m_log.log(LogService.LOG_ERROR, "Failed to properly notify
client of exception!", e);
+ }
}
catch (OverloadedException oe) {
throw new ServletException(oe);