[jboss-svn-commits] JBL Code SVN: r26211 - labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/debug/core.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Apr 22 11:39:58 EDT 2009


Author: KrisVerlaenen
Date: 2009-04-22 11:39:57 -0400 (Wed, 22 Apr 2009)
New Revision: 26211

Modified:
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/debug/core/MVELStackFrame.java
Log:
JBRULES-2071: MVEL debug not working anymore
 - updated methods to retrieve source file and line number due to changes in MVEL

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/debug/core/MVELStackFrame.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/debug/core/MVELStackFrame.java	2009-04-22 15:24:01 UTC (rev 26210)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/debug/core/MVELStackFrame.java	2009-04-22 15:39:57 UTC (rev 26211)
@@ -365,6 +365,8 @@
 
         evaluating = true;
         try {
+        	
+        	// Drools 4
             try {
                 Object o = getRemoteVar( "lineNumber" );
                 if ( o == null ) {
@@ -374,9 +376,35 @@
                 int realval = val.value();
                 cacheBreakpointLineNumber = realval;
                 return realval;
-            } catch ( Throwable e ) {
-                DroolsEclipsePlugin.log( e );
+            } catch ( NullPointerException e ) {
+                // Drools 5+
+            } catch (Throwable e) {
+            	DroolsEclipsePlugin.log( e );
             }
+            
+        	// Drools 5
+            try {
+                Object o = getRemoteVar( "label" );
+                if ( o == null ) {
+                    return -1;
+                }
+                ObjectReference obj = (ObjectReference) o;
+                ClassType frameType = (ClassType) obj.type();
+                Field field = frameType.fieldByName( "lineNumber" );
+                o = obj.getValue( field );
+                if ( o == null ) {
+                    return -1;
+                }
+                IntegerValue val = (IntegerValue) o;
+                int realval = val.value();
+                cacheBreakpointLineNumber = realval;
+                return realval;
+            } catch ( NullPointerException e ) {
+                // Drools 5+
+            } catch (Throwable e) {
+            	DroolsEclipsePlugin.log( e );
+            }
+            
             return -1;
         } finally {
             evaluating = false;
@@ -396,6 +424,8 @@
 
         evaluating = true;
         try {
+        	
+        	// Drools 4
             try {
                 Object rem = getRemoteVar( "sourceName" );
                 if ( rem == null ) {
@@ -405,9 +435,32 @@
                 String realres = res.value();
                 cacheMVELName = realres;
                 return realres;
+            } catch ( NullPointerException e) {
+            	// Drools 5
             } catch ( Throwable e ) {
                 DroolsEclipsePlugin.log( e );
             }
+            
+        	// Drools 5
+            try {
+                Object rem = getRemoteVar( "label" );
+                if ( rem == null ) {
+                    return null;
+                }
+                ObjectReference obj = (ObjectReference) rem;
+                ClassType frameType = (ClassType) obj.type();
+                Field field = frameType.fieldByName( "sourceFile" );
+                rem = obj.getValue( field );
+                if ( rem == null ) {
+                    return null;
+                }
+                StringReference res = (StringReference) rem;
+                String realres = res.value();
+                cacheMVELName = realres;
+                return realres;
+            } catch ( Throwable e ) {
+                DroolsEclipsePlugin.log( e );
+            }
 
             return "Unavailable";
         } finally {




More information about the jboss-svn-commits mailing list