summaryrefslogtreecommitdiff
path: root/test/files/jvm/serialization.scala
diff options
context:
space:
mode:
authorHubert Plociniczak <hubert.plociniczak@epfl.ch>2010-11-02 00:15:16 +0000
committerHubert Plociniczak <hubert.plociniczak@epfl.ch>2010-11-02 00:15:16 +0000
commitbcfe76ee680852c66781882d70ac02bd76e09ac9 (patch)
tree72d8a56d40bec04f0290a9909a6cff384d1ff4fb /test/files/jvm/serialization.scala
parentb80f27780458da880d47392e4ac747d196af355e (diff)
downloadscala-bcfe76ee680852c66781882d70ac02bd76e09ac9.tar.gz
scala-bcfe76ee680852c66781882d70ac02bd76e09ac9.tar.bz2
scala-bcfe76ee680852c66781882d70ac02bd76e09ac9.zip
Added separate bitmaps for private and transien...
Added separate bitmaps for private and transient lazy vals. Closes #3038, #1573. Review by dragos. I had to fix a couple of initialization issues that checkinit forced me to do and that weren't a problem before because the bitmap was serialized even for @transitive. For that I needed to change the setters in checkinit so that they also update the bitmap.
Diffstat (limited to 'test/files/jvm/serialization.scala')
-rw-r--r--test/files/jvm/serialization.scala30
1 files changed, 30 insertions, 0 deletions
diff --git a/test/files/jvm/serialization.scala b/test/files/jvm/serialization.scala
index 2db13c76fd..0c33ab7df8 100644
--- a/test/files/jvm/serialization.scala
+++ b/test/files/jvm/serialization.scala
@@ -557,6 +557,35 @@ object Test7 {
}
+
+// Verify that transient lazy vals don't get serialized
+@serializable
+class WithTransient {
+ @transient lazy val a1 = 1
+ @transient private lazy val a2 = 2
+ @transient @serializable object B
+
+ def test = {
+ println(a1)
+ println(a2)
+ if (B == null)
+ println("Transient nested object failed to serialize properly")
+ }
+}
+
+object Test8 {
+ val x = new WithTransient
+ x.test
+ try {
+ val y:WithTransient = read(write(x))
+ y.test
+ }
+ catch {
+ case e: Exception =>
+ println("Error in Test8: " + e)
+ }
+}
+
//############################################################################
// Test code
@@ -569,6 +598,7 @@ object Test {
Test5
Test6
Test7
+ Test8
}
}