Skip to content

Commit

Permalink
Added configurable stack trace returns in 500 errors
Browse files Browse the repository at this point in the history
  • Loading branch information
ajs6f committed Feb 21, 2013
1 parent 8abf937 commit 22d7817
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 7 deletions.
13 changes: 10 additions & 3 deletions fcrepo-dc/src/test/resources/spring-test/generator.xml
Expand Up @@ -12,16 +12,23 @@

<import resource="classpath:META-INF/cxf/cxf.xml"/>

<context:property-placeholder/>
<context:property-placeholder/>

<context:annotation-config/>
<context:annotation-config/>

<jaxrs:server address="http://localhost:${test.port:8080}/rest">
<jaxrs:serviceBeans>
<bean class="org.fcrepo.generator.DublinCore"/>
<bean class="org.fcrepo.api.legacy.FedoraObjects"/>
<bean class="org.fcrepo.api.legacy.FedoraDatastreams"/>
</jaxrs:serviceBeans>
<jaxrs:providers>
<bean class="org.fcrepo.exceptionhandlers.PathNotFoundExceptionMapper"/>
<bean class="org.fcrepo.exceptionhandlers.AccessControlExceptionMapper"/>
<bean class="org.fcrepo.exceptionhandlers.WildcardExceptionMapper">
<property name="showStackTrace" value="true"/>
</bean>
</jaxrs:providers>
</jaxrs:server>

<util:list id="indexers" value-type="org.fcrepo.generator.dublincore.AbstractIndexer">
Expand All @@ -30,7 +37,7 @@
</bean>
<bean class="org.fcrepo.generator.dublincore.IndexFromJcrProperties"/>
</util:list>

<!-- Mints PIDs-->
<bean class="org.fcrepo.identifiers.UUIDPidMinter"/>

Expand Down
@@ -0,0 +1,25 @@

package org.fcrepo.exceptionhandlers;

import static com.google.common.base.Throwables.getStackTraceAsString;
import static javax.ws.rs.core.Response.serverError;

import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;

public class WildcardExceptionMapper implements ExceptionMapper<Exception> {

Boolean showStackTrace;

@Override
public Response toResponse(Exception e) {

return serverError().entity(
showStackTrace ? getStackTraceAsString(e) : null).build();
}

public void setShowStackTrace(Boolean showStackTrace) {
this.showStackTrace = showStackTrace;
}

}
3 changes: 3 additions & 0 deletions fcrepo-legacy-api/src/test/resources/spring-test/rest.xml
Expand Up @@ -34,6 +34,9 @@
<jaxrs:providers>
<bean class="org.fcrepo.exceptionhandlers.PathNotFoundExceptionMapper"/>
<bean class="org.fcrepo.exceptionhandlers.AccessControlExceptionMapper"/>
<bean class="org.fcrepo.exceptionhandlers.WildcardExceptionMapper">
<property name="showStackTrace" value="true"/>
</bean>
<bean class="org.apache.cxf.jaxrs.provider.JAXBElementProvider">
<property name="marshallerProperties">
<util:map>
Expand Down
11 changes: 9 additions & 2 deletions fcrepo-webapp/src/main/resources/spring/generator.xml
Expand Up @@ -10,14 +10,21 @@
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd">

<import resource="classpath:META-INF/cxf/cxf.xml"/>
<import resource="classpath:META-INF/cxf/cxf.xml"/>

<context:annotation-config/>

<jaxrs:server address="/oai">
<jaxrs:server address="/oai">
<jaxrs:serviceBeans>
<bean class="org.fcrepo.generator.DublinCore"/>
</jaxrs:serviceBeans>
<jaxrs:providers>
<bean class="org.fcrepo.exceptionhandlers.PathNotFoundExceptionMapper"/>
<bean class="org.fcrepo.exceptionhandlers.AccessControlExceptionMapper"/>
<bean class="org.fcrepo.exceptionhandlers.WildcardExceptionMapper">
<property name="showStackTrace" value="true"/>
</bean>
</jaxrs:providers>
</jaxrs:server>

<util:list id="indexers" value-type="org.fcrepo.generator.dublincore.AbstractIndexer">
Expand Down
7 changes: 5 additions & 2 deletions fcrepo-webapp/src/main/resources/spring/rest.xml
Expand Up @@ -11,7 +11,7 @@
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">

<import resource="classpath:META-INF/cxf/cxf.xml"/>

<!-- Context that houses JAX-RS Resources that compose the API
as well as som utility gear. -->

Expand All @@ -27,7 +27,7 @@
<bean class="org.fcrepo.api.legacy.FedoraIdentifiers"/>
<bean class="org.fcrepo.api.legacy.FedoraNamespaces"/>
<bean class="org.fcrepo.api.legacy.FedoraObjects"/>
<bean class="org.fcrepo.generator.DublinCore" />
<bean class="org.fcrepo.generator.DublinCore"/>
</jaxrs:serviceBeans>
<jaxrs:extensionMappings>
<entry key="json" value="application/json"/>
Expand All @@ -36,6 +36,9 @@
<jaxrs:providers>
<bean class="org.fcrepo.exceptionhandlers.PathNotFoundExceptionMapper"/>
<bean class="org.fcrepo.exceptionhandlers.AccessControlExceptionMapper"/>
<bean class="org.fcrepo.exceptionhandlers.WildcardExceptionMapper">
<property name="showStackTrace" value="true"/>
</bean>
<bean class="org.apache.cxf.jaxrs.provider.JAXBElementProvider">
<property name="marshallerProperties">
<util:map>
Expand Down

0 comments on commit 22d7817

Please sign in to comment.