[jboss-svn-commits] JBL Code SVN: r14593 - 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
Sun Aug 26 09:27:58 EDT 2007


Author: mark.proctor at jboss.com
Date: 2007-08-26 09:27:58 -0400 (Sun, 26 Aug 2007)
New Revision: 14593

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/Package.java
Log:
-improved runtime error feedback for removing package, rule and functions. Where the item doesn't exist.

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	2007-08-26 12:55:36 UTC (rev 14592)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java	2007-08-26 13:27:58 UTC (rev 14593)
@@ -437,6 +437,9 @@
     public synchronized void removePackage(final String packageName) {
         synchronized ( this.pkgs ) {
             final Package pkg = (Package) this.pkgs.get( packageName );
+            if ( pkg ==  null) {
+                throw new IllegalArgumentException("Package name '" + packageName + "' does not exist for this Rule Base.");
+            }
 
             // INVARIANT: lastAquiredLock always contains the index of the last aquired lock +1 
             // in the working memory array 
@@ -500,7 +503,14 @@
                            final String ruleName) {
         synchronized ( this.pkgs ) {
             final Package pkg = (Package) this.pkgs.get( packageName );
-            final Rule rule = pkg.getRule( ruleName );
+            if ( pkg ==  null) {
+                throw new IllegalArgumentException("Package name '" + packageName + "' does not exist for this Rule Base.");
+            }
+            
+            final Rule rule = pkg.getRule( ruleName );            
+            if ( rule ==  null) {
+                throw new IllegalArgumentException("Rule name '"+ ruleName + "' does not exist in the Package '" + packageName + "'.");
+            }
 
             // INVARIANT: lastAquiredLock always contains the index of the last aquired lock +1 
             // in the working memory array 
@@ -541,7 +551,14 @@
     public void removeFunction(String packageName, String functionName) {
         synchronized ( this.pkgs ) {
             final Package pkg = (Package) this.pkgs.get( packageName );
+            if ( pkg ==  null) {
+                throw new IllegalArgumentException("Package name '" + packageName + "' does not exist for this Rule Base.");
+            }
+            
             PackageCompilationData compilationData = pkg.removeFunction( functionName );
+            if ( compilationData == null ) {
+                throw new IllegalArgumentException("function name '" + packageName + "' does not exist in the Package '" + packageName + "'.");
+            }
             
             if ( this.reloadPackageCompilationData == null ) {
                 this.reloadPackageCompilationData = new ReloadPackageCompilationData();

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Package.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Package.java	2007-08-26 12:55:36 UTC (rev 14592)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Package.java	2007-08-26 13:27:58 UTC (rev 14593)
@@ -256,7 +256,9 @@
     }
 
     public PackageCompilationData removeFunction(final String functionName) {
-        this.functions.remove( functionName );
+        if ( !this.functions.remove( functionName )) {
+            return null;
+        }
         this.packageCompilationData.remove( this.name + "." + StringUtils.ucFirst( functionName ) );
         return this.packageCompilationData;
     }




More information about the jboss-svn-commits mailing list