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