From 5042d2adf6fe93b7f7054dafedd54880d56f63a7 Mon Sep 17 00:00:00 2001 From: Maximilian Brodhun <brodhun@sub.uni-goettingen.de> Date: Wed, 26 Mar 2014 16:30:39 +0100 Subject: [PATCH] Refactoring: Error handling in ListIdentifier und ListRecords request --- .../info/textgrid/middleware/OAIPMHImpl.java | 20 +++++++++++-------- .../info/textgrid/middleware/TGConstants.java | 2 +- .../info/textgrid/middleware/OaiPmhTest.java | 14 ++++++------- 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java index ca20749c..feedf3ed 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHImpl.java @@ -225,13 +225,8 @@ public class OAIPMHImpl implements OAIPMHProducer{ IdentifierListDeliverer listIdDeliv = new IdentifierListDeliverer(oaiEsClient); JAXBElement<OAIPMHType> oaipmhRoot = obf.createOAIPMH(oai); - if(request.getIdentifier()!=null){ - errorValues.add("identifier"); - error.setError(TGConstants.OAI_BAD_ARGUMENT).setValue("The request includes illegal arguments " + - "or missing requiered arguments: " + errorValues); - oai.getError().add(error.setError(TGConstants.OAI_BAD_ARGUMENT)); - } - else{ + + if(listIdDeliv.requestChecker(request)){ if(request.getSet()!=null){ error.setError(TGConstants.OAI_NO_SET_HIERARCHY).setValue("The repository does not support sets"); @@ -267,8 +262,17 @@ public class OAIPMHImpl implements OAIPMHProducer{ log.debug(e); } } + }else{ + if(request.getIdentifier()!=null){ + errorValues.add("identifier"); + }if(request.getMetadataPrefix()==null){ + errorValues.add("metadataPrefix"); + } + error.setError(TGConstants.OAI_BAD_ARGUMENT).setValue("The request includes illegal arguments " + + "or missing requiered arguments: " + errorValues); + oai.getError().add(error.setError(TGConstants.OAI_BAD_ARGUMENT)); + } - return oaipmhRoot; } diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/TGConstants.java b/oaipmh-core/src/main/java/info/textgrid/middleware/TGConstants.java index 4f253755..c76c4d4d 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/TGConstants.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/TGConstants.java @@ -32,7 +32,7 @@ public final class TGConstants { public static final String OAI_BAD_ARGUMENT = "BadArgument"; public static final String OAI_METADATA_FORMAT_ERROR = "FormatError"; - public static final String OAI_NO_RECORD_MATCH = "IDError"; + public static final String OAI_NO_RECORD_MATCH = "RecordMatchError"; public static final String OAI_NO_SET_HIERARCHY = "SetHierarchyError"; } diff --git a/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java b/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java index 75c375f3..7d7f8ba2 100644 --- a/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java +++ b/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java @@ -50,7 +50,7 @@ public class OaiPmhTest{ System.out.println("-----------------------------------\n"); }*/ - @Test + /*@Test //@Ignore public void testDateNow() throws DatatypeConfigurationException{ System.out.println("---------------Now Version-----------------"); @@ -90,28 +90,28 @@ public class OaiPmhTest{ JAXBElement<OAIPMHType> r = testRequest.getRequest("ListSets", "", "", "", "", "", ""); JAXB.marshal(r, System.out); System.out.println("-----------------------------------\n"); - } + }*/ /*@Test //@Ignore public void testListIdentifiers() throws ParseException{ - JAXBElement<OAIPMHType> r = testRequest.getRequest("ListIdentifiers", "", "oai_dc", "", "2012-02-05", "2012-02-10", ""); + JAXBElement<OAIPMHType> r = testRequest.getRequest("ListIdentifiers", "a", "oai_dc", "", "", "", ""); JAXB.marshal(r, System.out); System.out.println("-----------------------------------\n"); }*/ - @Test - //@Ignore +/* @Test + @Ignore public void testGetRequestIdentify() throws ParseException{ System.out.println("Test for the verb \"Identify\" with succesfull response"); JAXBElement<OAIPMHType> r = testRequest.getRequest("Identify", "", "", "", "", "", ""); JAXB.marshal(r, System.out); System.out.println("-----------------------------------\n"); - } + }*/ - @Test + /*@Test //@Ignore public void testGetRequestIdentifyVerbError() throws ParseException{ JAXBElement<OAIPMHType> t = testRequest.getRequest("Identify", "", "", "", "", "", ""); -- GitLab