[rules-users] Strange exception

Edson Tirelli tirelli at post.com
Tue Mar 4 13:49:49 EST 2008


   Are you using "contains" operator to check a hashmap for the existence of
a value? "contains" should only be used with collections, not maps...

   []s
   Edson

2008/3/4, Brian Trezise <Brian.Trezise at intellidata.net>:
>
>  I'm getting a strange exception upon inserting an object into working
> memory.  Relevant information follows:
>
> I'm creating a "smartdescription" which contains a string and some
> information about that string that is later added by the rules.  With the
> exception of one specific string, this seems to be working perfectly.  I'm
> using regexes to match the strings.
>
>
>
> This is the regex where I'm having the problem:
>
>    public static final String REGEX_APPLICATION_CURRENT_SENSE = ".*(" +
> "CURRENT[ .]?SENSE?" + ").*";
>
>
>
> and the smartdescription string I'm testing is "aaaaaaaaaaaaaaaaaaa
> current sense aaaaaaaaaaaaa".
>
>
>
> I have determined that any other string that matches any of the
> identically formulated rules works with no problems.  If I put in something
> that doesn't match this regex, there is no exception.  The RHS of the rule
> in question is not reached in this case.
>
>
>
> This is the exception:
>
> *java.lang.ClassCastException*: java.util.HashMap
>
>             at
> org.drools.base.evaluators.ObjectFactory$ObjectContainsEvaluator.evaluate(
> *ObjectFactory.java:433*)
>
>             at org.drools.rule.LiteralRestriction.isAllowed(*
> LiteralRestriction.java:61*)
>
>             at org.drools.rule.LiteralConstraint.isAllowed(*
> LiteralConstraint.java:82*)
>
>             at org.drools.reteoo.AlphaNode.assertObject(*AlphaNode.java
> :132*)
>
>             at
> org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(*
> SingleObjectSinkAdapter.java:22*)
>
>             at org.drools.reteoo.AlphaNode.assertObject(*AlphaNode.java
> :140*)
>
>             at
> org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(*
> CompositeObjectSinkAdapter.java:318*)
>
>             at org.drools.reteoo.ObjectTypeNode.assertObject(*
> ObjectTypeNode.java:153*)
>
>             at org.drools.reteoo.Rete.assertObject(*Rete.java:175*)
>
>             at org.drools.reteoo.ReteooRuleBase.assertObject(*
> ReteooRuleBase.java:192*)
>
>             at org.drools.reteoo.ReteooWorkingMemory.doInsert(*
> ReteooWorkingMemory.java:71*)
>
>             at org.drools.common.AbstractWorkingMemory.insert(*
> AbstractWorkingMemory.java:909*)
>
>             at org.drools.common.AbstractWorkingMemory.insert(*
> AbstractWorkingMemory.java:881*)
>
>             at org.drools.common.AbstractWorkingMemory.insert(*
> AbstractWorkingMemory.java:682*)
>
>             at
> net.intellidata.sleuth.description.DefinitionRuleTest.testApplicationRules
> (*DefinitionRuleTest.java:129*)
>
>             at sun.reflect.NativeMethodAccessorImpl.invoke0(*Native Method
> *)
>
>             at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>
>             at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
> Source)
>
>             at java.lang.reflect.Method.invoke(Unknown Source)
>
>             at junit.framework.TestCase.runTest(*TestCase.java:154*)
>
>             at junit.framework.TestCase.runBare(*TestCase.java:127*)
>
>             at junit.framework.TestResult$1.protect(*TestResult.java:106*)
>
>             at junit.framework.TestResult.runProtected(*TestResult.java
> :124*)
>
>             at junit.framework.TestResult.run(*TestResult.java:109*)
>
>             at junit.framework.TestCase.run(*TestCase.java:118*)
>
>             at
> org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(*
> JUnit3TestReference.java:130*)
>
>             at org.eclipse.jdt.internal.junit.runner.TestExecution.run(*
> TestExecution.java:38*)
>
>             at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(*
> RemoteTestRunner.java:460*)
>
>             at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(*
> RemoteTestRunner.java:673*)
>
>             at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(
> *RemoteTestRunner.java:386*)
>
>             at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main
> (*RemoteTestRunner.java:196*)
>
>
>
> Any idea what could be causing this???
>
>
>
> DefinitionRuleTest.java:129 is
>
>              workingMemory.insert(sd);
>
>
>
> Thanks,
>
> *___________________________________________________
> Brian Trezise
> Staff Software Engineer
> IntelliData, Inc
> *3173 s. uravan way
> aurora, colorado 80013
> T: 720.524.4864
> brian.trezise at intellidata.net
>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>


-- 
  Edson Tirelli
  JBoss Drools Core Development
  Office: +55 11 3529-6000
  Mobile: +55 11 9287-5646
  JBoss, a division of Red Hat @ www.jboss.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20080304/efbb71a4/attachment.html 


More information about the rules-users mailing list