[jboss-svn-commits] JBL Code SVN: r26976 - in labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse: editors/rete and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Jun 15 16:50:14 EDT 2009


Author: KrisVerlaenen
Date: 2009-06-15 16:50:14 -0400 (Mon, 15 Jun 2009)
New Revision: 26976

Modified:
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/DroolsEclipsePlugin.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/editors/rete/ReteViewer.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/preferences/DroolsProjectPreferencePage.java
Log:
JBIDE-4080: Internal error in Drools Plugin: is occured if empty rule.package is opened on ReteTree tab
 - made a distinction between an empty and an incorrect RuleBase

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/DroolsEclipsePlugin.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/DroolsEclipsePlugin.java	2009-06-15 18:56:27 UTC (rev 26975)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/DroolsEclipsePlugin.java	2009-06-15 20:50:14 UTC (rev 26976)
@@ -416,7 +416,7 @@
                 PackageBuilder builder = new PackageBuilder( builder_configuration );
                 DRLInfo result = null;
                 // compile parsed rules if necessary
-                if ( compile && !parser.hasErrors()) {
+                if ( packageDescr != null && compile && !parser.hasErrors()) {
                     // check whether a .package file exists and add it
                     if ( resource != null && resource.getParent() != null ) {
                         MyResourceVisitor visitor = new MyResourceVisitor();

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/editors/rete/ReteViewer.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/editors/rete/ReteViewer.java	2009-06-15 18:56:27 UTC (rev 26975)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/editors/rete/ReteViewer.java	2009-06-15 20:50:14 UTC (rev 26976)
@@ -112,29 +112,6 @@
         return super.getAdapter( type );
     }
 
-    private RuleBase getRuleBase(String contents) {
-    	try {
-    		IResource resource = drlEditor.getResource();
-	        ClassLoader newLoader = DroolsBuilder.class.getClassLoader();
-	        if ( resource.getProject().getNature( "org.eclipse.jdt.core.javanature" ) != null ) {
-	            IJavaProject project = JavaCore.create( resource.getProject() );
-	            newLoader = ProjectClassLoader.getProjectClassLoader( project );
-	        }
-        	DRLInfo drlInfo = DroolsEclipsePlugin.getDefault().parseResource(drlEditor, true, true);
-        	if (drlInfo != null) {
-        		Package pkg = drlInfo.getPackage();
-        		RuleBaseConfiguration config = new RuleBaseConfiguration();
-        		config.setClassLoader(newLoader);
-        		ReteooRuleBase ruleBase = (ReteooRuleBase) RuleBaseFactory.newRuleBase(RuleBase.RETEOO, config);
-        		ruleBase.addPackage(pkg);
-        		return ruleBase;
-        	}
-        } catch ( Throwable t ) {
-            DroolsEclipsePlugin.log( t );
-        }
-        return null;
-    }
-
     /**
      * Loads model from rule base,
      * calculates rete view and initializes diagram model.
@@ -156,11 +133,37 @@
                                100 );
 
             monitor.subTask( "Loading Rule Base" );
-            RuleBase ruleBase = getRuleBase( contents );
-            if ( ruleBase == null ) {
-                final Exception error = new Exception( MSG_PARSE_ERROR );
-                throw error;
+            ReteooRuleBase ruleBase = null;
+            try {
+                IResource resource = drlEditor.getResource();
+                ClassLoader newLoader = DroolsBuilder.class.getClassLoader();
+                if ( resource.getProject().getNature( "org.eclipse.jdt.core.javanature" ) != null ) {
+                    IJavaProject project = JavaCore.create( resource.getProject() );
+                    newLoader = ProjectClassLoader.getProjectClassLoader( project );
+                }
+                DRLInfo drlInfo = DroolsEclipsePlugin.getDefault().parseResource(drlEditor, true, true);
+                if (drlInfo == null) {
+                    throw new Exception( "Could not find DRL info" );
+                }
+                if (drlInfo.getBuilderErrors().length > 0) {
+                    throw new Exception( drlInfo.getBuilderErrors().length + " build errors" );
+                }
+                if (drlInfo.getParserErrors().size() > 0) {
+                    throw new Exception( drlInfo.getParserErrors().size() + " parser errors" );
+                }
+
+                Package pkg = drlInfo.getPackage();
+                RuleBaseConfiguration config = new RuleBaseConfiguration();
+                config.setClassLoader(newLoader);
+                ruleBase = (ReteooRuleBase) RuleBaseFactory.newRuleBase(RuleBase.RETEOO, config);
+                if (pkg != null) {
+                    ruleBase.addPackage(pkg);
+                }
+            } catch ( Throwable t ) {
+                DroolsEclipsePlugin.log( t );
+                throw new Exception( MSG_PARSE_ERROR + " " + t.getMessage());
             }
+
             monitor.worked( 50 );
             if ( monitor.isCanceled() ) {
                 throw new InterruptedException();

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/preferences/DroolsProjectPreferencePage.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/preferences/DroolsProjectPreferencePage.java	2009-06-15 18:56:27 UTC (rev 26975)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/preferences/DroolsProjectPreferencePage.java	2009-06-15 20:50:14 UTC (rev 26976)
@@ -48,6 +48,8 @@
         }
         if (selection != -1) {
         	droolsRuntimeCombo.select(selection);
+        } else if (runtimes.length > 0) {
+            droolsRuntimeCombo.select(0);
         }
         GridData gridData = new GridData();
         gridData.grabExcessHorizontalSpace = true;




More information about the jboss-svn-commits mailing list