Github user andrewor14 commented on a diff in the pull request:
https://github.com/apache/spark/pull/6625#discussion_r31677810
--- Diff:
core/src/test/scala/org/apache/spark/serializer/SerializationDebuggerSuite.scala
---
@@ -106,6 +106,48 @@ class SerializationDebuggerSuite extends SparkFunSuite
with BeforeAndAfterEach {
assert(s(3).contains("writeExternal"))
assert(s(4).contains("ExternalizableClass"))
}
+
+ test("externalizable class writing out serializable objects") {
+ assert(find(new ExternalizableClass(new SerializableClass1)).isEmpty)
+ }
+
+ test("object containing writeReplace() which returns not serializable
object") {
+ val s = find(new SerializableClassWithWriteReplace(new
NotSerializable))
+ assert(s.size === 3)
+ assert(s(0).contains("NotSerializable"))
+ assert(s(1).contains("writeReplace"))
+ assert(s(2).contains("SerializableClassWithWriteReplace"))
+ }
+
+ test("object containing writeObject() and not serializable field") {
+ val s = find(new SerializableClassWithWriteObject(new NotSerializable))
+ assert(s.size === 3)
+ assert(s(0).contains("NotSerializable"))
+ assert(s(1).contains("writeObject data"))
+ assert(s(2).contains("SerializableClassWithWriteObject"))
+ }
+
+ test("object containing writeObject() and serializable field") {
+ assert(find(new SerializableClassWithWriteObject(new
SerializableClass1)).isEmpty)
+ }
+
+ test("object of serializable subclass with more fields than superclass
(SPARK-7180)") {
+ // This should not throw ArrayOutOfBoundsException
+ find(new SerializableSubclass(new SerializableClass1))
+ }
+
+ test("crazy nested objects") {
+ val s = find(
+ new SerializableClassWithWriteReplace(
+ new ExternalizableClass(
+ new SerializableSubclass(
+ new SerializableArray(
+ Array(new SerializableClass1, new SerializableClass2(new
NotSerializable))
+ ))))
+ )
+ assert(s.nonEmpty)
+ assert(s.head.contains("NotSerializable"))
+ }
--- End diff --
yay!
---
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]