Edson,

Oh, this could be bad news then.  I do have cases where I have code like the
following:

detailLine: DetailLine(status != "Matched", ....other stuff....)

then

detailLine.setStatus("Matched")

What might the implications be then?

Ron

On 7/6/07, Edson Tirelli <[EMAIL PROTECTED]> wrote:


    Ronald,

    You can't change constrained values of facts that are not shadowed.
    Exemple: if you have a rule that does:

Person( name == "someValue" )

   If person is not shadowed, you can't change the name attribute while
the object is in the working memory or you may get unexpected behavior from
the engine. But for instance, if you don't constrain another attribute, like
"age", you can change it without any problems.

   []s
   Edson

2007/7/5, Ronald R. DiFrango <[EMAIL PROTECTED]>:
>
> Edson,
>
> That is indeed the case, XML Beans is generating final equals/hashCdoe
> methods.  I have no idea why that is case.  I may post this over on the XML
> Beans board.
>
> Is disabling the shadowing a problem from the rules execution point of
> view?
>
> Finally, I guess I need to do a source build, can I find the
> instructions somewhere on this?
>
> Ron
>
> On 7/5/07, Edson Tirelli < [EMAIL PROTECTED]> wrote:
> >
> >
> >    There was a problem with CGLIB proxies much similar to this... so
> > probably the same problem.
> >
> >    What happens is that to shadow a fact, drools needs to extend the
> > actual class being asserted, and override the equals and hashcode methods.
> > So, the class can't be final, nor these methods can be final. Previously I
> > wasn't checking for final on these methods and that was the reason for the
> > error.
> >
> >    I fixed that in trunk. It means, if XML Beans are generating
> > methods equals/hashCode as final, drools won't be able to shadow them (and
> > so will automatically disable shadowing for them), but it will not raise the
> > error anymore.
> >
> >    Let me know if it is still a problem for you in trunk.
> >
> >     []s
> >     Edson
> >
> > 2007/7/5, Ronald R. DiFrango < [EMAIL PROTECTED] >:
> > >
> > > All this sounds eerily similar to the problem I am reporting.  In
> > > the 4.0 version I am getting the following exception on those inner
> > > classes:
> > >
> > > Exception in thread "main" java.lang.VerifyError: class
> > > 
com.circuitcity.rtvcrms.impl.DetailLineDocumentImpl$DetailLineImplShadowProxyoverrides 
final method ã Ý*h '+ .û Ý*h '+
> > >     at java.lang.ClassLoader.defineClass1(Native Method)
> > >     at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
> > >     at java.lang.ClassLoader.defineClass (ClassLoader.java:465)
> > >     at org.drools.rule.MapBackedClassLoader.fastFindClass(
> > > MapBackedClassLoader.java:40)
> > >     at org.drools.rule.MapBackedClassLoader.loadClass(
> > > MapBackedClassLoader.java:59)
> > >     at java.lang.ClassLoader.loadClass (ClassLoader.java:251)
> > >     at org.drools.reteoo.Rete$ObjectTypeConf.<init>(Rete.java:352)
> > >     at org.drools.reteoo.Rete.assertObject(Rete.java:152)
> > >     at org.drools.reteoo.ReteooRuleBase.assertObject(
> > > ReteooRuleBase.java :190)
> > >     at org.drools.reteoo.ReteooWorkingMemory.doInsert(
> > > ReteooWorkingMemory.java:70)
> > >     at org.drools.common.AbstractWorkingMemory.insert(
> > > AbstractWorkingMemory.java:772)
> > >     at org.drools.common.AbstractWorkingMemory.insert (
> > > AbstractWorkingMemory.java:584)
> > >     at
> > > com.circuitcity.rtvcrms.rules.RtvDecisionEngine.processDetailLines(
> > > RtvDecisionEngine.java:95)
> > >     at com.circuitcity.rtvcrms.rules.RtvDecisionEngine.executeRules(
> > > RtvDecisionEngine.java :64)
> > >     at com.circuitcity.rtvcrms.test.MainBasedTester.main(
> > > MainBasedTester.java:34)
> > >
> > > The catch is that XML Beans objects are auto generated based upon
> > > and XSD and we have limited control over what gets generated.
> > >
> > > On 7/5/07, Narendra Valada < [EMAIL PROTECTED]> wrote:
> > > >
> > > > Thank you for your quick response.
> > > >
> > > > I cannot make the Outer class static and public since it is not an
> > > > inner class.
> > > >
> > > > In my example, I have two inner classes : Inner and InnerInner.
> > > >
> > > > Class Inner is enclosed by Outer and class InnerInner is enclosed
> > > > by Inner. I get the "Unable to resolve object type"  error only on the
> > > > "InnerInner" class and not on the "Inner" class.
> > > >
> > > > Both the inner classes are defined as non-static.
> > > >
> > > > Thanks,
> > > >
> > > > Narendra
> > > >
> > > >
> > > >
> > > > On 7/5/07, Mark Proctor <[EMAIL PROTECTED] > wrote:
> > > > >
> > > > > you need to make your Outer class static and public. Look at the
> > > > > sample generated with a new drools project, that uses a static public 
class.
> > > > >
> > > > > Mark
> > > > > Narendra Valada wrote:
> > > > >
> > > > > * **Hello,*
> > > > > * *
> > > > > *I am getting an "Unable to resolve object type" error on
> > > > > certain XML Bean generated inner classes. I get this error only on 
inner
> > > > > classes that have been defined within other inner classes. Please see
> > > > > example below. *
> > > > > * *
> > > > > *Is this a known limitation of JBoss Rules (I am using JBOSS
> > > > > Rules 3.0.6) or the JANINO compiler?*
> > > > > * *
> > > > > *Thanks.*
> > > > > *
> > > > >
> > > > > package
> > > > > *
> > > > > *com.sample;
> > > > >
> > > > > public
> > > > > class Outer{     public class Inner {     public boolean inner =
> > > > > false;         public class InnerInner {
> > > > >
> > > > >         }
> > > > >
> > > > >      }
> > > > >
> > > > > }
> > > > > **package*
> > > > > com.sample *
> > > > >
> > > > > import
> > > > > *com.sample.Outer1.Inner.InnerInner; *
> > > > >
> > > > > rule
> > > > > *"Hello World 1" *when*
> > > > >
> > > > > InnerInner()
> > > > > *then*
> > > > >
> > > > > System.out.println(
> > > > > "");* *
> > > > >
> > > > > *end*
> > > > >
> > > > > ------------------------------
> > > > >
> > > > > _______________________________________________
> > > > > rules-users mailing list
> > > > > rules-users@lists.jboss.org
> > > > >
> > > > >
> > > > >
> > > > > https://lists.jboss.org/mailman/listinfo/rules-users
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > _______________________________________________
> > > > > rules-users mailing list
> > > > > rules-users@lists.jboss.org
> > > > > https://lists.jboss.org/mailman/listinfo/rules-users
> > > > >
> > > > >
> > > >
> > > > _______________________________________________
> > > > rules-users mailing list
> > > > rules-users@lists.jboss.org
> > > > https://lists.jboss.org/mailman/listinfo/rules-users
> > > >
> > > >
> > >
> > > _______________________________________________
> > > 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
> >
> >
>
> _______________________________________________
> 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

Reply via email to