[rules-users] Re: Using JDK dynamic proxies as facts
Edson Tirelli
tirelli at post.com
Thu Jul 12 16:20:27 EDT 2007
Please!
Thank you for providing the solution.
[]s
Edson
2007/7/12, Chris West <crayzfishr at gmail.com>:
>
> OK, I just solved my own problem. My proxy had no package, since the jdk
> based proxy is only in a package if it has at least 1 non public interface,
> according to the javadoc.
>
> The suspect code beginning on line 333 is:
>
> String pkgName = cls.getPackage().getName();
> if ( "org.drools.reteoo".equals( pkgName ) || "org.drools.base".equals(
> pkgName ) ) {
> // We don't shadow internal classes
> this.shadowEnabled = false;
> return;
> }
>
> The getPackage() method returns null. In this case, it would be good if
> JBoss Rules handled the null and went on to shadow the object anyway, since
> it is obviously not in the org.drools packages.
>
> Now I'll continue trying to build a test case for my original problem.
>
> Shall I enter a JIRA for this issue?
>
> Thanks,
> -Chris West
>
> On 7/12/07, Chris West <crayzfishr at gmail.com> wrote:
> >
> > Hello,
> >
> > I'm trying to use objects that are generated as dynamic proxies (through
> > the java.lang.reflect.Proxy class) as facts in JBoss Rules 4.0 MR3. My
> > project was using CGLib to generate proxies, and they were working just fine
> > in 3.0.6. However, when I tried 4.0, the CGLib based proxies seemed to
> > have a final method that kept the proxies from being proxied as shadow
> > facts. So I rewrote my code to try to use JDK based proxies, and version
> > 4.0 MR3 accepts them and apparently creates shadow facts, but now my
> > rules don't fire correctly.
> >
> > So, in an attempt to create a simple program to illustrate the problem,
> > I ran into a different problem. The attached eclipse project illustrates
> > this problem.
> >
> > The error is:
> >
> > java.lang.NullPointerException
> > at org.drools.reteoo.Rete$ObjectTypeConf.<init>(Rete.java:333)
> > 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.sample.DroolsTest.main(DroolsTest.java:42)
> >
> > Has anyone successfully used JDK based dynamic proxies as facts?
> >
> > Thanks,
> > -Chris West
> >
> >
>
> _______________________________________________
> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20070712/96189dc4/attachment.html
More information about the rules-users
mailing list