[jboss-jira] [JBoss JIRA] Created: (JBRULES-2500) soundslike throws NullPointerException when one argument contains no consonants
Steve Ronderos (JIRA)
jira-events at lists.jboss.org
Tue May 4 18:22:05 EDT 2010
soundslike throws NullPointerException when one argument contains no consonants
-------------------------------------------------------------------------------
Key: JBRULES-2500
URL: https://jira.jboss.org/jira/browse/JBRULES-2500
Project: Drools
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: drools-core
Affects Versions: 5.0.1.FINAL
Environment: mvel2-2.0.12
Reporter: Steve Ronderos
Assignee: Mark Proctor
When using soundslike, if one argument can't be handled by Soundex an Exception is thrown.
My exact situation is that the 1st parameter (before the soundslike operator) resolves to a string that soundex does not support. It could be a string with only vowels, numbers and spaces. I would expect soundslike to simply return false.
The stacktrace:
java.lang.NullPointerException
at org.drools.base.evaluators.SoundslikeEvaluatorsDefinition$StringSoundsLikeEvaluator.evaluate(SoundslikeEvaluatorsDefinition.java:148)
at org.drools.rule.LiteralRestriction.isAllowed(LiteralRestriction.java:92)
at org.drools.rule.LiteralConstraint.isAllowed(LiteralConstraint.java:109)
at org.drools.rule.OrConstraint.__AW_isAllowed(OrConstraint.java:51)
at org.drools.rule.OrConstraint.isAllowed(OrConstraint.java)
at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:143)
at org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:42)
at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:185)
at org.drools.reteoo.EntryPointNode.__AW_assertObject(EntryPointNode.java:146)
at org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1046)
at org.drools.common.AbstractWorkingMemory.__AW_insert(AbstractWorkingMemory.java:1001)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:788)
at org.drools.impl.StatelessKnowledgeSessionImpl.__AW_execute(StatelessKnowledgeSessionImpl.java:259)
at org.drools.impl.StatelessKnowledgeSessionImpl.execute(StatelessKnowledgeSessionImpl.java)
I checked out the code and found that when soundex can not parse a string it returns null.
I think this could be avoided by doing the Soundex.soundex(String) and checking for null before calling equals.
I'll try to submit a patch if I have the time.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list