[jboss-svn-commits] JBL Code SVN: r25651 - labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Mar 14 22:34:58 EDT 2009
Author: mark.proctor at jboss.com
Date: 2009-03-14 22:34:58 -0400 (Sat, 14 Mar 2009)
New Revision: 25651
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
Log:
JBRULES-2007 ClassCastException due to bad classloader reference
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-03-14 18:38:29 UTC (rev 25650)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java 2009-03-15 02:34:58 UTC (rev 25651)
@@ -465,6 +465,14 @@
// first merge anything related to classloader re-wiring
pkg.getDialectRuntimeRegistry().merge( newPkg.getDialectRuntimeRegistry(), this.rootClassLoader );
}
+
+ // 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() );
+ 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() );
+ }
for ( Package newPkg : newPkgs ) {
Package pkg = this.pkgs.get( newPkg.getName() );
@@ -474,8 +482,6 @@
pkg.addFunction( entry.getValue() );
}
}
- pkg.getClassFieldAccessorStore().merge( newPkg.getClassFieldAccessorStore() );
- pkg.getDialectRuntimeRegistry().onBeforeExecute();
// we have to do this before the merging, as it does some classloader resolving
TypeDeclaration lastType = null;
@@ -520,7 +526,7 @@
}
this.eventSupport.fireAfterPackageAdded( newPkg );
- }
+ }
} finally {
// only unlock if it had been acquired implicitely
if ( doUnlock ) {
More information about the jboss-svn-commits
mailing list