Details
-
Improvement
-
Status: Resolved
-
P2
-
Resolution: Fixed
-
None
-
None
Description
In an attempt for BEAM-8695 LengthPrefixUnknownCodersTest failed when trying to upgrade google-http-client v1.34.0, because LengthPrefixUnknownCodersTest relies on the equality of CloudObject with Map.
Class hierarchy:
CloudObject < GenericJson < GenericData < AbstractMap
It was working fine as long as CloudObject's equality inherits AbstractMap.equality. GenericData did not override equals method in google-http-client v1.28.0 and earlier. The comparison was checking only key and value of a Map.
assertEquals( CloudObjects.asCloudObject(prefixedWindowedValueCoder, null), // This is a CloudObject lengthPrefixedCoderCloudObject); // This is a Map
However, with google-http-client v1.29.0 or higher, GenericData has its own equals method (PR#589) that checks classInfo and thus the comparisons between a CloudObject and a Map always fail.
Test failures when I tried to upgrade google-http-client 1.34.0 (Jenkins):
org.apache.beam.runners.dataflow.worker.graph.LengthPrefixUnknownCodersTest.testLengthPrefixUnknownCoders org.apache.beam.runners.dataflow.worker.graph.LengthPrefixUnknownCodersTest.testLengthPrefixForInstructionOutputNodeWithGrpcNodeSuccessor org.apache.beam.runners.dataflow.worker.graph.LengthPrefixUnknownCodersTest.testLengthPrefixForLengthPrefixCoder org.apache.beam.runners.dataflow.worker.graph.LengthPrefixUnknownCodersTest.testLengthPrefixForSideInputInfos org.apache.beam.runners.dataflow.worker.graph.LengthPrefixUnknownCodersTest.testLengthPrefixParDoInstructionCoder org.apache.beam.runners.dataflow.worker.graph.LengthPrefixUnknownCodersTest.testLengthPrefixInstructionOutputCoder org.apache.beam.runners.dataflow.worker.graph.LengthPrefixUnknownCodersTest.testLengthPrefixWriteInstructionCoder org.apache.beam.runners.dataflow.worker.graph.LengthPrefixUnknownCodersTest.testLengthPrefixAndReplaceUnknownCoder org.apache.beam.runners.dataflow.worker.graph.LengthPrefixUnknownCodersTest.testLengthPrefixAndReplaceForRunnerNetwork org.apache.beam.runners.dataflow.worker.graph.LengthPrefixUnknownCodersTest.testLengthPrefixForInstructionOutputNodeWithGrpcNodePredecessor org.apache.beam.runners.dataflow.worker.graph.LengthPrefixUnknownCodersTest.testLengthPrefixReadInstructionCoder
Attachments
Issue Links
- links to