title: Why does readBoolean block but readObject doesn't?
body: <p>I have the following method in my client:</p>
  
  <pre><code>  public boolean save() {
      this.ostream.writeObject(Command.SAVE); // write to socket
      return this.istream.readBoolean();
    }
  </code></pre>
  
  <p>In my server:</p>
  
  <pre><code>    Object o = this.istream.readObject();
      if (o == Command.SAVE) {
        boolean isSaved = save(); // save to database
        this.ostream.writeBoolean(isSaved);
      }
  </code></pre>
  
  <p>If I use <code>readBoolean</code> and <code>writeBoolean</code>, the <code>readBoolean</code> method in the client blocks, but if I use <code>readObject</code> and <code>writeObject</code> instead, my application works fine. Is there a reason why the <code>readBoolean</code> method would block?</p>