title: Why am I getting this error Premature end of file?
body: <p>I am trying to parse an <code>XML response</code>, but I am failing miserably. I thought initially 
  that the <code>xml</code> was just not being returned in the response, so I crafted up the code below with a direct link to my <code>xml</code> file online. I am able to print the <code>XML</code> to screen with no problems. However when I call my parse method I get <strong>Premature end of file.</strong> </p>
  
  <p>It works if I pass the URL directly: </p>
  
  <ul>
  <li>builder.parse("");</li>
  </ul>
  
  <p>but fails when I passed an InputStream: </p>
  
  <ul>
  <li><p>builder.parse(connection.getInputStream());</p>
  
  <pre><code>  try {
      URL url = new URL(xml);
      URLConnection uc =  url.openConnection();
      HttpURLConnection  connection = (HttpURLConnection )uc;
  
      connection.setDoInput(true);
      connection.setDoOutput(true);
  
      InputStream instream;
      InputSource source;
      //get XML from InputStream
      if(connection.getResponseCode()&gt;= 200){
          connection.connect();       
          instream = connection.getInputStream();         
          parseDoc(instream);     
      }
      else{
          instream = connection.getErrorStream();
      }
  
  
  } catch (MalformedURLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
  } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
  } catch (ParserConfigurationException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
  } catch (SAXException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
  }
  
  
  
   static void parseDoc(InputStream instream) throws ParserConfigurationException,
   SAXException, IOException{
  
  
    BufferedReader buff_read = new BufferedReader(new InputStreamReader(instream,"UTF-8"));
      String  inputLine = null;
  
      while((inputLine = buff_read.readLine())!= null){
          System.out.println(inputLine);
      }
  
    DocumentBuilderFactory factory =DocumentBuilderFactory.newInstance();
    factory.isIgnoringElementContentWhitespace();
    DocumentBuilder builder = factory.newDocumentBuilder();
    Document doc = builder.parse(instream);
  }
  </code></pre></li>
  </ul>
  
  <p>The errors I am getting:</p>
  
  <pre><code>    [Fatal Error] :1:1: Premature end of file.
  org.xml.sax.SAXParseException: Premature end of file.
      at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
      at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
      at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
      at com.ameba.api.network.MainApp.parseDoc(MainApp.java:78)
      at com.ameba.api.network.MainApp.main(MainApp.java:41)
  </code></pre>