[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