[jboss-svn-commits] JBL Code SVN: r13586 - 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
Tue Jul 17 17:05:48 EDT 2007
Author: ahtik
Date: 2007-07-17 17:05:47 -0400 (Tue, 17 Jul 2007)
New Revision: 13586
Modified:
labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/core/DroolsDebugTarget.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:
Commented out variable fetch (temporarily, so we can figure out the cause of illegal stack frames)
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/core/DroolsDebugTarget.java
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/core/DroolsDebugTarget.java 2007-07-17 20:47:13 UTC (rev 13585)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/core/DroolsDebugTarget.java 2007-07-17 21:05:47 UTC (rev 13586)
@@ -99,7 +99,7 @@
// Create class prepare request to add breakpoint after MVELDebugHanlder is loaded
ClassPrepareRequest req = getEventRequestManager().createClassPrepareRequest();
req.addClassFilter( "org.drools.base.mvel.MVELDebugHandler" );
- req.setSuspendPolicy( EventRequest.SUSPEND_EVENT_THREAD );
+ req.setSuspendPolicy( EventRequest.SUSPEND_ALL);
addJDIEventListener( new IJDIEventListener() {
@@ -657,7 +657,7 @@
try {
ClassPrepareRequest req = manager.createClassPrepareRequest();
req.addClassFilter( "org.drools.base.mvel.MVELDebugHandler" );
- req.setSuspendPolicy( EventRequest.SUSPEND_EVENT_THREAD );
+ req.setSuspendPolicy( EventRequest.SUSPEND_ALL );
addJDIEventListener( MVELTraceHandler.this,
req );
req.enable();
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-17 20:47:13 UTC (rev 13585)
+++ 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-17 21:05:47 UTC (rev 13586)
@@ -1,6 +1,8 @@
package org.drools.eclipse.debug.core;
import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
@@ -9,8 +11,10 @@
import org.eclipse.debug.core.DebugException;
import org.eclipse.debug.core.model.IValue;
import org.eclipse.debug.core.model.IVariable;
+import org.eclipse.debug.internal.core.WatchExpression;
import org.eclipse.jdi.internal.MirrorImpl;
import org.eclipse.jdi.internal.StackFrameImpl;
+import org.eclipse.jdi.internal.VirtualMachineImpl;
import org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget;
import org.eclipse.jdt.internal.debug.core.model.JDILocalVariable;
import org.eclipse.jdt.internal.debug.core.model.JDINullValue;
@@ -68,6 +72,11 @@
List result = new ArrayList( 0 );
+ /*
+ WatchExpression ex = new WatchExpression("frame");
+ ex.setExpressionContext( this );
+ System.out.println("REALLY "+ex.getValue());
+ */
Method method = getUnderlyingMethod(); // onBreak
ReferenceType declaringType = method.declaringType(); // org.drools.base.mvel.MVELDebugHandler
@@ -80,6 +89,14 @@
v2 );
result.add( frameLocal );
+
+ {
+ IVariable[] vararr = (IVariable[]) result.toArray( new IVariable[result.size()] );
+ if (vararr!=null) {
+ return vararr;
+ }
+ }
+
Value factoryVar = fetchField( frameLocal, "factory" );
Value localVars = fetchField( factoryVar,
"localVariables" );
@@ -89,7 +106,8 @@
Value entrySet = runMethod( localVars,
"entrySet" );
- Value iter = runMethod( entrySet,
+
+ /* Value iter = runMethod( entrySet,
"iterator" );
while (internalHasNext(iter)) {
@@ -108,7 +126,7 @@
result.add( th );
}
- // v2.localVariables
+*/ // v2.localVariables
//ObjectReference iteratorObj = ((JDIObjectValue)mapentries).getUnderlyingObject();
@@ -197,8 +215,23 @@
} catch ( Throwable t ) {
t.printStackTrace();
}
+
+
IVariable[] vararr = (IVariable[]) result.toArray( new IVariable[result.size()] );
+
+ Arrays.sort( vararr,
+ new Comparator() {
+ public int compare(Object var1,
+ Object var2) {
+ try {
+ return ((IVariable) var1).getName().compareTo( ((IVariable) var2).getName() );
+ } catch ( DebugException e ) {
+ return 0;
+ }
+ }
+
+ } );
return vararr;
}
@@ -221,6 +254,8 @@
recreateFrames();
+
+
ObjectReference refObj = (ObjectReference) val;
ReferenceType t = refObj.referenceType();
Method m2 = (Method) t.methodsByName( methodName ).iterator().next();
@@ -347,6 +382,7 @@
InvalidTypeException,
IncompatibleThreadStateException,
InvocationException {
+
//frame arg
Method method = getUnderlyingMethod(); // onBreak
ReferenceType declaringType = method.declaringType(); // org.drools.base.mvel.MVELDebugHandler
@@ -381,7 +417,7 @@
//m.verboseWriter()
//ObjectReference o = (ObjectReference) fr.getValue( var );
-
+ recreateFrames();
IValue value = jdivar.getValue();
if (value instanceof JDINullValue) {
return null;
@@ -406,8 +442,8 @@
}
private void recreateFrames() throws DebugException {
- DroolsThread thr = (DroolsThread) getThread();
- thr.computeNewStackFrames();
+ //DroolsThread thr = (DroolsThread) getThread();
+ //thr.computeNewStackFrames();
}
}
More information about the jboss-svn-commits
mailing list