mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
Merged 5.1.N (5.1.2) to 5.2.N (5.2.1)
125605 rmunteanu: Merged 5.1.1 (5.1.1) to 5.1.N (5.1.2) 125498 slanglois: MNT-16155 Update source headers - remove svn:eol-style property on Java and JSP source files git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@125783 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -1,88 +1,88 @@
|
||||
package org.alfresco.repo.webdav;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
import java.io.StringWriter;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
/**
|
||||
* Create a suitable HttpServletResponse when face with an exception.
|
||||
*
|
||||
* @author Matt Ward
|
||||
*/
|
||||
public class ExceptionHandler
|
||||
{
|
||||
private static final Log logger = LogFactory.getLog(ExceptionHandler.class);
|
||||
private Throwable e;
|
||||
private final HttpServletRequest request;
|
||||
private final HttpServletResponse response;
|
||||
|
||||
/**
|
||||
* Create an ExceptionHandler.
|
||||
*
|
||||
* @param e Throwable
|
||||
* @param request HttpServletRequest
|
||||
* @param response HttpServletResponse
|
||||
*/
|
||||
public ExceptionHandler(Throwable e, HttpServletRequest request, HttpServletResponse response)
|
||||
{
|
||||
this.e = e;
|
||||
this.request = request;
|
||||
this.response = response;
|
||||
}
|
||||
|
||||
|
||||
public void handle() throws IOException
|
||||
{
|
||||
if (!(e instanceof WebDAVServerException) && e.getCause() != null)
|
||||
{
|
||||
if (e.getCause() instanceof WebDAVServerException)
|
||||
{
|
||||
e = e.getCause();
|
||||
}
|
||||
}
|
||||
// Work out how to handle the error
|
||||
if (e instanceof WebDAVServerException)
|
||||
{
|
||||
WebDAVServerException error = (WebDAVServerException) e;
|
||||
if (error.getCause() != null)
|
||||
{
|
||||
logger.error("Exception thrown.", e);
|
||||
}
|
||||
|
||||
if (logger.isDebugEnabled())
|
||||
{
|
||||
// Show what status code the method sent back
|
||||
|
||||
logger.debug(request.getMethod() + " is returning status code: " + error.getHttpStatusCode());
|
||||
}
|
||||
|
||||
if (response.isCommitted())
|
||||
{
|
||||
logger.warn("Could not return the status code to the client as the response has already been committed!");
|
||||
}
|
||||
else
|
||||
{
|
||||
response.sendError(error.getHttpStatusCode());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.error("Exception thrown.", e);
|
||||
|
||||
if (response.isCommitted())
|
||||
{
|
||||
logger.warn("Could not return the internal server error code to the client as the response has already been committed!");
|
||||
}
|
||||
else
|
||||
{
|
||||
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
package org.alfresco.repo.webdav;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
import java.io.StringWriter;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
/**
|
||||
* Create a suitable HttpServletResponse when face with an exception.
|
||||
*
|
||||
* @author Matt Ward
|
||||
*/
|
||||
public class ExceptionHandler
|
||||
{
|
||||
private static final Log logger = LogFactory.getLog(ExceptionHandler.class);
|
||||
private Throwable e;
|
||||
private final HttpServletRequest request;
|
||||
private final HttpServletResponse response;
|
||||
|
||||
/**
|
||||
* Create an ExceptionHandler.
|
||||
*
|
||||
* @param e Throwable
|
||||
* @param request HttpServletRequest
|
||||
* @param response HttpServletResponse
|
||||
*/
|
||||
public ExceptionHandler(Throwable e, HttpServletRequest request, HttpServletResponse response)
|
||||
{
|
||||
this.e = e;
|
||||
this.request = request;
|
||||
this.response = response;
|
||||
}
|
||||
|
||||
|
||||
public void handle() throws IOException
|
||||
{
|
||||
if (!(e instanceof WebDAVServerException) && e.getCause() != null)
|
||||
{
|
||||
if (e.getCause() instanceof WebDAVServerException)
|
||||
{
|
||||
e = e.getCause();
|
||||
}
|
||||
}
|
||||
// Work out how to handle the error
|
||||
if (e instanceof WebDAVServerException)
|
||||
{
|
||||
WebDAVServerException error = (WebDAVServerException) e;
|
||||
if (error.getCause() != null)
|
||||
{
|
||||
logger.error("Exception thrown.", e);
|
||||
}
|
||||
|
||||
if (logger.isDebugEnabled())
|
||||
{
|
||||
// Show what status code the method sent back
|
||||
|
||||
logger.debug(request.getMethod() + " is returning status code: " + error.getHttpStatusCode());
|
||||
}
|
||||
|
||||
if (response.isCommitted())
|
||||
{
|
||||
logger.warn("Could not return the status code to the client as the response has already been committed!");
|
||||
}
|
||||
else
|
||||
{
|
||||
response.sendError(error.getHttpStatusCode());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.error("Exception thrown.", e);
|
||||
|
||||
if (response.isCommitted())
|
||||
{
|
||||
logger.warn("Could not return the internal server error code to the client as the response has already been committed!");
|
||||
}
|
||||
else
|
||||
{
|
||||
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user