From 607824cc22b9d1d780cc9e2639e3bbf2d9f4e00f Mon Sep 17 00:00:00 2001 From: Mark Harrah Date: Tue, 18 Sep 2012 13:22:40 -0400 Subject: [PATCH] better error message for null setting values --- util/collection/INode.scala | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/util/collection/INode.scala b/util/collection/INode.scala index b47031a43..0e48324e3 100644 --- a/util/collection/INode.scala +++ b/util/collection/INode.scala @@ -88,7 +88,10 @@ abstract class EvaluateSettings[Scope] private[this] val calledBy = new collection.mutable.ListBuffer[BindNode[_, T]] override def toString = getClass.getName + " (state=" + state + ",blockedOn=" + blockedOn + ",calledBy=" + calledBy.size + ",blocking=" + blocking.size + "): " + - ( (static.toSeq.flatMap { case (key, value) => if(value eq this) key.toString :: Nil else Nil }).headOption getOrElse "non-static") + keyString + + private[this] def keyString = + (static.toSeq.flatMap { case (key, value) => if(value eq this) init.showFullKey(key) :: Nil else Nil }).headOption getOrElse "non-static" final def get: T = synchronized { assert(value != null, toString + " not evaluated") @@ -134,6 +137,7 @@ abstract class EvaluateSettings[Scope] } protected final def setValue(v: T) { assert(state != Evaluated, "Already evaluated (trying to set value to " + v + "): " + toString) + if(v == null) error("Setting value cannot be null: " + keyString) value = v state = Evaluated blocking foreach { _.unblocked() }