[jboss-svn-commits] JBL Code SVN: r26135 - in labs/jbossrules/trunk/drools-core/src/main/java/org/drools: rule and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Apr 18 19:29:46 EDT 2009
Author: mark.proctor at jboss.com
Date: 2009-04-18 19:29:46 -0400 (Sat, 18 Apr 2009)
New Revision: 26135
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/CompositeClassLoader.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/JavaDialectRuntimeData.java
Log:
-fixed regression for dynamic functions
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java 2009-04-18 19:56:05 UTC (rev 26134)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java 2009-04-18 23:29:46 UTC (rev 26135)
@@ -474,6 +474,14 @@
// now iterate again, this time onBeforeExecute will handle any wiring or cloader re-creating that needs to be done as part of the merge
for (Package newPkg : newPkgs) {
Package pkg = this.pkgs.get(newPkg.getName());
+
+ // this needs to go here, as functions will set a java dialect to dirty
+ if (newPkg.getFunctions() != null) {
+ for (Map.Entry<String, Function> entry : newPkg.getFunctions().entrySet()) {
+ pkg.addFunction(entry.getValue());
+ }
+ }
+
pkg.getDialectRuntimeRegistry().onBeforeExecute();
// with the classloader recreated for all byte[] classes, we should now merge and wire any new accessors
pkg.getClassFieldAccessorStore().merge(newPkg.getClassFieldAccessorStore());
@@ -482,12 +490,6 @@
for (Package newPkg : newPkgs) {
Package pkg = this.pkgs.get(newPkg.getName());
- if (newPkg.getFunctions() != null) {
- for (Map.Entry<String, Function> entry : newPkg.getFunctions().entrySet()) {
- pkg.addFunction(entry.getValue());
- }
- }
-
// we have to do this before the merging, as it does some classloader resolving
TypeDeclaration lastType = null;
try {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/CompositeClassLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/CompositeClassLoader.java 2009-04-18 19:56:05 UTC (rev 26134)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/CompositeClassLoader.java 2009-04-18 23:29:46 UTC (rev 26135)
@@ -58,7 +58,9 @@
// still not found so search the parent ClassLoader
if ( this.hasParent && cls == null ) {
- cls = getParent().loadClass( name );
+ cls = Class.forName( name,
+ true,
+ getParent() );
}
if ( resolve ) {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/JavaDialectRuntimeData.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/JavaDialectRuntimeData.java 2009-04-18 19:56:05 UTC (rev 26134)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/JavaDialectRuntimeData.java 2009-04-18 23:29:46 UTC (rev 26135)
@@ -293,8 +293,10 @@
InstantiationException,
IllegalAccessException {
final Object invoker = getInvokers().get( className );
- wire( className,
- invoker );
+ if ( invoker != null ) {
+ wire( className,
+ invoker );
+ }
}
public void wire(final String className,
More information about the jboss-svn-commits
mailing list