Uploaded image for project: 'JBRULES'
  1. JBRULES
  2. JBRULES-440

Unable remove a rule package when it was added after it has been added and removed

    Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: 3.0.4
    • Fix Version/s: 3.0.5
    • Component/s: drools-core (expert)
    • Labels:
      None
    • Environment:

      Windows2000 Advanced Server
      JBRules3.0.4

      Description

      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)

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                tirelli Edson Tirelli
                Reporter:
                song.hanzeng song hanzeng
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: