Uploaded image for project: 'Apache Gora'
  1. Apache Gora
  2. GORA-188

testSerdeWebPage failure - PersistentBase#equals() fails with map fields

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Later
    • 0.2.1
    • 0.3
    • gora-core
    • None

    Description

      As shown here:

      junit.framework.AssertionFailedError: expected:<org.apache.gora.examples.generated.WebPage@4b49ab6f {
        "url":"http://bar.com/"
        "content":"java.nio.HeapByteBuffer[pos=1 lim=1 cap=1]"
        "parsedContent":"[1]"
        "outlinks":"{http://bazbar.com=a8, http://baz.com/1.jsp&q=barbaz&p=foo=a6, http://baz.com/1.jsp&q=barbaz=a5, http://bar.com/3.jsp=a3, http://bar.com/1.html=a4, http://foo.com/1.html=a1, http://foo.com/2.html=a2, http://baz.com/1.jsp&q=foo=a7}"
        "metadata":"org.apache.gora.examples.generated.Metadata@51a {
        "version":"1"
        "data":"{metakey=metavalue}"
      }"
      }> but was:<org.apache.gora.examples.generated.WebPage@4b6d94c0 {
        "url":"http://bar.com/"
        "content":"java.nio.HeapByteBuffer[pos=0 lim=1 cap=1]"
        "parsedContent":"[1]"
        "outlinks":"{http://baz.com/1.jsp&q=barbaz=a5, http://baz.com/1.jsp&q=barbaz&p=foo=a6, http://bazbar.com=a8, http://bar.com/3.jsp=a3, http://foo.com/1.html=a1, http://bar.com/1.html=a4, http://foo.com/2.html=a2, http://baz.com/1.jsp&q=foo=a7}"
        "metadata":"org.apache.gora.examples.generated.Metadata@51a {
        "version":"1"
        "data":"{metakey=metavalue}"
      }"
      }>
      	at junit.framework.Assert.fail(Assert.java:50)
      	at junit.framework.Assert.failNotEquals(Assert.java:287)
      	at junit.framework.Assert.assertEquals(Assert.java:67)
      	at junit.framework.Assert.assertEquals(Assert.java:74)
      	at org.apache.gora.util.TestIOUtils.testSerializeDeserialize(TestIOUtils.java:125)
      	at org.apache.gora.mapreduce.TestPersistentSerialization.testSerdeWebPage(TestPersistentSerialization.java:85)
      

      – edited : In PersistentBase#getFieldHashCode() (at line 256) must check if the field is UNION and call recursively in that case to compute properly the hash code.

      Attachments

        Issue Links

          Activity

            People

              alfonsonishikawa Alfonso Nishikawa Muñumer
              alfonsonishikawa Alfonso Nishikawa Muñumer
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: