[jboss-svn-commits] JBL Code SVN: r13676 - labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/core.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Jul 20 11:18:38 EDT 2007


Author: ahtik
Date: 2007-07-20 11:18:38 -0400 (Fri, 20 Jul 2007)
New Revision: 13676

Modified:
   labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/core/DroolsLineBreakpoint.java
   labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/core/MVELStackFrame.java
Log:
Fix for java dialect line numbering for debugger line breakpoints; Fix for handling debugger stackframes with KnownVariables that are not found in VariableResolvers (possibly bug but for now logs this error and continues silently)

Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/core/DroolsLineBreakpoint.java
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/core/DroolsLineBreakpoint.java	2007-07-20 15:12:33 UTC (rev 13675)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/core/DroolsLineBreakpoint.java	2007-07-20 15:18:38 UTC (rev 13676)
@@ -7,6 +7,7 @@
 import org.drools.eclipse.DroolsEclipsePlugin;
 import org.drools.eclipse.DRLInfo.FunctionInfo;
 import org.drools.eclipse.DRLInfo.RuleInfo;
+import org.drools.rule.builder.dialect.mvel.MVELDialect;
 import org.eclipse.core.resources.IMarker;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.CoreException;
@@ -111,7 +112,10 @@
                     
                     int line = ruleInfo.getConsequenceJavaLineNumber() 
                                         	+ (lineNumber - ruleInfo.getConsequenceDrlLineNumber());
-                    return line;
+                    if (ruleInfo.getDialect().getId().equals( MVELDialect.ID )) {
+                        return line;
+                    }
+                    return line+1;
                 }
             }
             FunctionInfo functionInfo = drlInfo.getFunctionInfo( lineNumber );

Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/core/MVELStackFrame.java
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/core/MVELStackFrame.java	2007-07-20 15:12:33 UTC (rev 13675)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/core/MVELStackFrame.java	2007-07-20 15:18:38 UTC (rev 13676)
@@ -95,18 +95,25 @@
             Iterator varIter = arr.getValues().iterator();
             
             while ( varIter.hasNext() ) {
-                final String varName = ((StringReference) varIter.next()).value();
-                IJavaValue val = (IJavaValue) DebugUtil.getValueByExpression( "return getVariableResolver(\""+varName+"\").getValue();", factory);
-                final ObjectReference valRef = ((JDIObjectValue)val).getUnderlyingObject();
-                //MVELThisVariable t2 = new MVELThisVariable((JDIDebugTarget) getDebugTarget(),valRef,varName);
-                
-                VariableWrapper local = new VariableWrapper(varName, val); 
-                
-                IValue isLocal = DebugUtil.getValueByExpression( "return getParserContext().getVariables();", frameLocal.getValue());
-                local.setPublic( true );
-                //local.setLocal( true );
-                result.add(local);
-            }
+                    final String varName = ((StringReference) varIter.next()).value();
+                    IJavaValue val = (IJavaValue) DebugUtil.getValueByExpression( "return getVariableResolver(\"" + varName + "\").getValue();",
+                                                                                  factory );
+                    if ( val != null ) {
+                        final ObjectReference valRef = ((JDIObjectValue) val).getUnderlyingObject();
+                        //MVELThisVariable t2 = new MVELThisVariable((JDIDebugTarget) getDebugTarget(),valRef,varName);
+
+                        VariableWrapper local = new VariableWrapper( varName,
+                                                                     val );
+
+                        IValue isLocal = DebugUtil.getValueByExpression( "return getParserContext().getVariables();",
+                                                                         frameLocal.getValue() );
+                        local.setPublic( true );
+                        //local.setLocal( true );
+                        result.add( local );
+                    } else {
+                        DroolsEclipsePlugin.log( new Exception("Unable to get value for variable named '"+varName+"'") );
+                    }
+                }
             
             IValue localVars = DebugUtil.getValueByExpression( "return getParserContext().getVariables();", frameLocal.getValue());
             IValue globalVars = DebugUtil.getValueByExpression( "return getParserContext().getInputs();", frameLocal.getValue());




More information about the jboss-svn-commits mailing list