docs: private static int compareLobContents(final IonLob lob1, final IonLob lob2)
      {
          int in1 = lob1.byteSize();
          int in2 = lob2.byteSize();
          int result = (in1- in2);
  
          if (result == 0) {
              final InputStream stream1 = lob1.newInputStream();
              final InputStream stream2 = lob2.newInputStream();
  
              // too bad Java doesn't do RAII with better syntax...
              try {
                try {
                  try {
                    while (result == 0) {
                        in1 = stream1.read();
                        in2 = stream2.read();
                        if (in1 == -1 || in2 == -1) {
                          if (in1 != -1) result = 1;
                          if (in2 != -1) result = -1;
                          break;
                        }
                        result = (in1 - in2);
                    }
                  } finally {
                    stream1.close();
                  }
                } finally {
                  stream2.close();
                }
              } catch (final IOException e) {
                  // XXX hopefully won't happen with LOB streams--if it does rethrow unchecked.
                  //     this would violate Object.equals() would it not?
                  throw new IonException(e);
              }
          }
  
          return result;
      }