Bug #1188
CNode.resolve() error handling doesn't catch error-xml return
100%
Description
org.dataone.service.exceptions.ServiceFailure: Could not deserialize the systemMetadata: No unmarshaller for element "error" (line 2, col 42)
at org.dataone.client.CNode.resolve(CNode.java:132)
at org.dataone.integration.D1ClientCNodeTest.resolveRunner(D1ClientCNodeTest.java:206)
at org.dataone.integration.D1ClientCNodeTest.test_IdEncoding(D1ClientCNodeTest.java:159)
Subtasks
History
#1 Updated by Matthew Jones almost 14 years ago
My quick impression is that this is not a client side error. The server-side resolve() implementation should not be sending an response -- it should be throwing a DataONE exception if there is an error. So the should be caught on the server-side of resolve() and converted into the appropriate DataONE exception and thrown with the proper HTTP error code.
#2 Updated by Rob Nahf almost 14 years ago
- Target version set to Sprint-2011.01
#3 Updated by Rob Nahf almost 14 years ago
I think you're right on the source of the error. Resolve fowards any error from the metacat systemmetadata REST call, but is probably not throwing the error code at the same time.
#4 Updated by Rob Nahf almost 14 years ago
- Status changed from New to In Progress
need to set up misconfiguration on cn-dev and test again, to see if status is set properly by resolve.
#5 Updated by Dave Vieglais almost 14 years ago
- Target version changed from Sprint-2011.01 to Sprint-2011.02
- Position set to 34
#6 Updated by Rob Nahf almost 14 years ago
- Status changed from In Progress to Closed
fixed. see #1215 comment