code: private Class<?> readNewProxyClassDesc() throws ClassNotFoundException,
              IOException {
          int count = input.readInt();
          String[] interfaceNames = new String[count];
          for (int i = 0; i < count; i++) {
              interfaceNames[i] = input.readUTF();
          }
          Class<?> proxy = resolveProxyClass(interfaceNames);
          // Consume unread class annotation data and TC_ENDBLOCKDATA
          discardData();
          return proxy;
      }
docs: Reads a new proxy class descriptor from the receiver. It is assumed the
  proxy class descriptor has not been read yet (not a cyclic reference).
  Return the proxy class descriptor read.
  
  @return The {@code Class} read from the stream.
  
  @throws IOException
  If an IO exception happened when reading the class
  descriptor.
  @throws ClassNotFoundException
  If a class for one of the objects could not be found