diff options
author | jmisinco | 2013-01-08 18:44:29 +0000 |
---|---|---|
committer | Roberto E. Escobar | 2013-01-08 18:44:29 +0000 |
commit | 00cc5a601571ec5e3053387ad6df015317696437 (patch) | |
tree | 6aa04b3b2da8bd78595f6ddb399fc0a9fcdf4c9d | |
parent | 9be746ccafecac681e4aac376fe056d91be27346 (diff) | |
download | org.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
Change-Id: I97e2254b80bc9b13483877bacbfb8b4a5e023178
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(); + } + +} |