summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorPhilipp Haller <hallerp@gmail.com>2009-10-26 22:50:56 +0000
committerPhilipp Haller <hallerp@gmail.com>2009-10-26 22:50:56 +0000
commitf9551d0c2f92ded7ef574121d89cda742e407f2d (patch)
treea2bf2da9e6e12bfedd258f10a270010e71a4362e /test
parent4b8fe44351a26d3cc3d82f36359de4c125a71edb (diff)
downloadscala-f9551d0c2f92ded7ef574121d89cda742e407f2d.tar.gz
scala-f9551d0c2f92ded7ef574121d89cda742e407f2d.tar.bz2
scala-f9551d0c2f92ded7ef574121d89cda742e407f2d.zip
Fix and test for #2214.
Diffstat (limited to 'test')
-rw-r--r--test/files/jvm/t2214.check3
-rw-r--r--test/files/jvm/t2214.scala39
2 files changed, 42 insertions, 0 deletions
diff --git a/test/files/jvm/t2214.check b/test/files/jvm/t2214.check
new file mode 100644
index 0000000000..72601bac11
--- /dev/null
+++ b/test/files/jvm/t2214.check
@@ -0,0 +1,3 @@
+got DEBT
+got FUTURE
+got EQUITY
diff --git a/test/files/jvm/t2214.scala b/test/files/jvm/t2214.scala
new file mode 100644
index 0000000000..db3e400bbb
--- /dev/null
+++ b/test/files/jvm/t2214.scala
@@ -0,0 +1,39 @@
+
+object InvestmentType extends Enumeration {
+ val Debt = Value("DEBT")
+ val Future = Value("FUTURE")
+ val Equity = Value("EQUITY")
+}
+
+object Test {
+ def main(args: Array[String]) = {
+ val buf = new java.io.ByteArrayOutputStream
+ val oos = new java.io.ObjectOutputStream(buf)
+ InvestmentType.values.foreach {i => oos.writeObject(i)}
+ oos.flush
+ oos.close
+ val ois = new java.io.ObjectInputStream(
+ new java.io.ByteArrayInputStream(buf.toByteArray))
+ var obj: Object = null
+ foreach(ois) { obj =>
+ obj match {
+ case InvestmentType.Debt => println("got " + obj)
+ case InvestmentType.Equity => println("got " + obj)
+ case InvestmentType.Future => println("got " + obj)
+ case _ => println("unknown: " + obj + " of: " + obj.getClass)
+ }
+ }
+ }
+
+ def foreach(os: java.io.ObjectInputStream)(f: Object => Unit) {
+ try {
+ val obj = os.readObject
+ if (obj != null) {
+ f(obj)
+ foreach(os)(f)
+ }
+ } catch {
+ case e: java.io.EOFException => //IGNORE
+ }
+ }
+}