I think Florian Fischer wrote:
[Charset iso-8859-1 unsupported, filtering to ASCII...]
> Strange error message
> 
> Hello.  I got the following error message that I cannot make any sense of.
>     "Bad index 21 in call to get() on this vector:  
> (MAIN::__not_or_test_CE)."
> 

Looks like a rule compilation error. I was able to reproduce it from
your code so I will have a look and get back to you. Thanks for the report.


> The rule generating the error is below, the error stack trace is after that.
> If I use the (or ...) redoing two possible patient matches, it works.  
> If I use the equivalent (test (or ...)) it gives the error message and 
> seems to hang Jess badly.
> 
> Is this use of (test ...) legitimate, or did I stumble uppon a bug?
> 
> I am using Jess 6.
> 
> Regards,
> Florian Fischer
> 
> ---------------------------------------------------------------------------------------------
> The rule
> ---------------------------------------------------------------------------------------------
> (defrule topo-ATT-UPED-C-remove-patient
>   ?f <- (zone-includes-patient (zone ?z&"ATT-UPED-C") (patient ?ipat))
>   (not (and
>             (patient (id ?ipat) (careUnitMnemo "UPED")
>                      (flagCasChir ?fc) (flagTraumaRea ?ft))
> ; option 1 - test
> ;            (test (or (> ?fc 0) (> ?ft 0)) )
> ; option 2 - redo the matches
>             (or
>                 (patient (id ?ipat) (careUnitMnemo "UPED") (flagCasChir 
> 1)) 
>                 (patient (id ?ipat) (careUnitMnemo "UPED") 
> (flagTraumaRea 1)) 
>             )
> ; end options
>             (or
>                 ; explicit ATT-UPED
>                 (patient (id ?ipat) (room "ATT-UPED"))
>                 ; ATT-UPED is default for UPED
>                 (and
>                      (patient (id ?ipat) (room ?r))
>                      (not (zone (zonetype "room") (unit "UPED") (room ?r)) )
>                 )
>             )
>   )    )
>   =>
>   (printout t "(jess) Special zone " ?z " looses patient " ?ipat crlf)
>   (retract ?f)
> )
> 
> ---------------------------------------------------------------------------------------------
> The error
> ---------------------------------------------------------------------------------------------
> Exception jess.JessException
> Jess reported an error in routine ValueVector.get
>         while executing (> ?_2_fc 0)
>         while executing (or (> ?_2_fc 0) (> ?_2_ft 0))
>         while executing 'test' CE
>         while executing rule LHS (Node2)
>         while executing rule LHS (Node2)
>         while executing rule LHS (TEQ)
>         while executing rule LHS (TECT).
>   Message: Bad index 21 in call to get() on this vector:  
> (MAIN::__not_or_test_CE).
>   Program text: ( defrule topo-ATT-UPED-C-remove-patient ?f <- ( 
> zone-includes-patient ( zone ?z & "ATT-UPED-C" ) ( patient ?ipat ) ) ( 
> not ( and ( patient ( id ?ipat ) ( careUnitMnemo "UPED" ) ( flagCasChir 
> ?fc ) ( flagTraumaRea ?ft ) ) ( test ( or ( > ?fc 0 ) ( > ?ft 0 ) ) ) ( 
> or ( patient ( id ?ipat ) ( room "ATT-UPED" ) ) ( and ( patient ( id 
> ?ipat ) ( room ?r ) ) ( not ( zone ( zonetype "room" ) ( unit "UPED" ) ( 
> room ?r ) ) ) ) ) ) ) = > ( printout t "(jess) Special zone " ?z " 
> looses patient " ?ipat crlf ) ( retract ?f ) )  at line 455.
> === Stack trace:
> Jess reported an error in routine ValueVector.get
>         while executing (> ?_2_fc 0)
>         while executing (or (> ?_2_fc 0) (> ?_2_ft 0))
>         while executing 'test' CE
>         while executing rule LHS (Node2)
>         while executing rule LHS (Node2)
>         while executing rule LHS (TEQ)
>         while executing rule LHS (TECT).
>   Message: Bad index 21 in call to get() on this vector:  
> (MAIN::__not_or_test_CE).
>   Program text: ( defrule topo-ATT-UPED-C-remove-patient ?f <- ( 
> zone-includes-patient ( zone ?z & "ATT-UPED-C" ) ( patient ?ipat ) ) ( 
> not ( and ( patient ( id ?ipat ) ( careUnitMnemo "UPED" ) ( flagCasChir 
> ?fc ) ( flagTraumaRea ?ft ) ) ( test ( or ( > ?fc 0 ) ( > ?ft 0 ) ) ) ( 
> or ( patient ( id ?ipat ) ( room "ATT-UPED" ) ) ( and ( patient ( id 
> ?ipat ) ( room ?r ) ) ( not ( zone ( zonetype "room" ) ( unit "UPED" ) ( 
> room ?r ) ) ) ) ) ) ) = > ( printout t "(jess) Special zone " ?z " 
> looses patient " ?ipat crlf ) ( retract ?f ) )  at line 455.
>         at jess.ValueVector.get(ValueVector.java:77)
>         at jess.Fact.get(Fact.java:117)
>         at jess.BindingValue.resolveValue(BindingValue.java:82)
>         at jess.BindingValue.numericValue(BindingValue.java:114)
>         at jess.Gt.call(Funcall.java:1156)
>         at jess.FunctionHolder.call(FunctionHolder.java:30)
>         at jess.Funcall.execute(Funcall.java:266)
>         at jess.FuncallValue.resolveValue(FuncallValue.java:33)
>         at jess.Or.call(Funcall.java:1032)
>         at jess.FunctionHolder.call(FunctionHolder.java:30)
>         at jess.Funcall.execute(Funcall.java:266)
>         at jess.FuncallValue.resolveValue(FuncallValue.java:33)
>         at jess.Test1.doTest(Test1.java:88)
>         at jess.NodeJoin.runTests(NodeJoin.java:131)
>         at jess.NodeJoin.callNodeLeft(NodeJoin.java:115)
>         at jess.NodeJoin.passAlong(NodeJoin.java:149)
>         at jess.Node2.doRunTestsVaryRight(Node2.java:356)
>         at jess.Node2.runTestsVaryRight(Node2.java:313)
>         at jess.Node2.callNodeLeft(Node2.java:176)
>         at jess.NodeJoin.passAlong(NodeJoin.java:149)
>         at jess.NodeNot2.runTestsVaryRight(NodeNot2.java:45)
>         at jess.Node2.callNodeLeft(Node2.java:188)
>         at jess.NodeNot2.callNodeLeft(NodeNot2.java:25)
>         at jess.Node1RTL.passAlong(Node1RTL.java:35)
>         at jess.Node1RTL.callNodeRight(Node1RTL.java:25)
>         at jess.Node1.passAlong(Node1.java:60)
>         at jess.Node1TEQ.callNodeRight(Node1TEQ.java:48)
>         at jess.Node1.passAlong(Node1.java:60)
>         at jess.Node1TECT.callNodeRight(Node1TECT.java:38)
>         at jess.Rete.updateNodes(Rete.java:973)
>         at jess.ReteCompiler.addRule(ReteCompiler.java:103)
>         at jess.Rete.addDefrule(Rete.java:799)
>         at jess.Jesp.addARule(Jesp.java:1012)
>         at jess.Jesp.doParseDefrule(Jesp.java:968)
>         at jess.Jesp.parseDefrule(Jesp.java:893)
>         at jess.Jesp.parseSexp(Jesp.java:149)
>         at jess.Jesp.parse(Jesp.java:69)
>         at jess.Rete.executeCommand(Rete.java:1413)
>         at jess.Rete.executeCommand(Rete.java:1397)
>         at 
> ch.hcuge.panorama.tbserver.TBJessManager.executeJessStringToString(TBJessManager.java:516)
>         at 
> org.apache.jsp.auth.JessConsole_jsp._jspService(org.apache.jsp.auth.JessConsole_jsp:180)
>         at 
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>         at 
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
>         at 
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
>         at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>         at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>         at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
>         at 
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
>         at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>         at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>         at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
>         at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
>         at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
>         at 
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
>         at 
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
>         at 
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>         at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>         at java.lang.Thread.run(Thread.java:595)
> 
> --------------------------------------------------------------------
> To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
> in the BODY of a message to [EMAIL PROTECTED], NOT to the list
> (use your own address!) List problems? Notify [EMAIL PROTECTED]
> --------------------------------------------------------------------
> 



---------------------------------------------------------
Ernest Friedman-Hill  
Advanced Software Research          Phone: (925) 294-2154
Sandia National Labs                FAX:   (925) 294-2234
PO Box 969, MS 9012                 [EMAIL PROTECTED]
Livermore, CA 94550         http://herzberg.ca.sandia.gov

--------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
in the BODY of a message to [EMAIL PROTECTED], NOT to the list
(use your own address!) List problems? Notify [EMAIL PROTECTED]
--------------------------------------------------------------------

Reply via email to