<br> Yes, looks like a bug. May I ask you please to open a JIRA for it attaching your example?<br> I will track it down and fix.<br><br> Thanks<br> Edson<br><br><div><span class="gmail_quote">2007/11/6, igor_b <
<a href="mailto:igorbolic@gmail.com">igorbolic@gmail.com</a>>:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>Hi Edson,<br><br>
sorry for a late reply. I found out that there is problem in DRL file i.e. i<br>cannot use<br><br><br>package com.sample.mypackage<br><br>rule "Apply discount"<br> no-loop true<br> when<br> $order: Order();
<br> $items : ArrayList() from collect (OrderItem() from $order.items)<br> then<br> #apply discount<br>end<br><br>when i try to remove previous package from ruleBase object, i get the error:
<br><br>java.lang.IllegalArgumentException: Cannot remove a sink, when the list of<br>sinks is null<br> at org.drools.reteoo.ObjectSource.removeObjectSink(ObjectSource.java:116)<br> at org.drools.reteoo.AlphaNode.remove
(AlphaNode.java:181)<br> at<br>org.drools.reteoo.LeftInputAdapterNode.remove(LeftInputAdapterNode.java:204)<br> at org.drools.reteoo.FromNode.remove(FromNode.java:153)<br> at<br>org.drools.reteoo.RightInputAdapterNode.remove
(RightInputAdapterNode.java:167)<br> at org.drools.reteoo.BetaNode.remove(BetaNode.java:186)<br> at org.drools.reteoo.RuleTerminalNode.remove(RuleTerminalNode.java:461)<br> at org.drools.reteoo.ReteooBuilder.removeRule
(ReteooBuilder.java:224)<br> at org.drools.reteoo.ReteooRuleBase.removeRule(ReteooRuleBase.java:272)<br> at<br>org.drools.common.AbstractRuleBase.removePackage(AbstractRuleBase.java:460)<br> ...<br><br>
<br>instead, i implemented the same thing this way:<br><br><br>package com.sample.mypackage<br><br><br>rule "Explode Cart"<br> salience 11<br> dialect "java"<br> when<br> $order: Order()
<br> $item : OrderItem() from $order.items<br> then<br> insert( $item );<br>end<br><br><br>rule "Apply discount"<br> no-loop true<br> when<br> $order : Order();
<br> $items : ArrayList() from collect (OrderItem())<br> then<br> #apply discount<br>end<br><br><br>if this is a bug, i hope it'll help finding it and fixing.<br><br>Kind regards!<br>
<br><br><br><br>Edson Tirelli-3 wrote:<br>><br>> Igor,<br>><br>> Looks like a bug to me... can you please open a JIRA and attach a self<br>> contained test case showing the problem? This will speed up the
<br>> resolution...<br>><br>> Thanks<br>> Edson<br>><br>> 2007/11/1, igor_b <<a href="mailto:igorbolic@gmail.com">igorbolic@gmail.com</a>>:<br>>><br>>><br>>> Hi Edson,<br>
>><br>>> thanx for answering, i've tried 4.0.3, but i get the following error when<br>>> i<br>>> try to refresh my rules:<br>>><br>>> java.lang.IllegalArgumentException: Cannot remove a sink, when the list
<br>>> of<br>>> sinks is null<br>>> at org.drools.reteoo.ObjectSource.removeObjectSink(<br>>> ObjectSource.java:116)<br>>> at org.drools.reteoo.AlphaNode.remove(AlphaNode.java
:192)<br>>> at<br>>> org.drools.reteoo.LeftInputAdapterNode.remove(LeftInputAdapterNode.java<br>>> :189)<br>>> at org.drools.reteoo.BetaNode.remove(BetaNode.java:173)<br>>> at
<br>>> org.drools.reteoo.RuleTerminalNode.remove(RuleTerminalNode.java<br>>> :466)<br>>> at org.drools.reteoo.ReteooBuilder.removeRule(ReteooBuilder.java<br>>> :224)<br>>> at<br>
>> org.drools.reteoo.ReteooRuleBase.removeRule(ReteooRuleBase.java<br>>> :270)<br>>> at org.drools.common.AbstractRuleBase.removeRule(<br>>> AbstractRuleBase.java:614)<br>>> at
<br>>> org.drools.common.AbstractRuleBase.removePackage(AbstractRuleBase.java<br>>> :531)<br>>> ...<br>>><br>>><br>>> During refresh i do the following:<br>>> public void refresh() {
<br>>> try {<br>>> ruleBase.removePackage("org.sample.mypackage");<br>>><br>>> // reading drl files from direcotry and puting
<br>>> them<br>>> in the package<br>>><br>>> ...<br>>> for(int i = 0; i < size; i++ ) {<br>>> builder.addPackageFromDrl
( new<br>>> InputStreamReader(getClass().getResourceAsStream( "package" + i + ".drl"<br>>> )<br>>> )<br>>> );;<br>>><br>>> }<br>>> if(ruleBase == null) {
<br>>> ruleBase = RuleBaseFactory.newRuleBase();<br>>> }<br>>> ruleBase.addPackage(builder.getPackage());<br>>><br>>>
<br>>> } catch(Exception e) {<br>>> log.error("Error while refreshing rules: ", e);<br>>> }<br>>> }<br>>><br>>> and one of my .drl files (they all belong to the same package) looks
<br>>> something like this:<br>>><br>>> package org.sample.mypackage<br>>><br>>> import org.sample.Orders;<br>>> import org.sample.OrderItem;<br>>> import org.sample.service.OrderService
;<br>>><br>>> import java.util.ArrayList<br>>> import org.apache.log4j.Logger<br>>><br>>> global OrderService orderService<br>>> global Logger log<br>>><br>>> rule "Apply Discount"
<br>>> when<br>>> orders : Orders();<br>>> items : ArrayList() from collect (<br>>> OrderItem(value > 100)<br>>> from
order.items)<br>>> then<br>>> log.debug("Apply Discount");<br>>> orderService.applyDiscount(items);<br>>> end<br>>><br>>> were OrderService is a service class that i'm using to do some
<br>>> calculating.<br>>><br>>> Do you have some idea about what could be causing this error?<br>>><br>>><br>>><br>>><br>>><br>>><br>>><br>>> Edson Tirelli-3 wrote:
<br>>> ><br>>> > Can you try 4.0.3? There was some fix for package management<br>>> included<br>>> > in<br>>> > 4.0.2 if I'm not mistaken...<br>>> ><br>>> > []s
<br>>> > Edson<br>>> ><br>>> > 2007/10/31, igor_b <<a href="mailto:igorbolic@gmail.com">igorbolic@gmail.com</a>>:<br>>> >><br>>> >><br>>> >> Hi,<br>>> >>
<br>>> >> I'm using drools 4.0.1. I'm first adding one package to my RuleBase<br>>> >> object,<br>>> >> and everything works just fine:<br>>> >><br>>> >> ...
<br>>> >> builder.addPackageFromDrl(new<br>>> InputStreamReader(resource.getInputStream<br>>> >> ()));<br>>> >><br>>> >> if(ruleBase == null) {<br>>> >> ruleBase =
RuleBaseFactory.newRuleBase();<br>>> >> }<br>>> >> ruleBase.addPackage(builder.getPackage());<br>>> >><br>>> >><br>>> >> But after some time i need to refresh my rules, so i'm using following
<br>>> >> code<br>>> >> to remove previous package:<br>>> >><br>>> >> ruleBase.removePackage("org.sample.mypackage");<br>>> >><br>>> >> and i'm getting the following error:
<br>>> >><br>>> >> java.lang.NullPointerException<br>>> >> at org.drools.reteoo.ReteooBuilder.removeRule(<br>>> ReteooBuilder.java<br>>> >> :222)<br>>> >> at
<br>>> >> org.drools.reteoo.ReteooRuleBase.removeRule(ReteooRuleBase.java<br>>> >> :272)<br>>> >> at<br>>> >> org.drools.common.AbstractRuleBase.removePackage(AbstractRuleBase.java
<br>>> >> :460)<br>>> >> at<br>>> >> com.diosphere.diomedia.common.drools.impl.RulesServiceImpl.refresh(<br>>> >> RulesServiceImpl.java:121)<br>>> >> at
<br>>> >> com.diosphere.diomedia.service.impl.PromotionManagerImpl.refreshDRLs(<br>>> >> PromotionManagerImpl.java:39)<br>>> >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
<br>>> >> at<br>>> >> sun.reflect.NativeMethodAccessorImpl.invoke(<br>>> NativeMethodAccessorImpl.java<br>>> >> :39)<br>>> >> at<br>>> >> sun.reflect.DelegatingMethodAccessorImpl.invoke
(<br>>> >> DelegatingMethodAccessorImpl.java:25)<br>>> >> at java.lang.reflect.Method.invoke(Method.java:597)<br>>> >> at<br>>> >> uk.ltd.getahead.dwr.impl.ExecuteQuery.execute
(ExecuteQuery.java<br>>> >> :170)<br>>> >> at<br>>> >> uk.ltd.getahead.dwr.impl.DefaultProcessor.doExec(DefaultProcessor.java<br>>> >> :552)<br>>> >> at
<br>>> >> uk.ltd.getahead.dwr.impl.DefaultProcessor.handle(DefaultProcessor.java<br>>> :88)<br>>> >> at uk.ltd.getahead.dwr.DWRServlet.doPost(DWRServlet.java:178)<br>>> >> at
<br>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:710)<br>>> >> at<br>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:803)<br>>> >> at<br>>> >>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(<br>>> >> ApplicationFilterChain.java:290)<br>>> >> at<br>>> >> org.apache.catalina.core.ApplicationFilterChain.doFilter
(<br>>> >> ApplicationFilterChain.java:206)<br>>> >> at<br>>> >> com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(<br>>> >> PageFilter.java:118)<br>>> >> at
<br>>> >> com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(<br>>> >> PageFilter.java:52)<br>>> >> at<br>>> >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(<br>>> >> ApplicationFilterChain.java:235)<br>>> >> at<br>>> >> org.apache.catalina.core.ApplicationFilterChain.doFilter(<br>>> >> ApplicationFilterChain.java:206)<br>
>> >> at<br>>> >> net.sf.acegisecurity.util.FilterChainProxy.doFilter(<br>>> FilterChainProxy.java<br>>> >> :167)<br>>> >> at<br>>> >> net.sf.acegisecurity.util.FilterToBeanProxy.doFilter
(<br>>> >> FilterToBeanProxy.java:120)<br>>> >> at<br>>> >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(<br>>> >> ApplicationFilterChain.java:235)
<br>>> >> at<br>>> >> org.apache.catalina.core.ApplicationFilterChain.doFilter(<br>>> >> ApplicationFilterChain.java:206)<br>>> >> at<br>>> >> org.apache.catalina.core.StandardWrapperValve.invoke
(<br>>> >> StandardWrapperValve.java:230)<br>>> >> at<br>>> >> org.apache.catalina.core.StandardContextValve.invoke(<br>>> >> StandardContextValve.java:175)<br>>> >> at
<br>>> >> org.apache.catalina.core.StandardHostValve.invoke(<br>>> StandardHostValve.java<br>>> >> :128)<br>>> >> at<br>>> >> org.apache.catalina.valves.ErrorReportValve.invoke
(<br>>> ErrorReportValve.java<br>>> >> :104)<br>>> >> at<br>>> >> org.apache.catalina.core.StandardEngineValve.invoke(<br>>> >> StandardEngineValve.java:109)<br>
>> >> at<br>>> >> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java<br>>> >> :261)<br>>> >> at<br>>> >> org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java<br>>> :844)<br>>> >> at<br>>> >><br>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process<br>>> (<br>>> >> Http11Protocol.java
:581)<br>>> >> at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(<br>>> >> JIoEndpoint.java:447)<br>>> >> at java.lang.Thread.run(Thread.java:619)<br>>> >>
<br>>> >> Does anyone have a clue what might be the problem, and how to fix it?<br>>> >> Kind regards!<br>>> >> --<br>>> >> View this message in context:<br>>> >>
<br>>> <a href="http://www.nabble.com/Problem-with-removePackage%28%29-tf4727072.html#a13516014">http://www.nabble.com/Problem-with-removePackage%28%29-tf4727072.html#a13516014</a><br>>> >> Sent from the drools - user mailing list archive at
<a href="http://Nabble.com">Nabble.com</a>.<br>>> >><br>>> >> _______________________________________________<br>>> >> rules-users mailing list<br>>> >> <a href="mailto:rules-users@lists.jboss.org">
rules-users@lists.jboss.org</a><br>>> >> <a href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>>> >><br>>> ><br>>> >
<br>>> ><br>>> > --<br>>> > Edson Tirelli<br>>> > Software Engineer - JBoss Rules Core Developer<br>>> > Office: +55 11 3529-6000<br>>> > Mobile: +55 11 9287-5646
<br>>> > JBoss, a division of Red Hat @ <a href="http://www.jboss.com">www.jboss.com</a><br>>> ><br>>> > _______________________________________________<br>>> > rules-users mailing list
<br>>> > <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>>> > <a href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users
</a><br>>> ><br>>> ><br>>><br>>> --<br>>> View this message in context:<br>>> <a href="http://www.nabble.com/Problem-with-removePackage%28%29-tf4727072.html#a13528214">http://www.nabble.com/Problem-with-removePackage%28%29-tf4727072.html#a13528214
</a><br>>> Sent from the drools - user mailing list archive at <a href="http://Nabble.com">Nabble.com</a>.<br>>><br>>> _______________________________________________<br>>> rules-users mailing list
<br>>> <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>>> <a href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a>
<br>>><br>><br>><br>><br>> --<br>> Edson Tirelli<br>> Software Engineer - JBoss Rules Core Developer<br>> Office: +55 11 3529-6000<br>> Mobile: +55 11 9287-5646<br>> JBoss, a division of Red Hat @
<a href="http://www.jboss.com">www.jboss.com</a><br>><br>> _______________________________________________<br>> rules-users mailing list<br>> <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org
</a><br>> <a href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>><br>><br><br>--<br>View this message in context: <a href="http://www.nabble.com/Problem-with-removePackage%28%29-tf4727072.html#a13602403">
http://www.nabble.com/Problem-with-removePackage%28%29-tf4727072.html#a13602403</a><br>Sent from the drools - user mailing list archive at <a href="http://Nabble.com">Nabble.com</a>.<br><br>_______________________________________________
<br>rules-users mailing list<br><a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br><a href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users
</a><br></blockquote></div><br><br clear="all"><br>-- <br> Edson Tirelli<br> Software Engineer - JBoss Rules Core Developer<br> Office: +55 11 3529-6000<br> Mobile: +55 11 9287-5646<br> JBoss, a division of Red Hat @
<a href="http://www.jboss.com">www.jboss.com</a>