title: IOException: stream is closed, NullPointerException with HttpURLConnection disconnect
body: <p>everyone. I'm coding a function that connects to a server by using Class HttpURLConnection. In the code, I establish a connection, call getOutputStream() and getInputStream() methods in order. Then I disconnect the connection. After this, I try to get data which has been obtained by getInputStream() method, but the compiler reminds NullPointerException.</p>
  
  <p>Code in below:</p>
  
  <pre><code>    DataOutputStream out = null;
      InputStreamReader inStrReader = null;
      BufferedReader reader = null;
      HttpURLConnection connection = null;
  
      try {
          URL postUrl = new URL(null, url, new sun.net.www.protocol.https.Handler());
          connection = (HttpURLConnection) postUrl.openConnection();
          ...//some setting methods
          connection.connect();
          out = new DataOutputStream(connection.getOutputStream());
          out.writeBytes(JSONObject.toJSONString(param));
          out.flush();
          out.close();
  
          inStrReader = new InputStreamReader(connection.getInputStream(), "utf-8");
          reader = new BufferedReader(inStrReader);
          connection.disconnect();   //&lt;--HERE, release the connection
          StringBuilder stringBuilder = new StringBuilder();
          for (String line = reader.readLine(); line != null; line = reader.readLine()) {     //&lt;--null pointer
              stringBuilder.append(line);
          }
      } catch (Exception e) {
          e.printStackTrace();
          return null;
      } finally {
          if (out != null) {
              try {
                  out.close();
              } catch (IOException e) {
                  e.printStackTrace();
              }
          }
          if (inStrReader != null) {
              try {
                  inStrReader.close();
              } catch (IOException e) {
                  e.printStackTrace();
              }
          }
          if (reader != null) {
              try {
                  reader.close();
              } catch (IOException e) {
                  e.printStackTrace();
              }
          }
      }
  </code></pre>
  
  <p>After debug attempts, When I move the disconnection line to the last line in finally module, everything will be ok. But I'm confused, which happens when I already assgined the 'inputstream' value to 'reader'.</p>
  
  <p>Thanks a lot.</p>