Igor,

   Looks like a bug to me... can you please open a JIRA and attach a self contained test case showing the problem? This will speed up the resolution...
 
   Thanks
      Edson

2007/11/1, igor_b <igorbolic@gmail.com>:

Hi Edson,

thanx for answering, i've tried 4.0.3, but i get the following error when i
try to refresh my rules:

java.lang.IllegalArgumentException: Cannot remove a sink, when the list of
sinks is null
        at org.drools.reteoo.ObjectSource.removeObjectSink(ObjectSource.java:116)
        at org.drools.reteoo.AlphaNode.remove(AlphaNode.java:192)
        at
org.drools.reteoo.LeftInputAdapterNode.remove(LeftInputAdapterNode.java :189)
        at org.drools.reteoo.BetaNode.remove(BetaNode.java:173)
        at org.drools.reteoo.RuleTerminalNode.remove(RuleTerminalNode.java:466)
        at org.drools.reteoo.ReteooBuilder.removeRule(ReteooBuilder.java :224)
        at org.drools.reteoo.ReteooRuleBase.removeRule(ReteooRuleBase.java:270)
        at org.drools.common.AbstractRuleBase.removeRule(AbstractRuleBase.java:614)
        at
org.drools.common.AbstractRuleBase.removePackage (AbstractRuleBase.java:531)
        ...


During refresh i do the following:
      public void refresh() {
                try {
                        ruleBase.removePackage("org.sample.mypackage ");

                        // reading drl files from direcotry and puting them
in the package

                       ...
                       for(int i = 0; i < size; i++ ) {
                                 builder.addPackageFromDrl( new
InputStreamReader(getClass().getResourceAsStream( "package" + i + ".drl" ) )
);;

                        }
                        if(ruleBase == null) {
                                ruleBase = RuleBaseFactory.newRuleBase();
                        }
                        ruleBase.addPackage(builder.getPackage());


                } catch(Exception e) {
                        log.error("Error while refreshing rules: ", e);
                }
        }

and one of my .drl files (they all belong to the same package) looks
something like this:

package org.sample.mypackage

import org.sample.Orders;
import org.sample.OrderItem;
import org.sample.service.OrderService;

import java.util.ArrayList
import org.apache.log4j.Logger

global OrderService orderService
global Logger log

rule "Apply Discount"
        when
                orders : Orders();
                items : ArrayList() from collect (
                        OrderItem(value > 100)
                        from order.items)
        then
                log.debug("Apply Discount");
                orderService.applyDiscount(items);
end

were OrderService is a service class that i'm using to do some calculating.

Do you have some idea about what could be causing this error?







Edson Tirelli-3 wrote:
>
>    Can you try 4.0.3? There was some fix for package management included
> in
> 4.0.2 if I'm not mistaken...
>
>    []s
>    Edson
>
> 2007/10/31, igor_b <igorbolic@gmail.com>:
>>
>>
>> Hi,
>>
>> I'm using drools 4.0.1. I'm first adding one package to my RuleBase
>> object,
>> and everything works just fine:
>>
>> ...
>> builder.addPackageFromDrl (new InputStreamReader(resource.getInputStream
>> ()));
>>
>> if(ruleBase == null) {
>>         ruleBase = RuleBaseFactory.newRuleBase();
>> }
>> ruleBase.addPackage(builder.getPackage ());
>>
>>
>> But after some time i need to refresh my rules, so i'm using following
>> code
>> to remove previous package:
>>
>> ruleBase.removePackage(" org.sample.mypackage");
>>
>> and i'm getting the following error:
>>
>> java.lang.NullPointerException
>>         at org.drools.reteoo.ReteooBuilder.removeRule(ReteooBuilder.java
>> :222)
>>         at
>> org.drools.reteoo.ReteooRuleBase.removeRule(ReteooRuleBase.java
>> :272)
>>         at
>> org.drools.common.AbstractRuleBase.removePackage(AbstractRuleBase.java
>> :460)
>>         at
>> com.diosphere.diomedia.common.drools.impl.RulesServiceImpl.refresh(
>> RulesServiceImpl.java:121)
>>         at
>> com.diosphere.diomedia.service.impl.PromotionManagerImpl.refreshDRLs (
>> PromotionManagerImpl.java:39)
>>         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:597)
>>         at
>> uk.ltd.getahead.dwr.impl.ExecuteQuery.execute(ExecuteQuery.java
>> :170)
>>         at
>> uk.ltd.getahead.dwr.impl.DefaultProcessor.doExec(DefaultProcessor.java
>> :552)
>>         at
>> uk.ltd.getahead.dwr.impl.DefaultProcessor.handle(DefaultProcessor.java:88)
>>         at uk.ltd.getahead.dwr.DWRServlet.doPost(DWRServlet.java:178)
>>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>>         at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (
>> ApplicationFilterChain.java:290)
>>         at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(
>> ApplicationFilterChain.java:206)
>>         at
>> com.opensymphony.module.sitemesh.filter.PageFilter.parsePage (
>> PageFilter.java:118)
>>         at
>> com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(
>> PageFilter.java:52)
>>         at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (
>> ApplicationFilterChain.java:235)
>>         at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(
>> ApplicationFilterChain.java:206)
>>         at
>> net.sf.acegisecurity.util.FilterChainProxy.doFilter (FilterChainProxy.java
>> :167)
>>         at
>> net.sf.acegisecurity.util.FilterToBeanProxy.doFilter(
>> FilterToBeanProxy.java:120)
>>         at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (
>> ApplicationFilterChain.java:235)
>>         at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(
>> ApplicationFilterChain.java:206)
>>         at
>> org.apache.catalina.core.StandardWrapperValve.invoke (
>> StandardWrapperValve.java:230)
>>         at
>> org.apache.catalina.core.StandardContextValve.invoke(
>> StandardContextValve.java:175)
>>         at
>> org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java
>> :128)
>>         at
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
>> :104)
>>         at
>> org.apache.catalina.core.StandardEngineValve.invoke (
>> StandardEngineValve.java:109)
>>         at
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java
>> :261)
>>         at
>> org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:844)
>>         at
>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(
>> Http11Protocol.java:581)
>>         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run (
>> JIoEndpoint.java:447)
>>         at java.lang.Thread.run(Thread.java:619)
>>
>> Does anyone have a clue what might be the problem, and how to fix it?
>> Kind regards!
>> --
>> View this message in context:
>> http://www.nabble.com/Problem-with-removePackage%28%29-tf4727072.html#a13516014
>> Sent from the drools - user mailing list archive at Nabble.com.
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users@lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>
>
>
> --
>   Edson Tirelli
>   Software Engineer - JBoss Rules Core Developer
>   Office: +55 11 3529-6000
>   Mobile: +55 11 9287-5646
>   JBoss, a division of Red Hat @ www.jboss.com
>
> _______________________________________________
> rules-users mailing list
> rules-users@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>

--
View this message in context: http://www.nabble.com/Problem-with-removePackage%28%29-tf4727072.html#a13528214
Sent from the drools - user mailing list archive at Nabble.com.

_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users



--
  Edson Tirelli
  Software Engineer - JBoss Rules Core Developer
  Office: +55 11 3529-6000
  Mobile: +55 11 9287-5646
  JBoss, a division of Red Hat @ www.jboss.com