Uploaded image for project: 'Apache Nemo'
  1. Apache Nemo
  2. NEMO-416

Guava vendor version conflict when deserializing Task object

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Workaround
    • None
    • 0.2
    • None

    Description

      1. Description

      There are two guava dependencies of Nemo: com.google.guava, org.apache.beam.vendor.guava

      The latter was introduced in beam for long. Since Nemo already updated Beam version from 2.6 to 2.11, we have to also include org.apache.beam.vendor.guava in our dependencies. In beam 2.6, we did not have this vendor guava.

      During deserialization, Task cannot be deserialized and cast successfully, and we presume it is because of this two guava libraries, that we have the below ClassCastException.

      1. Error Message
      java.lang.ClassCastException: cannot assign instance of org.apache.beam.vendor.guava.v20_0.com.google.common.collect.ImmutableBiMap$SerializedForm to field org.apache.beam.sdk.transforms.display.DisplayData.entries of type org.apache.beam.vendor.guava.v20_0.com.google.common.collect.ImmutableMap in instance of org.apache.beam.sdk.transforms.display.DisplayData
      
      1. Steps to reproduce

      https://github.com/apache/incubator-nemo/pull/237

      1. References

      Stackoverflow: readresolve-not-working-an-instance-of-guavas-serializedform-appears
      Stackoverflow: java serialization error when reloading in new run of a program

      Attachments

        Issue Links

          Activity

            People

              alapha23 Gao Zhiyuan
              alapha23 Gao Zhiyuan
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: