<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
That is not the only thing that determines shadowing. If you look the
shadowing is actually determined here:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( !ruleBase.getConfiguration().isShadowProxy() || cls ==
null || !ruleBase.getConfiguration().isShadowed( cls.getName() ) ) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
By default shadowing is turned on for all (none final) bjects, except
stuff in the org.drools namespace, you have to set exclusion lists.too.
So if your package has a null namespace it will still attempt to shadow
it.<br>
<br>
Mark<br>
<br>
Chris West wrote:
<blockquote
 cite="mid:20331b80707121258s7f1acfe5j13cde9c1b8a0f946@mail.gmail.com"
 type="cite">OK, I just solved my own problem.&nbsp; 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.<br>
  <br>
The suspect code beginning on line 333 is:
  <br>
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String pkgName = cls.getPackage().getName();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( "org.drools.reteoo".equals( pkgName ) ||
"org.drools.base".equals( pkgName ) ) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // We don't shadow internal classes
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.shadowEnabled = false;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
  <br>
The getPackage() method returns null.&nbsp; 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.<br>
  <br>
Now I'll continue trying to build a test case for my original problem.<br>
  <br>
Shall I enter a JIRA for this issue?<br>
  <br>
Thanks,<br>
-Chris West<br>
  <br>
  <div><span class="gmail_quote">On 7/12/07, <b
 class="gmail_sendername">Chris West</b> &lt;<a moz-do-not-send="true"
 href="mailto:crayzfishr@gmail.com">crayzfishr@gmail.com</a>&gt; wrote:</span>
  <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hello,<br>
    <br>
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.&nbsp; My project was using CGLib to generate proxies, and they were
working just fine in 3.0.6.&nbsp; 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.&nbsp; 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.
    <br>
    <br>
So, in an attempt to create a simple program to illustrate the problem,
I ran into a different problem.&nbsp; The attached eclipse project
illustrates this problem.<br>
    <br>
The error is:<br>
    <br>
java.lang.NullPointerException
    <br>
&nbsp;&nbsp;&nbsp; at org.drools.reteoo.Rete$ObjectTypeConf.&lt;init&gt;(Rete.java:333)<br>
&nbsp;&nbsp;&nbsp; at org.drools.reteoo.Rete.assertObject(Rete.java:152)<br>
&nbsp;&nbsp;&nbsp; at
org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:190)<br>
&nbsp;&nbsp;&nbsp; at
org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java:70)<br>
&nbsp;&nbsp;&nbsp; at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:772)<br>
&nbsp;&nbsp;&nbsp; at org.drools.common.AbstractWorkingMemory.insert
(AbstractWorkingMemory.java:584)<br>
&nbsp;&nbsp;&nbsp; at com.sample.DroolsTest.main(DroolsTest.java:42)<br>
    <br>
Has anyone successfully used JDK based dynamic proxies as facts?<br>
    <br>
Thanks,<br>
    <span class="sg">-Chris West<br>
    </span><br clear="all">
  </blockquote>
  </div>
  <br>
  <pre wrap="">
<hr size="4" width="90%">
_______________________________________________
rules-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a>
<a class="moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a>
  </pre>
</blockquote>
<br>
</body>
</html>