[jboss-svn-commits] JBL Code SVN: r19530 - 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
Fri Apr 11 12:48:06 EDT 2008


Author: mingjin
Date: 2008-04-11 12:48:06 -0400 (Fri, 11 Apr 2008)
New Revision: 19530

Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
Log:
JBRULES-1557 DynamicRulesTest.testDynamicFunction Fails under JDK 1.6
- AbstractRuleBase: add function to package during package merging.

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	2008-04-11 16:21:38 UTC (rev 19529)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java	2008-04-11 16:48:06 UTC (rev 19530)
@@ -502,15 +502,20 @@
         imports.putAll( newPkg.getImports() );
 
         if (newPkg.getGlobals() != null) {
-            final Map globals = pkg.getGlobals();
+            final Map<String, Class> globals = pkg.getGlobals();
             // Add globals
-            if (globals == Collections.EMPTY_MAP) {
-                for (Object object : newPkg.getGlobals().entrySet()) {
-                    Map.Entry   entry   = (Map.Entry)object;
-                    pkg.addGlobal((String)entry.getKey(), (Class)entry.getValue());
+            for ( final Map.Entry<String, Class> entry : newPkg.getGlobals().entrySet() ) {
+                final String identifier = entry.getKey();
+                final Class type    = entry.getValue();
+                if ( globals.containsKey( identifier ) &&
+                     !globals.get( identifier ).equals( type )) {
+                        throw new PackageIntegrationException( pkg );
+                } else if (globals == Collections.EMPTY_MAP) {
+                    pkg.addGlobal(identifier, type);
+                } else {
+                    globals.put(identifier,
+                                type);
                 }
-            } else {
-                globals.putAll( newPkg.getGlobals() );
             }
         }
 




More information about the jboss-svn-commits mailing list