Switching to not initializing loaded classes up front and cleaning up the test case.

This commit is contained in:
Viktor Klang 2012-09-27 11:34:04 +02:00
parent 5ebbd0689e
commit a789e1a19d
2 changed files with 4 additions and 11 deletions

View file

@ -182,21 +182,15 @@ class SerializeSpec extends AkkaSpec(SerializeSpec.config) {
"use ByteArraySerializer for byte arrays" in {
val byteSerializer = ser.serializerFor(classOf[Array[Byte]])
byteSerializer.getClass must be(classOf[ByteArraySerializer])
byteSerializer.getClass must be theSameInstanceAs classOf[ByteArraySerializer]
val ba = "foo".getBytes("UTF-8")
(byteSerializer.toBinary(ba) eq ba) must be === true
(byteSerializer.fromBinary(ba) eq ba) must be === true
for (a Seq("foo".getBytes("UTF-8"), null: Array[Byte], Array[Byte]()))
byteSerializer.fromBinary(byteSerializer.toBinary(a)) must be theSameInstanceAs a
intercept[IllegalArgumentException] {
byteSerializer.toBinary("pigdog")
}.getMessage must be === "ByteArraySerializer only serializes byte arrays, not [pigdog]"
byteSerializer.toBinary(null) must be === null
}
}
}

View file

@ -65,7 +65,7 @@ class ReflectiveDynamicAccess(val classLoader: ClassLoader) extends DynamicAcces
override def getClassFor[T: ClassTag](fqcn: String): Try[Class[_ <: T]] =
Try[Class[_ <: T]]({
val c = Class.forName(fqcn, true, classLoader).asInstanceOf[Class[_ <: T]]
val c = Class.forName(fqcn, false, classLoader).asInstanceOf[Class[_ <: T]]
val t = implicitly[ClassTag[T]].runtimeClass
if (t.isAssignableFrom(c)) c else throw new ClassCastException(t + " is not assignable from " + c)
})
@ -101,5 +101,4 @@ class ReflectiveDynamicAccess(val classLoader: ClassLoader) extends DynamicAcces
} recover { case i: InvocationTargetException if i.getTargetException ne null throw i.getTargetException }
}
}
}