[rules-users] Unresolved Object Reference
Ronald R. DiFrango
ron.difrango at gmail.com
Thu Jul 5 21:15:28 EDT 2007
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 <tirelli at post.com> 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 <ron.difrango at gmail.com >:
> >
> > 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 < narendra.valada at gmail.com> 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 <mproctor at codehaus.org > 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 at lists.jboss.org
> > > >
> > > > https://lists.jboss.org/mailman/listinfo/rules-users
> > > >
> > > >
> > > >
> > > >
> > > > _______________________________________________
> > > > rules-users mailing list
> > > > rules-users at lists.jboss.org
> > > > https://lists.jboss.org/mailman/listinfo/rules-users
> > > >
> > > >
> > >
> > > _______________________________________________
> > > rules-users mailing list
> > > rules-users at lists.jboss.org
> > > https://lists.jboss.org/mailman/listinfo/rules-users
> > >
> > >
> >
> > _______________________________________________
> > rules-users mailing list
> > rules-users at 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 at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20070705/eddc1db6/attachment.html
More information about the rules-users
mailing list