@Override
  public TMap readMapBegin() throws TException {
    stackLevel++;
    tmap = new TMap(ORDERED_TYPE, ORDERED_TYPE, readI32());
    if (tmap.size == 0 && lastPrimitiveWasNull()) {
      return null;
    }
    return tmap;
  }
This method always return the same instance of TMap 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