Closed
Description
I tried compiling on the latest M5 with Seth's branch and get serialization issues:
[error] Test scala.xml.SerializationTest.unmatched failed: expected:<> but was:<List()>, took 0.078 sec
[error] Test scala.xml.SerializationTest.xmlLiteral failed: expected:<<node/>> but was:<List(scala.collection.generic.DefaultSerializationProxy@28ec9fc9)>, took 0.013 sec
[error] Test scala.xml.SerializationTest.implicitConversion failed: expected:<<child></child><child/>> but was:<List(List(scala.collection.generic.DefaultSerializationProxy@5844dad8), List(scala.collection.generic.DefaultSerializationProxy@3204a005))>, took 0.002 sec
[error] Test scala.xml.SerializationTest.empty failed: expected:<> but was:<List()>, took 0.001 sec
[error] Test scala.xml.XMLTestJVM.serializeAttribute failed: java.lang.ClassCastException: scala.collection.immutable.$colon$colon cannot be cast to scala.xml.Attribute, took 0.011 sec
[error] at scala.xml.XMLTestJVM.serializeAttribute(XMLTest.scala:218)
[error] ...
[error] Test scala.xml.XMLTestJVM.serializeDocument failed: java.lang.ClassCastException: scala.collection.immutable.$colon$colon cannot be cast to scala.xml.Document, took 0.016 sec
[error] at scala.xml.XMLTestJVM.serializeDocument(XMLTest.scala:228)
[error] ...
[error] Test scala.xml.XMLTestJVM.serializeElem failed: java.lang.ClassCastException: scala.collection.immutable.$colon$colon cannot be cast to scala.xml.Elem, took 0.002 sec
[error] at scala.xml.XMLTestJVM.serializeElem(XMLTest.scala:236)
[error] ...
[error] Test scala.xml.XMLTestJVM.serializeComplex failed: java.lang.ClassCastException: scala.collection.immutable.$colon$colon cannot be cast to scala.xml.Elem, took 0.082 sec
[error] at scala.xml.XMLTestJVM.serializeComplex(XMLTest.scala:271)
[error] ...
[error] Failed: Total 164, Failed 8, Errors 0, Passed 156
[error] Failed tests:
[error] scala.xml.XMLTestJVM
[error] scala.xml.SerializationTest
When I look in the last passing 2.13 community build from Aug-22 I only see scala-xml getting skipped:
[scala-xml] --== Building scala-xml ==--
[scala-xml] Found cached project build, uuid 4cab6219ea2340373d5bbf922cd70ba828d91bfd
[scala-xml] --== End Building scala-xml ==--
According to @xuwei-k in comment in scala-xml#253, the issue is related to changes
Should we change
scala.Iterable#writeReplace
implementation from the viewpoint of compatibility and liskov substitution principle? 🤔
scala/scala#6676
I'm not sure how @xuwei-k found this so quickly, but indeed xuwei-k/scala-xml@97bc6b4 fixed my issue.
commit 97bc6b4e9e09b91937528ddf5a2d131cbac278ec (xuwei-k/writeReplace)
Author: xuwei-k
Date: Thu Aug 30 09:09:04 2018 +0900
override writeReplace. fix serialize error
diff --git a/shared/src/main/scala/scala/xml/MetaData.scala b/shared/src/main/scala/scala/xml/MetaData.scala
index 1affff4e..cdb98851 100644
--- a/shared/src/main/scala/scala/xml/MetaData.scala
+++ b/shared/src/main/scala/scala/xml/MetaData.scala
@@ -225,4 +225,6 @@ abstract class MetaData
final def remove(namespace: String, owner: Node, key: String): MetaData =
remove(namespace, owner.scope, key)
+
+ protected[this] override def writeReplace(): AnyRef = this
}
diff --git a/shared/src/main/scala/scala/xml/NodeSeq.scala b/shared/src/main/scala/scala/xml/NodeSeq.scala
index 97b2ddf2..c99fe978 100644
--- a/shared/src/main/scala/scala/xml/NodeSeq.scala
+++ b/shared/src/main/scala/scala/xml/NodeSeq.scala
@@ -155,4 +155,6 @@ abstract class NodeSeq extends AbstractSeq[Node] with immutable.Seq[Node] with S
override def toString(): String = theSeq.mkString
def text: String = (this map (_.text)).mkString
+
+ protected[this] override def writeReplace(): AnyRef = this
}
Metadata
Metadata
Assignees
Labels
No labels