Re: JESS: [EXTERNAL] Jess exception: ' ' is a list, not a string

"Friedman-Hill, Ernest" <[email protected]> Mon, 12 Mar 2012 15:40:15 +0000
Newsgroups gmane.comp.java.jess
Message-ID <CB838FE1.9CAE%[email protected]>
Hmmm. If that's the whole error message, then the error should be occurring executing that "foreach" function, not a function nested inside it; otherwise there would be more context information. But "foreach" doesn't try to coerce anything into a string, so that doesn't make sense.

Inside your catch block,  do this:

(?ERROR printStackTrace)

And show us what you get; that should narrow it down quite a bit.


From: Hunter McMillen <[email protected]<mailto:[email protected]>>
Reply-To: <[email protected]<mailto:[email protected]>>
Date: Fri, 9 Mar 2012 23:10:06 -0500
To: <[email protected]<mailto:[email protected]>>
Subject: JESS: [EXTERNAL] Jess exception: ' ' is a list, not a string

I am receiving the error in the subject line when one of my rules is firing. I can't seem to find any other forum posts about it, here is my rule:

(defrule build-supply-depot
(minerals (value ?x&:(> ?x 100)))
=>
(try
(foreach ?u (?*bwapi* getMyUnits)
(if (= (?u getTypeID) ?*SCV_ID*) then
(bind ?p (call get-next-build-tile()))
(call ?*bwapi* drawCircle ?p.x ?p.y 100 111 FALSE FALSE)
(call ?*bwapi* build (?u getID) ?p.x ?p.y (UnitType$UnitTypes.Terran_Supply_Depot ordinal))
(break)))
catch
(printout t (call ?ERROR toString) crlf)
)
)

and here is the exact error message:

        while executing (foreach ?u (call ?*bwapi* getMyUnits)
                                   (if (= (call ?u getTypeID) ?*SCV_ID*) then
                                   (bind ?p (call get-next-build-tile ))
                                   (call ?*bwapi* drawCircle ?p.x ?p.y 100 111 FALSE FALSE)
                                   (call ?*bwapi* build (call ?u getID) ?p.x ?p.y (UnitType$UnitTypes.Terran_Supply_Depot ordinal))
                                   (break))).

  Message: '' is a list, not  a string.

But the error doesn't give me a line number.

Any help would be appreciated.
Thanks,
Hunter McMillen