diff options
author | Hubert Plociniczak <hubert.plociniczak@epfl.ch> | 2010-11-02 00:15:16 +0000 |
---|---|---|
committer | Hubert Plociniczak <hubert.plociniczak@epfl.ch> | 2010-11-02 00:15:16 +0000 |
commit | bcfe76ee680852c66781882d70ac02bd76e09ac9 (patch) | |
tree | 72d8a56d40bec04f0290a9909a6cff384d1ff4fb /test/files/jvm/serialization.scala | |
parent | b80f27780458da880d47392e4ac747d196af355e (diff) | |
download | scala-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.scala | 30 |
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 } } |