diff --git a/pom.xml b/pom.xml index 8ef6975..1e02072 100755 --- a/pom.xml +++ b/pom.xml @@ -616,9 +616,9 @@ </dependency> <dependency> - <groupId>commons-lang</groupId> - <artifactId>commons-lang</artifactId> - <version>2.4</version> + <groupId>org.apache.commons</groupId> + <artifactId>commons-lang3</artifactId> + <version>3.4</version> </dependency> </dependencies> </dependencyManagement> diff --git a/typesystem/pom.xml b/typesystem/pom.xml index 41ec204..9842f84 100755 --- a/typesystem/pom.xml +++ b/typesystem/pom.xml @@ -126,8 +126,8 @@ </dependency> <dependency> - <groupId>commons-lang</groupId> - <artifactId>commons-lang</artifactId> + <groupId>org.apache.commons</groupId> + <artifactId>commons-lang3</artifactId> </dependency> </dependencies> diff --git a/typesystem/src/test/java/org/apache/hadoop/metadata/typesystem/types/TypeSystemTest.java b/typesystem/src/test/java/org/apache/hadoop/metadata/typesystem/types/TypeSystemTest.java index bb1c784..3b9a4a5 100755 --- a/typesystem/src/test/java/org/apache/hadoop/metadata/typesystem/types/TypeSystemTest.java +++ b/typesystem/src/test/java/org/apache/hadoop/metadata/typesystem/types/TypeSystemTest.java @@ -19,7 +19,7 @@ package org.apache.hadoop.metadata.typesystem.types; import com.google.common.collect.ImmutableList; -import org.apache.commons.lang.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.apache.hadoop.metadata.typesystem.types.utils.TypesUtil; import org.testng.Assert; import org.testng.annotations.AfterMethod; diff --git a/webapp/pom.xml b/webapp/pom.xml index 2e56689..1a4d5dc 100755 --- a/webapp/pom.xml +++ b/webapp/pom.xml @@ -104,6 +104,11 @@ </dependency> <dependency> + <groupId>org.apache.commons</groupId> + <artifactId>commons-lang3</artifactId> + </dependency> + + <dependency> <groupId>com.tinkerpop.blueprints</groupId> <artifactId>blueprints-core</artifactId> </dependency> diff --git a/webapp/src/main/java/org/apache/hadoop/metadata/web/resources/RexsterGraphResource.java b/webapp/src/main/java/org/apache/hadoop/metadata/web/resources/RexsterGraphResource.java index 75d651f..1281955 100755 --- a/webapp/src/main/java/org/apache/hadoop/metadata/web/resources/RexsterGraphResource.java +++ b/webapp/src/main/java/org/apache/hadoop/metadata/web/resources/RexsterGraphResource.java @@ -298,7 +298,7 @@ public class RexsterGraphResource { String message = "Edge with [" + edgeId + "] cannot be found."; LOG.info(message); throw new WebApplicationException(Response.status(Response.Status.NOT_FOUND) - .entity(JSONObject.quote(message)).build()); + .entity(Servlets.escapeJsonString(message)).build()); } JSONObject response = new JSONObject(); @@ -389,7 +389,7 @@ public class RexsterGraphResource { countOnly = false; } else { throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST) - .entity(JSONObject.quote(directionSegment + " segment was invalid.")) + .entity(Servlets.escapeJsonString(directionSegment + " segment was invalid.")) .build()); } } diff --git a/webapp/src/main/java/org/apache/hadoop/metadata/web/util/Servlets.java b/webapp/src/main/java/org/apache/hadoop/metadata/web/util/Servlets.java index 27b3184..5ed3283 100755 --- a/webapp/src/main/java/org/apache/hadoop/metadata/web/util/Servlets.java +++ b/webapp/src/main/java/org/apache/hadoop/metadata/web/util/Servlets.java @@ -18,9 +18,12 @@ package org.apache.hadoop.metadata.web.util; +import com.google.common.base.Preconditions; import org.apache.commons.io.IOUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringEscapeUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.hadoop.metadata.MetadataServiceClient; +import org.apache.hadoop.metadata.ParamChecker; import org.codehaus.jettison.json.JSONException; import org.codehaus.jettison.json.JSONObject; import org.slf4j.Logger; @@ -38,6 +41,8 @@ import java.io.StringWriter; */ public final class Servlets { + public static final String QUOTE = "\""; + private static final Logger LOG = LoggerFactory.getLogger(Servlets.class); private Servlets() { /* singleton */ @@ -117,7 +122,7 @@ public final class Servlets { public static Response getErrorResponse(String message, Response.Status status) { JSONObject errorJson = new JSONObject(); - Object errorEntity = JSONObject.quote(message); + Object errorEntity = Servlets.escapeJsonString(message); try { errorJson.put(MetadataServiceClient.ERROR, errorEntity); errorEntity = errorJson; @@ -140,4 +145,14 @@ public final class Servlets { public static String getRequestId() { return Thread.currentThread().getName(); } + + public static String escapeJsonString(String inputStr) { + ParamChecker.notNull(inputStr, "Input String cannot be null"); + return StringEscapeUtils.escapeJson(inputStr); + } + + public static void main(String[] args) { + String result = Servlets.escapeJsonString(args[0]); + System.out.println(result); + } } diff --git a/webapp/src/test/java/org/apache/hadoop/metadata/web/resources/EntityJerseyResourceIT.java b/webapp/src/test/java/org/apache/hadoop/metadata/web/resources/EntityJerseyResourceIT.java index a26d622..78b1572 100755 --- a/webapp/src/test/java/org/apache/hadoop/metadata/web/resources/EntityJerseyResourceIT.java +++ b/webapp/src/test/java/org/apache/hadoop/metadata/web/resources/EntityJerseyResourceIT.java @@ -397,6 +397,7 @@ public class EntityJerseyResourceIT extends BaseResourceIT { JSONObject response = new JSONObject(responseAsString); Assert.assertNotNull(response.get(MetadataServiceClient.ERROR)); + Assert.assertEquals(response.getString(MetadataServiceClient.ERROR), "trait=" + traitName + " should be defined in type system before it can be deleted"); Assert.assertNotNull(response.get(MetadataServiceClient.STACKTRACE)); }