diff options
Diffstat (limited to 'sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/http/DataTreeHttpServlet.java')
-rw-r--r-- | sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/http/DataTreeHttpServlet.java | 43 |
1 files changed, 25 insertions, 18 deletions
diff --git a/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/http/DataTreeHttpServlet.java b/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/http/DataTreeHttpServlet.java index 115ff4f40..3c4a7621b 100644 --- a/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/http/DataTreeHttpServlet.java +++ b/sdnr/wt/data-provider/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/http/DataTreeHttpServlet.java @@ -29,6 +29,7 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.servlet.ServletException; @@ -70,9 +71,9 @@ public class DataTreeHttpServlet extends HttpServlet { String body = null; StringBuilder stringBuilder = new StringBuilder(); BufferedReader bufferedReader = null; + IOException toThrow = null; + try (InputStream inputStream = request.getInputStream()) { - try { - InputStream inputStream = request.getInputStream(); if (inputStream != null) { bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); char[] charBuffer = new char[128]; @@ -84,17 +85,20 @@ public class DataTreeHttpServlet extends HttpServlet { stringBuilder.append(""); } } catch (IOException ex) { - throw ex; + toThrow = ex; } finally { if (bufferedReader != null) { try { bufferedReader.close(); } catch (IOException ex) { - throw ex; + LOG.debug("problem closing reader:", ex); + toThrow = ex; } } } - + if (toThrow != null) { + throw toThrow; + } body = stringBuilder.toString(); return body; } @@ -164,13 +168,16 @@ public class DataTreeHttpServlet extends HttpServlet { final String regex = "^\\/tree\\/read-(.*)-tree\\/?(.*)$"; final Pattern pattern = Pattern.compile(regex); final Matcher matcher = pattern.matcher(uri); - Entity e = null; if (matcher.find() && matcher.groupCount() > 0) { try { - e = Entity.forName(matcher.group(1)).get(); - return new EntityWithTree(e, matcher.groupCount() > 1 ? matcher.group(2) : null); + Optional<Entity> oe = Entity.forName(matcher.group(1)); + if (oe.isPresent()) { + return new EntityWithTree(oe.get(), matcher.groupCount() > 1 ? matcher.group(2) : null); + } else { + LOG.warn("unable to find entity for name {}", matcher.group(1)); + } } catch (Exception e2) { - LOG.warn("unable to parse {} into entity: {}", matcher.group(2), e2); + LOG.warn("unable to parse {} into entity: ", matcher.group(2), e2); } } return null; @@ -182,7 +189,7 @@ public class DataTreeHttpServlet extends HttpServlet { try { resp.getWriter().write(data.toJSON()); } catch (IOException e) { - LOG.warn("problem sending response: {}", e); + LOG.warn("problem sending response: ", e); } } @@ -196,14 +203,14 @@ public class DataTreeHttpServlet extends HttpServlet { } /** - * - * @param e database enttity to access - * @param tree tree description - * e.g. nodeA => tree entry for node-id=nodeA - * nodeA/key0 => tree entry for node-id=nodeA and uuid=key0 and tree-level=0 - * nodeA/key0/key1 => tree entry for node-id=nodeA and uuid=key1 and tree-level=1 - * - */ + * + * @param e database enttity to access + * @param tree tree description + * e.g. nodeA => tree entry for node-id=nodeA + * nodeA/key0 => tree entry for node-id=nodeA and uuid=key0 and tree-level=0 + * nodeA/key0/key1 => tree entry for node-id=nodeA and uuid=key1 and tree-level=1 + * + */ public EntityWithTree(Entity e, String tree) { this.entity = e; if (tree != null) { |