Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.3.0
-
None
-
None
Description
The PType#getDetachedValue method performs a deep copy (if needed) in order to allow DoFns to hold on to values that have been passed through them (for example, in join functions).
The WritablePType class uses the built-in input and output MapFns in the PType to handle this deep copying, but the input and output MapFns don't get initialized (i.e. initialize isn't called on them) after they are deserialized along with the DoFn that is using them. In some rare cases (at least for tuples), this can result in NullPointerExceptions or other nastiness.