private static Object parse(InputStream in, AwsConfig awsConfig) {
   final DocumentBuilder builder;
   try {
     builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
     Document doc = builder.parse(in);
     final ByteArrayOutputStream baos = new ByteArrayOutputStream();
     Util.streamXML(doc, baos);
     final byte[] bytes = baos.toByteArray();
     //            final ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
     //            Reader reader = new BufferedReader(new InputStreamReader(bais));
     //            int n;
     //            char[] buffer = new char[1024];
     //            Writer writer = new StringWriter();
     //            while ((n = reader.read(buffer)) != -1) {
     //                writer.write(buffer, 0, n);
     //            }
     //            System.out.println(writer.toString());
     Element element = doc.getDocumentElement();
     NodeHolder elementNodeHolder = new NodeHolder(element);
     List<String> names = new ArrayList<String>();
     List<NodeHolder> reservationset = elementNodeHolder.getSubNodes("reservationset");
     for (NodeHolder reservation : reservationset) {
       List<NodeHolder> items = reservation.getSubNodes("item");
       for (NodeHolder item : items) {
         NodeHolder instancesset = item.getSub("instancesset");
         names.addAll(instancesset.getList("privateipaddress", awsConfig));
       }
     }
     return names;
   } catch (Exception e) {
     logger.log(Level.WARNING, e.getMessage(), e);
   }
   return new ArrayList<String>();
 }
 private boolean applyFilter(Node node, String filter, String set, String filterField) {
   boolean passed = (nullOrEmpty(filter));
   if (!passed) {
     for (NodeHolder group : new NodeHolder(node).getSub(set).getSubNodes("item")) {
       NodeHolder nh = group.getSub(filterField);
       if (nh != null
           && nh.getNode().getFirstChild() != null
           && filter.equals(nh.getNode().getFirstChild().getNodeValue())) {
         passed = true;
       }
     }
   }
   return passed;
 }
 private boolean keyEquals(String keyExpected, NodeHolder group) {
   NodeHolder nhKey = group.getSub("key");
   return nhKey != null
       && nhKey.getNode().getFirstChild() != null
       && keyExpected.equals(nhKey.getNode().getFirstChild().getNodeValue());
 }
 private boolean valueEquals(String valueExpected, NodeHolder group) {
   NodeHolder nhValue = group.getSub("value");
   return nhValue != null
       && nhValue.getNode().getFirstChild() != null
       && valueExpected.equals(nhValue.getNode().getFirstChild().getNodeValue());
 }