[jboss-jira] [JBoss JIRA] Closed: (JBRULES-2500) soundslike throws NullPointerException when one argument contains no consonants
Edson Tirelli (JIRA)
jira-events at lists.jboss.org
Thu May 19 21:49:01 EDT 2011
[ https://issues.jboss.org/browse/JBRULES-2500?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Edson Tirelli closed JBRULES-2500.
----------------------------------
> soundslike throws NullPointerException when one argument contains no consonants
> -------------------------------------------------------------------------------
>
> Key: JBRULES-2500
> URL: https://issues.jboss.org/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: Edson Tirelli
> Fix For: 5.2.0.CR1
>
> Attachments: JRules2500.patch
>
>
> 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.
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list