dump a bit less state on cycles

This commit is contained in:
Mark Harrah 2011-06-12 21:32:51 -04:00
parent 4f2490d124
commit 4af89d51e1
3 changed files with 4 additions and 3 deletions

View File

@ -5,5 +5,5 @@ object ParentTest extends Build
lazy val parent: Project = Project("Flowmodel", file(".")) aggregate(core, reporters) lazy val parent: Project = Project("Flowmodel", file(".")) aggregate(core, reporters)
lazy val core: Project = Project("Flowmodel core", file("core"), delegates = parent :: Nil) lazy val core: Project = Project("Flowmodel core", file("core"), delegates = parent :: Nil)
lazy val reporters: Project = Project("Extra reporters", file("reporters"), delegates = parent :: Nil) aggregate(jfreechart) dependsOn(jfreechart) lazy val reporters: Project = Project("Extra reporters", file("reporters"), delegates = parent :: Nil) aggregate(jfreechart) dependsOn(jfreechart)
lazy val jfreechart: Project = Project("JFreeChart reporters", file("jfreechart"), delegates = reporters :: Nil) dependsOn(core) lazy val jfreechart: Project = Project("JFreeChart reporters", file("jfreechart")/*, delegates = reporters :: Nil*/) dependsOn(core)
} }

View File

@ -67,7 +67,7 @@ final class Execute[A[_] <: AnyRef](checkCycles: Boolean, triggers: Triggers[A])
assert( !reverse.isEmpty, "Nothing to process." ) assert( !reverse.isEmpty, "Nothing to process." )
if( !state.values.exists( _ == Running ) ) { if( !state.values.exists( _ == Running ) ) {
snapshotCycleCheck() snapshotCycleCheck()
assert(false, "Internal task engine error: nothing running. This usually indicates a cycle in tasks.\n Dumping state:\n" + state.mkString("\n\t")) assert(false, "Internal task engine error: nothing running. This usually indicates a cycle in tasks.\n Calling tasks (internal task engine state):\n" + dumpCalling)
} }
} }
@ -81,6 +81,7 @@ final class Execute[A[_] <: AnyRef](checkCycles: Boolean, triggers: Triggers[A])
assert( complete, "Not all state was Done." ) assert( complete, "Not all state was Done." )
} }
} }
def dumpCalling: String = state.filter(_._2 == Calling).mkString("\n\t")
def call[T](node: A[T], target: A[T])(implicit strategy: Strategy) def call[T](node: A[T], target: A[T])(implicit strategy: Strategy)
{ {

View File

@ -25,7 +25,7 @@ object Task
final case class Task[T](info: Info[T], work: Action[T]) final case class Task[T](info: Info[T], work: Action[T])
{ {
def original = info.original getOrElse this def original = info.original getOrElse this
override def toString = info.name orElse original.info.name getOrElse ("Task(" + info + ", " + work + ")") override def toString = info.name orElse original.info.name getOrElse ("Task(" + info + ")")
} }
/** `original` is used during transformation only.*/ /** `original` is used during transformation only.*/
final case class Info[T](attributes: AttributeMap = AttributeMap.empty, original: Option[Task[T]] = None) final case class Info[T](attributes: AttributeMap = AttributeMap.empty, original: Option[Task[T]] = None)