[jboss-jira] [JBoss JIRA] Resolved: (JBRULES-759) CLONE -Unable to add package after it was added and removed

Edson Tirelli (JIRA) jira-events at lists.jboss.org
Fri Apr 20 10:27:30 EDT 2007


     [ http://jira.jboss.com/jira/browse/JBRULES-759?page=all ]

Edson Tirelli resolved JBRULES-759.
-----------------------------------

    Fix Version/s: 3.0.7
                   3.1-m2
                       (was: 3.0.5)
       Resolution: Done

Fixed the problem in trunk in revision #11157. 

Created a tag before commiting: https://svn.labs.jboss.org/labs/jbossrules/tags/3.1_before_removing_attachednodes_cache/

Problem in trunk was that the attached nodes cache was becoming corrupt after removal of packages and was never fixed. Removed the cache as the search for shared nodes can be easily and efficiently done based on the context during network building.

Thank you for reporting and let us know plz, if you find any other problem.


> CLONE -Unable to add package after it was added and removed
> -----------------------------------------------------------
>
>                 Key: JBRULES-759
>                 URL: http://jira.jboss.com/jira/browse/JBRULES-759
>             Project: JBoss Rules
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: Reteoo
>    Affects Versions: 3.0.4
>         Environment: Windows2000 Advanced Server
> JBRules3.0.4
>            Reporter: Brugger Antony
>         Assigned To: Edson Tirelli
>             Fix For: 3.0.7, 3.1-m2
>
>
> Unable remove a rule package when it was added after it has been added and removed.
> I have seen the issue  [#JBRULES-358].  My test go a little far than [#JBRULES-358]. 
> I remove the package again when it was added for the seconn time, then an exception was thrown.
>  My test case is:
>     
>     public void testRuleBaseRemove() throws Exception
>     {
>         RuleBase ruleBase = RuleBaseFactory.newRuleBase();
>         File file = new File("test.drl");
>         
>         //add and remove
>         PackageBuilder builder = new PackageBuilder();
>         builder.addPackageFromDrl(new FileReader(file));
>         Package pkg = builder.getPackage();
>         ruleBase.addPackage(pkg);
>         ruleBase.removePackage(pkg.getName());
>         
>         //add and remove again
>         builder = new PackageBuilder();
>         builder.addPackageFromDrl(new FileReader(file));
>         pkg = builder.getPackage();
>         ruleBase.addPackage(pkg);
>         ruleBase.removePackage(pkg.getName());
>     }
> the exception is throw:
> java.lang.NullPointerException
> 	at org.drools.reteoo.HashedObjectSinkList.remove(HashedObjectSinkList.java:102)
> 	at org.drools.reteoo.ObjectTypeNode.remove(ObjectTypeNode.java:245)
> 	at org.drools.reteoo.AlphaNode.remove(AlphaNode.java:211)
> 	at org.drools.reteoo.AlphaNode.remove(AlphaNode.java:211)
> 	at org.drools.reteoo.LeftInputAdapterNode.remove(LeftInputAdapterNode.java:285)
> 	at org.drools.reteoo.TerminalNode.remove(TerminalNode.java:297)
> 	at org.drools.reteoo.ReteooBuilder.removeRule(ReteooBuilder.java:589)
> 	at org.drools.reteoo.ReteooRuleBase.removeRule(ReteooRuleBase.java:244)
> 	at org.drools.common.AbstractRuleBase.removePackage(AbstractRuleBase.java:338)
> 	at com.zte.ums.uep.pal.fm.osf.rules.core.RuleBaseTest.testRuleBaseRemove(RuleBaseTest.java:71)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:324)
> 	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 junit.framework.TestSuite.runTest(TestSuite.java:208)
> 	at junit.framework.TestSuite.run(TestSuite.java:203)
> 	at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
> 	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)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list