public Object readLengthList(AbstractHessianInput in, int length) throws IOException {
    Collection list = createList();

    in.addRef(list);

    for (; length > 0; length--) list.add(in.readObject());

    return list;
  }
  public Object readList(AbstractHessianInput in, int length) throws IOException {
    Collection list = createList();

    in.addRef(list);

    while (!in.isEnd()) list.add(in.readObject());

    in.readEnd();

    return list;
  }
  public AbstractHessianInput getHessianInput(InputStream is) {
    AbstractHessianInput in;

    if (_isDebug) is = new HessianDebugInputStream(is, new PrintWriter(System.out));

    if (_isHessian2Reply) in = new Hessian2Input(is);
    else in = new HessianInput(is);

    in.setRemoteResolver(getRemoteResolver());

    in.setSerializerFactory(getSerializerFactory());

    return in;
  }