Github user tdas commented on a diff in the pull request:

    https://github.com/apache/spark/pull/6625#discussion_r31675387
  
    --- Diff: 
core/src/main/scala/org/apache/spark/serializer/SerializationDebugger.scala ---
    @@ -145,17 +145,25 @@ private[spark] object SerializationDebugger extends 
Logging {
           // An object contains multiple slots in serialization.
           // Get the slots and visit fields in all of them.
           val (finalObj, desc) = findObjectAndDescriptor(o)
    +
    +      if (!finalObj.eq(o)) {
    +        return visit(finalObj, s"writeReplace data (class: 
${finalObj.getClass.getName})" :: stack)
    +      }
    +
           val slotDescs = desc.getSlotDescs
           var i = 0
           while (i < slotDescs.length) {
             val slotDesc = slotDescs(i)
             if (slotDesc.hasWriteObjectMethod) {
    -          // TODO: Handle classes that specify writeObject method.
    +          val childStack = 
visitSerializableWithWriteObjectMethod(finalObj, slotDesc, stack)
    +          if (childStack.nonEmpty) {
    +            return childStack
    +          }
             } else {
               val fields: Array[ObjectStreamField] = slotDesc.getFields
               val objFieldValues: Array[Object] = new 
Array[Object](slotDesc.getNumObjFields)
               val numPrims = fields.length - objFieldValues.length
    -          desc.getObjFieldValues(finalObj, objFieldValues)
    +          slotDesc.getObjFieldValues(finalObj, objFieldValues)
    --- End diff --
    
    This is the bug fix for SPARK-7180


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to