@Override
  public TList readListBegin() throws TException {
    stackLevel++;
    tlist = new TList(ORDERED_TYPE, readI32());
    if (tlist.size == 0 && lastPrimitiveWasNull()) {
      return null;
    }
    return tlist;
  }
This method always return the same instance of TList to avoid creating new
instances. It is the responsibility of the caller to read the value before
calling this method again.
serde/src/java/org/apache/hadoop/hive/serde2/thrift/TBinarySortableProtocol.java