From 30ec0cee87d831d15392d0f4417b5306b65c5818 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Fri, 15 Feb 2013 15:55:43 +0000
Subject: [PATCH] Fix CREST-76: Minor inconsistencies when serializing resource exceptions as JSON.
---
opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/LDAPCollectionResourceProvider.java | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/LDAPCollectionResourceProvider.java b/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/LDAPCollectionResourceProvider.java
index ffda24d..284ce2b 100644
--- a/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/LDAPCollectionResourceProvider.java
+++ b/opendj3/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/LDAPCollectionResourceProvider.java
@@ -64,6 +64,7 @@
import org.forgerock.opendj.ldap.Filter;
import org.forgerock.opendj.ldap.Function;
import org.forgerock.opendj.ldap.MultipleEntriesFoundException;
+import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.SearchResultHandler;
import org.forgerock.opendj.ldap.SearchScope;
import org.forgerock.opendj.ldap.TimeoutResultException;
@@ -449,9 +450,16 @@
} catch (final TimeoutResultException e) {
resourceResultCode = 408;
} catch (final ErrorResultException e) {
- resourceResultCode = ResourceException.INTERNAL_ERROR;
+ final ResultCode rc = e.getResult().getResultCode();
+ if (rc.equals(ResultCode.ADMIN_LIMIT_EXCEEDED)) {
+ resourceResultCode = 413; // Request Entity Too Large
+ } else if (rc.equals(ResultCode.SIZE_LIMIT_EXCEEDED)) {
+ resourceResultCode = 413; // Request Entity Too Large
+ } else {
+ resourceResultCode = ResourceException.INTERNAL_ERROR;
+ }
}
- return ResourceException.getException(resourceResultCode, null, error.getMessage(), error);
+ return ResourceException.getException(resourceResultCode, error.getMessage(), error);
}
private void applyUpdate(final Context c, final ChangeRecord request,
--
Gitblit v1.10.0