private void popComplexType() {
    Preconditions.checkState(currentLevel > 0);
    currentLevel--;
    if (currentLevel > 0) {

      // Check for Map which occupies 2 levels (key separator and key/value pair separator).
      if (currentComplexTypeHelpers[currentLevel - 1] == null) {
        Preconditions.checkState(currentLevel > 1);
        Preconditions.checkState(
            currentComplexTypeHelpers[currentLevel - 2] instanceof MapComplexTypeHelper);
        currentLevel--;
      }
    }
  }
Parse the byte[] and fill each field.

This is an adapted version of the parse method in the LazyStruct class.
They should parse things the same way.
serde/src/java/org/apache/hadoop/hive/serde2/lazy/fast/LazySimpleDeserializeRead.java