Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjmisinco2013-01-08 18:44:29 +0000
committerRoberto E. Escobar2013-01-08 18:44:29 +0000
commit00cc5a601571ec5e3053387ad6df015317696437 (patch)
tree6aa04b3b2da8bd78595f6ddb399fc0a9fcdf4c9d
parent9be746ccafecac681e4aac376fe056d91be27346 (diff)
downloadorg.eclipse.osee-00cc5a601571ec5e3053387ad6df015317696437.tar.gz
org.eclipse.osee-00cc5a601571ec5e3053387ad6df015317696437.tar.xz
org.eclipse.osee-00cc5a601571ec5e3053387ad6df015317696437.zip
refinement[ats_3P4DS]: Enhance error message for new search
-rw-r--r--plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/search/QueryBuilderImpl.java9
-rw-r--r--plugins/org.eclipse.osee.orcs.rest.client/src/org/eclipse/osee/orcs/rest/client/internal/search/V1SearchResultProvider.java8
-rw-r--r--plugins/org.eclipse.osee.orcs.rest.model/src/org/eclipse/osee/orcs/rest/model/ExceptionEntity.java39
-rw-r--r--plugins/org.eclipse.osee.orcs.rest/META-INF/MANIFEST.MF1
-rw-r--r--plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/OrcsApplication.java8
-rw-r--r--plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/mappers/OseeCoreExceptionMapper.java36
6 files changed, 93 insertions, 8 deletions
diff --git a/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/search/QueryBuilderImpl.java b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/search/QueryBuilderImpl.java
index 062766366be..1c53942bd5b 100644
--- a/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/search/QueryBuilderImpl.java
+++ b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/search/QueryBuilderImpl.java
@@ -192,10 +192,13 @@ public class QueryBuilderImpl implements QueryBuilder {
for (String id : ids) {
if (GUID.isValid(id)) {
guids.add(id);
- } else if (HumanReadableId.isValid(id)) {
- hrids.add(id);
} else {
- invalids.add(id);
+ String hrid = id.toUpperCase();
+ if (HumanReadableId.isValid(hrid)) {
+ hrids.add(hrid);
+ } else {
+ invalids.add(id);
+ }
}
}
Conditions.checkExpressionFailOnTrue(!invalids.isEmpty(), "Invalid guids or hrids detected - %s", invalids);
diff --git a/plugins/org.eclipse.osee.orcs.rest.client/src/org/eclipse/osee/orcs/rest/client/internal/search/V1SearchResultProvider.java b/plugins/org.eclipse.osee.orcs.rest.client/src/org/eclipse/osee/orcs/rest/client/internal/search/V1SearchResultProvider.java
index e31c02b8c87..a8640f1f055 100644
--- a/plugins/org.eclipse.osee.orcs.rest.client/src/org/eclipse/osee/orcs/rest/client/internal/search/V1SearchResultProvider.java
+++ b/plugins/org.eclipse.osee.orcs.rest.client/src/org/eclipse/osee/orcs/rest/client/internal/search/V1SearchResultProvider.java
@@ -15,14 +15,15 @@ import java.util.List;
import javax.ws.rs.core.MediaType;
import org.eclipse.osee.framework.core.data.IOseeBranch;
import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.core.exception.OseeExceptions;
import org.eclipse.osee.framework.core.services.URIProvider;
import org.eclipse.osee.orcs.rest.client.internal.WebClientProvider;
+import org.eclipse.osee.orcs.rest.model.ExceptionEntity;
import org.eclipse.osee.orcs.rest.model.search.OutputFormat;
import org.eclipse.osee.orcs.rest.model.search.Predicate;
import org.eclipse.osee.orcs.rest.model.search.RequestType;
import org.eclipse.osee.orcs.rest.model.search.SearchParameters;
import org.eclipse.osee.orcs.rest.model.search.SearchResult;
+import com.sun.jersey.api.client.UniformInterfaceException;
import com.sun.jersey.api.client.WebResource;
/**
@@ -84,8 +85,9 @@ public class V1SearchResultProvider implements SearchResultProvider {
searchResult =
resource.accept(MediaType.APPLICATION_JSON_TYPE).type(MediaType.APPLICATION_JSON_TYPE).post(
SearchResult.class, params);
- } catch (Exception ex) {
- OseeExceptions.wrapAndThrow(ex);
+ } catch (UniformInterfaceException ex) {
+ ExceptionEntity entity = ex.getResponse().getEntity(ExceptionEntity.class);
+ throw new OseeCoreException(entity.getExceptionString());
}
return searchResult;
}
diff --git a/plugins/org.eclipse.osee.orcs.rest.model/src/org/eclipse/osee/orcs/rest/model/ExceptionEntity.java b/plugins/org.eclipse.osee.orcs.rest.model/src/org/eclipse/osee/orcs/rest/model/ExceptionEntity.java
new file mode 100644
index 00000000000..534588dc77a
--- /dev/null
+++ b/plugins/org.eclipse.osee.orcs.rest.model/src/org/eclipse/osee/orcs/rest/model/ExceptionEntity.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Boeing.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Boeing - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.osee.orcs.rest.model;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+/**
+ * @author John Misinco
+ */
+@XmlRootElement
+public class ExceptionEntity {
+
+ private String exceptionString;
+
+ public ExceptionEntity(String exceptionString) {
+ this.exceptionString = exceptionString;
+ }
+
+ public ExceptionEntity() {
+ // do nothing
+ }
+
+ public String getExceptionString() {
+ return exceptionString;
+ }
+
+ public void setExceptionString(String exceptionString) {
+ this.exceptionString = exceptionString;
+ }
+
+}
diff --git a/plugins/org.eclipse.osee.orcs.rest/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.orcs.rest/META-INF/MANIFEST.MF
index 0c57b80a5b5..4b25daf9858 100644
--- a/plugins/org.eclipse.osee.orcs.rest/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.osee.orcs.rest/META-INF/MANIFEST.MF
@@ -8,6 +8,7 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Service-Component: OSGI-INF/*.xml
Import-Package: javax.ws.rs,
javax.ws.rs.core,
+ javax.ws.rs.ext,
org.eclipse.osee.framework.core.data,
org.eclipse.osee.framework.core.enums,
org.eclipse.osee.framework.core.exception,
diff --git a/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/OrcsApplication.java b/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/OrcsApplication.java
index 793512cddb1..880e4d87cc2 100644
--- a/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/OrcsApplication.java
+++ b/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/OrcsApplication.java
@@ -10,10 +10,11 @@
*******************************************************************************/
package org.eclipse.osee.orcs.rest.internal;
-import java.util.Collections;
+import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.core.Application;
import org.eclipse.osee.orcs.OrcsApi;
+import org.eclipse.osee.orcs.rest.internal.mappers.OseeCoreExceptionMapper;
/**
* Get application.wadl at this context to get rest documentation
@@ -34,7 +35,10 @@ public class OrcsApplication extends Application {
@Override
public Set<Class<?>> getClasses() {
- return Collections.<Class<?>> singleton(BranchesResource.class);
+ Set<Class<?>> classes = new HashSet<Class<?>>();
+ classes.add(BranchesResource.class);
+ classes.add(OseeCoreExceptionMapper.class);
+ return classes;
}
}
diff --git a/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/mappers/OseeCoreExceptionMapper.java b/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/mappers/OseeCoreExceptionMapper.java
new file mode 100644
index 00000000000..4ab8418337f
--- /dev/null
+++ b/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/mappers/OseeCoreExceptionMapper.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Boeing.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Boeing - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.osee.orcs.rest.internal.mappers;
+
+import javax.ws.rs.core.GenericEntity;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
+import javax.ws.rs.ext.ExceptionMapper;
+import javax.ws.rs.ext.Provider;
+import org.eclipse.osee.framework.core.exception.OseeCoreException;
+import org.eclipse.osee.framework.jdk.core.util.Lib;
+import org.eclipse.osee.orcs.rest.model.ExceptionEntity;
+
+/**
+ * @author John Misinco
+ */
+@Provider
+public class OseeCoreExceptionMapper implements ExceptionMapper<OseeCoreException> {
+
+ @Override
+ public Response toResponse(OseeCoreException exception) {
+ ExceptionEntity entity = new ExceptionEntity(Lib.exceptionToString(exception));
+ GenericEntity<ExceptionEntity> ge = new GenericEntity<ExceptionEntity>(entity, ExceptionEntity.class);
+ return Response.status(Status.INTERNAL_SERVER_ERROR).type(MediaType.APPLICATION_JSON_TYPE).entity(ge).build();
+ }
+
+}

Back to the top