public DistributionMessage getMessage()
      throws InterruptedException, IOException, ClassNotFoundException {
    // if (Thread.interrupted()) throw new InterruptedException(); not necessary done in
    // waitUntilDone
    // this.t.join();
    waitUntilDone();
    if (failure != null) {
      // logit("failed with" + this.failure);
      if (failure instanceof ClassNotFoundException) {
        throw (ClassNotFoundException) failure;
      } else if (failure instanceof IOException) {
        throw (IOException) failure;
      } else {
        IOException io =
            new IOException("failure during message deserialization", failure);
        throw io;
      }
    } else {
      // logit("result =" + this.result);
      return result;
    }
  }
Waits for the deserialization to complete and returns the deserialized message.

@throws IOException A problem occurred while deserializing the message.
@throws ClassNotFoundException The class of an object read from <code>in</code> could not be
        found
geode-core/src/main/java/org/apache/geode/internal/tcp/MsgDestreamer.java