11package cf .maybelambda .httpvalidator .springboot .persistence ;
22
33import cf .maybelambda .httpvalidator .springboot .model .ValidationTask ;
4- import com .fasterxml .jackson .core .JsonProcessingException ;
54import com .fasterxml .jackson .databind .JsonNode ;
65import com .fasterxml .jackson .databind .ObjectMapper ;
76import org .slf4j .Logger ;
3534import java .util .ArrayList ;
3635import java .util .List ;
3736
37+ import static cf .maybelambda .httpvalidator .springboot .persistence .XMLErrorHandler .parseInputOrThrow ;
3838import static java .util .Objects .requireNonNull ;
3939
4040/**
@@ -104,13 +104,7 @@ public XMLValidationTaskDao() throws ParserConfigurationException, SAXException,
104104 * @throws XMLParseException if parsing fails.
105105 */
106106 Document parseXMLInput (InputStream inputStream ) throws XMLParseException {
107- try {
108- return this .xmlParser .parse (inputStream );
109- } catch (Exception e ) {
110- String errmsg = "Failed to parse target XML content" ;
111- logger .error (errmsg , e );
112- throw new XMLParseException (e , errmsg + "\n " );
113- }
107+ return parseInputOrThrow (this .xmlParser ::parse , inputStream , logger , "Failed to parse target XML content" );
114108 }
115109
116110 /**
@@ -151,7 +145,7 @@ synchronized Document getDocData() throws XMLParseException, FileNotFoundExcepti
151145 * @return The new validation task.
152146 * @throws XMLParseException if JSON content in the reqbody element cannot be parsed.
153147 */
154- private ValidationTask createVTaskFromNodes (NodeList validation ) throws XMLParseException {
148+ ValidationTask createVTaskFromNodes (NodeList validation ) throws XMLParseException {
155149 MethodType method = null ;
156150 String url = null ;
157151 List <String > headers = new ArrayList <>();
@@ -174,13 +168,7 @@ private ValidationTask createVTaskFromNodes(NodeList validation) throws XMLParse
174168 headers .add (content );
175169 }
176170 if (REQ_BODY_TAG .equals (name )) {
177- try {
178- reqBody = this .mapper .readTree (content );
179- } catch (JsonProcessingException e ) {
180- String errmsg = "Invalid JSON content encountered in the data file" ;
181- logger .error (errmsg , e );
182- throw new XMLParseException (e , errmsg + "\n " );
183- }
171+ reqBody = parseInputOrThrow (this .mapper ::readTree , content , logger , "Invalid JSON encountered in data file" );
184172 }
185173 if (RES_TAG .equals (name )) {
186174 resStatusCode = Integer .parseInt (attrs .getNamedItem (RES_SC_ATTR ).getTextContent ());
0 commit comments