[jboss-jira] [JBoss JIRA] Reopened: (JBRULES-2316) StringIndexOutOfBoundsException when a fact is in default package

Mark Proctor (JIRA) jira-events at lists.jboss.org
Tue May 17 21:59:01 EDT 2011


     [ https://issues.jboss.org/browse/JBRULES-2316?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mark Proctor reopened JBRULES-2316:
-----------------------------------



> StringIndexOutOfBoundsException when a fact is in default package
> -----------------------------------------------------------------
>
>                 Key: JBRULES-2316
>                 URL: https://issues.jboss.org/browse/JBRULES-2316
>             Project: Drools
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: drools-core
>    Affects Versions: 4.0.7
>            Reporter: Renaud Julienne
>            Assignee: Mark Proctor
>              Labels: proxy, shadow
>
> Assuming you have a rule base for which you have defined shadow proxy excludes.
> If you insert a fact which class is in default package, a StringIndexOutOfBoundsException is raised by RuleBaseConfiguration#isShadowed()
> java.lang.StringIndexOutOfBoundsException: String index out of range: -1
> 	at java.lang.String.substring(String.java:1768)
> 	at org.drools.RuleBaseConfiguration.isShadowed(RuleBaseConfiguration.java:546)
> 	at org.drools.reteoo.Rete$ClassObjectTypeConf.defineShadowProxyData(Rete.java:486)
> 	at org.drools.reteoo.Rete$ClassObjectTypeConf.<init>(Rete.java:468)
> 	at org.drools.reteoo.Rete.assertObject(Rete.java:152)
> 	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:911)
> 	at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:883)
> 	at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:704)
>              ..........
> Problem comes from this line (RuleBaseConfiguration.java:546):
>         String qualifiedNamespace = className.substring( 0,
>                                                          className.lastIndexOf( '.' ) ).trim();     // => default package => no '.' => exception
> This can typically happen when trying to insert JDKProxies into the working memory for test purpose (EasyMock use such proxies).
> The issue only appears if you have defined shadow proxy excludes.

--
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