code: protected Unmarshaller prepareForUnMarshalling(final DataInput dataInput, final ClassResolver classResolver)
              throws IOException {
          final Unmarshaller unmarshaller = this.getUnMarshaller(marshallerFactory, classResolver);
          final InputStream is = new InputStream() {
              @Override
              public int read() throws IOException {
                  try {
  
                      final int b = dataInput.readByte();
                      return b & 0xff;
                  } catch (EOFException eof) {
                      return -1;
                  }
              }
          };
          final ByteInput byteInput = Marshalling.createByteInput(is);
          // start the unmarshaller
          unmarshaller.start(byteInput);
  
          return unmarshaller;
      }
docs: Creates and returns a {@link org.jboss.marshalling.Unmarshaller} which is ready to be used for unmarshalling. The
  {@link org.jboss.marshalling.Unmarshaller#start(org.jboss.marshalling.ByteInput)} will be invoked by this method, to use
  the passed {@link java.io.DataInput dataInput}, before returning the unmarshaller.
  
  @param dataInput The data input from which to unmarshall
  @param classResolver The class resolver to use for unmarshalling
  @return
  @throws IOException