From bcfe76ee680852c66781882d70ac02bd76e09ac9 Mon Sep 17 00:00:00 2001 From: Hubert Plociniczak Date: Tue, 2 Nov 2010 00:15:16 +0000 Subject: 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. --- test/files/jvm/serialization.scala | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'test/files/jvm/serialization.scala') 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 } } -- cgit v1.2.3