diff --git a/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/CommandCache.java b/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/CommandCache.java index 6982a8346c9..881493eb269 100644 --- a/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/CommandCache.java +++ b/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/CommandCache.java @@ -28,6 +28,7 @@ import org.eclipse.dd.dsf.concurrent.IDsfStatusConstants; import org.eclipse.dd.dsf.datamodel.DMContexts; import org.eclipse.dd.dsf.datamodel.IDMContext; import org.eclipse.dd.dsf.debug.internal.DsfDebugPlugin; +import org.eclipse.dd.dsf.service.DsfSession; /** * This is a utility class for caching results of MI Commands. Return MIInfo @@ -105,6 +106,10 @@ public class CommandCache implements ICommandListener public ICommandResult getData() { return fData; } public IStatus getStatus() { return fStatus; } } + + private DsfSession fSession; + + private ICommandControl fCommandControl; /* * This class contains 5 significant lists. @@ -139,11 +144,8 @@ public class CommandCache implements ICommandListener * created. When the coalesced commands completes the results will be decomposed * when back into individual results from this command. */ - private Set fUnavailableContexts = new HashSet(); - private ICommandControl fCommandControl; - private Map> fCachedContexts = new HashMap>(); private ArrayList fPendingQCommandsSent = new ArrayList(); @@ -152,7 +154,8 @@ public class CommandCache implements ICommandListener private ArrayList fPendingQWaitingForCoalescedCompletion = new ArrayList(); - public CommandCache(ICommandControl control) { + public CommandCache(DsfSession session, ICommandControl control) { + fSession = session; fCommandControl = control; /* @@ -232,7 +235,7 @@ public class CommandCache implements ICommandListener * well as its cache status. */ public void execute(ICommand command, DataRequestMonitor rm) { - assert fCommandControl.getExecutor().isInExecutorThread(); + assert fSession.getExecutor().isInExecutorThread(); // Cast the generic ?'s to concrete types in the cache implementation. @SuppressWarnings("unchecked") @@ -315,7 +318,7 @@ public class CommandCache implements ICommandListener fCommandControl.queueCommand( finalCachedCmd.getCommand(), - new DataRequestMonitor(fCommandControl.getExecutor(), null) { + new DataRequestMonitor(fSession.getExecutor(), null) { @Override public void handleCompleted() { diff --git a/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/ICommandControl.java b/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/ICommandControl.java index bf4effb9962..3d6620338af 100644 --- a/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/ICommandControl.java +++ b/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/ICommandControl.java @@ -11,13 +11,12 @@ package org.eclipse.dd.dsf.debug.service.command; import org.eclipse.dd.dsf.concurrent.DataRequestMonitor; -import org.eclipse.dd.dsf.service.IDsfService; /** * API for sending commands to the debugger and for receiving command results * and asynchronous events. */ -public interface ICommandControl extends IDsfService{ +public interface ICommandControl { /** * Adds the specified command to the queue of commands to be processed. diff --git a/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/service/DsfServicesTracker.java b/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/service/DsfServicesTracker.java index ab794d24d5f..4ab4c6dc55d 100644 --- a/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/service/DsfServicesTracker.java +++ b/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/service/DsfServicesTracker.java @@ -73,7 +73,7 @@ public class DsfServicesTracker { private BundleContext fBundleContext; private Map fServiceReferences = new HashMap(); - private Map fServices = new HashMap(); + private Map fServices = new HashMap(); private String fServiceFilter; /** @@ -125,7 +125,7 @@ public class DsfServicesTracker { * @param serviceClass class of the desired service * @return instance of the desired service, null if not found */ - public V getService(Class serviceClass) { + public V getService(Class serviceClass) { return getService(serviceClass, null); } @@ -140,7 +140,7 @@ public class DsfServicesTracker { * @return instance of the desired service, null if not found */ @SuppressWarnings("unchecked") - public V getService(Class serviceClass, String filter) { + public V getService(Class serviceClass, String filter) { ServiceReference serviceRef = getServiceReference(serviceClass, filter); if (serviceRef == null) { return null; diff --git a/plugins/org.eclipse.dd.examples.pda/src/org/eclipse/dd/examples/pda/launch/PDAServicesShutdownSequence.java b/plugins/org.eclipse.dd.examples.pda/src/org/eclipse/dd/examples/pda/launch/PDAServicesShutdownSequence.java index 4ca6df9cfe9..f73fe7108d4 100644 --- a/plugins/org.eclipse.dd.examples.pda/src/org/eclipse/dd/examples/pda/launch/PDAServicesShutdownSequence.java +++ b/plugins/org.eclipse.dd.examples.pda/src/org/eclipse/dd/examples/pda/launch/PDAServicesShutdownSequence.java @@ -122,7 +122,7 @@ public class PDAServicesShutdownSequence extends Sequence { @SuppressWarnings("unchecked") private void shutdownService(Class clazz, final RequestMonitor requestMonitor) { - IDsfService service = fTracker.getService(clazz); + IDsfService service = (IDsfService)fTracker.getService(clazz); if (service != null) { service.shutdown(new RequestMonitor(getExecutor(), requestMonitor) { @Override diff --git a/plugins/org.eclipse.dd.examples.pda/src/org/eclipse/dd/examples/pda/service/PDAExpressions.java b/plugins/org.eclipse.dd.examples.pda/src/org/eclipse/dd/examples/pda/service/PDAExpressions.java index 3ebafb920b8..29fbfa38061 100644 --- a/plugins/org.eclipse.dd.examples.pda/src/org/eclipse/dd/examples/pda/service/PDAExpressions.java +++ b/plugins/org.eclipse.dd.examples.pda/src/org/eclipse/dd/examples/pda/service/PDAExpressions.java @@ -189,7 +189,7 @@ public class PDAExpressions extends AbstractDsfService implements IExpressions { private void doInitialize(final RequestMonitor rm) { fCommandControl = getServicesTracker().getService(PDACommandControl.class); fStack = getServicesTracker().getService(IStack.class); - fCommandCache = new CommandCache(fCommandControl); + fCommandCache = new CommandCache(getSession(), fCommandControl); getSession().addServiceEventListener(this, null); diff --git a/plugins/org.eclipse.dd.examples.pda/src/org/eclipse/dd/examples/pda/service/PDAStack.java b/plugins/org.eclipse.dd.examples.pda/src/org/eclipse/dd/examples/pda/service/PDAStack.java index 6fe86364277..90abe899d44 100644 --- a/plugins/org.eclipse.dd.examples.pda/src/org/eclipse/dd/examples/pda/service/PDAStack.java +++ b/plugins/org.eclipse.dd.examples.pda/src/org/eclipse/dd/examples/pda/service/PDAStack.java @@ -195,7 +195,7 @@ public class PDAStack extends AbstractDsfService implements IStack { fRunControl = getServicesTracker().getService(IRunControl.class); // Create the commands cache - fCommandCache = new CommandCache(fCommandControl); + fCommandCache = new CommandCache(getSession(), fCommandControl); // Register to listen for run control events, to clear cache accordingly. getSession().addServiceEventListener(this, null); diff --git a/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/launching/ShutdownSequence.java b/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/launching/ShutdownSequence.java index 08cdbf531fa..8a59da52f77 100644 --- a/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/launching/ShutdownSequence.java +++ b/plugins/org.eclipse.dd.gdb/src/org/eclipse/dd/gdb/internal/provisional/launching/ShutdownSequence.java @@ -160,7 +160,7 @@ public class ShutdownSequence extends Sequence { @SuppressWarnings("unchecked") private void shutdownService(Class clazz, final RequestMonitor requestMonitor) { - IDsfService service = fTracker.getService(clazz); + IDsfService service = (IDsfService)fTracker.getService(clazz); if (service != null) { service.shutdown(new RequestMonitor(getExecutor(), requestMonitor) { @Override diff --git a/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/ExpressionService.java b/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/ExpressionService.java index 2db9093e88a..62380ce4674 100644 --- a/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/ExpressionService.java +++ b/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/ExpressionService.java @@ -452,7 +452,7 @@ public class ExpressionService extends AbstractDsfService implements IExpression // Create the meta command cache which will use the variable manager // to actually send MI commands to the back-end - fExpressionCache = new CommandCache(varManager); + fExpressionCache = new CommandCache(getSession(), varManager); requestMonitor.done(); } @@ -467,7 +467,7 @@ public class ExpressionService extends AbstractDsfService implements IExpression @Override public void shutdown(RequestMonitor requestMonitor) { unregister(); - varManager.shutdown(); + varManager.dispose(); getSession().removeServiceEventListener(this); super.shutdown(requestMonitor); } diff --git a/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIMemory.java b/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIMemory.java index 1296edaf1a5..c47752e903e 100644 --- a/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIMemory.java +++ b/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIMemory.java @@ -438,7 +438,7 @@ public class MIMemory extends AbstractDsfService implements IMemory { public MIMemoryCache() { // Create the command cache - fCommandCache = new CommandCache(getServicesTracker().getService(ICommandControl.class)); + fCommandCache = new CommandCache(getSession(), getServicesTracker().getService(ICommandControl.class)); // Create the memory block cache fMemoryBlockList = new SortedMemoryBlockList(); } diff --git a/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIModules.java b/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIModules.java index d013393fceb..af155a16abc 100644 --- a/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIModules.java +++ b/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIModules.java @@ -60,7 +60,7 @@ public class MIModules extends AbstractDsfService implements IModules { private void doInitialize(RequestMonitor requestMonitor) { // Cache for holding Modules data - fModulesCache = new CommandCache(getServicesTracker().getService(ICommandControl.class)); + fModulesCache = new CommandCache(getSession(), getServicesTracker().getService(ICommandControl.class)); /* * Make ourselves known so clients can use us. */ diff --git a/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIRegisters.java b/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIRegisters.java index e4aaca93a0a..568a477a0d6 100644 --- a/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIRegisters.java +++ b/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIRegisters.java @@ -171,8 +171,8 @@ public class MIRegisters extends AbstractDsfService implements IRegisters { /* * Create the lower level register cache. */ - fRegisterValueCache = new CommandCache(getServicesTracker().getService(ICommandControl.class)); - fRegisterNameCache = new CommandCache(getServicesTracker().getService(ICommandControl.class)); + fRegisterValueCache = new CommandCache(getSession(), getServicesTracker().getService(ICommandControl.class)); + fRegisterNameCache = new CommandCache(getSession(), getServicesTracker().getService(ICommandControl.class)); /* * Signup so we see events. We use these events to decide how to manage diff --git a/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIRunControl.java b/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIRunControl.java index b87010fdc49..0542e1d7429 100644 --- a/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIRunControl.java +++ b/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIRunControl.java @@ -285,7 +285,7 @@ public class MIRunControl extends AbstractDsfService implements IRunControl private void doInitialize(final RequestMonitor rm) { fConnection = getServicesTracker().getService(ICommandControl.class); - fMICommandCache = new CommandCache(fConnection); + fMICommandCache = new CommandCache(getSession(), fConnection); getSession().addServiceEventListener(this, null); //register(new String[]{IRunControl.class.getName(), MIRunControl.class.getName()}, new Hashtable()); diff --git a/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIVariableManager.java b/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIVariableManager.java index 37617969aea..7e860d9c7c7 100644 --- a/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIVariableManager.java +++ b/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIVariableManager.java @@ -41,7 +41,6 @@ import org.eclipse.dd.dsf.debug.service.command.ICommandControl; import org.eclipse.dd.dsf.debug.service.command.ICommandListener; import org.eclipse.dd.dsf.debug.service.command.ICommandResult; import org.eclipse.dd.dsf.debug.service.command.IEventListener; -import org.eclipse.dd.dsf.service.AbstractDsfService; import org.eclipse.dd.dsf.service.DsfServiceEventHandler; import org.eclipse.dd.dsf.service.DsfServicesTracker; import org.eclipse.dd.dsf.service.DsfSession; @@ -81,7 +80,6 @@ import org.eclipse.dd.mi.service.command.output.MIVarListChildrenInfo; import org.eclipse.dd.mi.service.command.output.MIVarSetFormatInfo; import org.eclipse.dd.mi.service.command.output.MIVarShowAttributesInfo; import org.eclipse.dd.mi.service.command.output.MIVarUpdateInfo; -import org.osgi.framework.BundleContext; /** * Manages a list of variable objects as created through GDB/MI commands. @@ -195,7 +193,7 @@ import org.osgi.framework.BundleContext; * with a specified format, therefore allowing us to never use -var-set-format, and * consequently, to easily keep the display format of all variable objects to natural. */ -public class MIVariableManager extends AbstractDsfService implements ICommandControl { +public class MIVariableManager implements ICommandControl { /** @@ -353,7 +351,7 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon updatesPending.add(rm); } else { currentState = STATE_UPDATING; - getRootToUpdate().update(new DataRequestMonitor(getExecutor(), rm) { + getRootToUpdate().update(new DataRequestMonitor(fSession.getExecutor(), rm) { @Override protected void handleCompleted() { currentState = STATE_READY; @@ -412,7 +410,7 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon } else { fCommandControl.queueCommand( new MIVarShowAttributes(fControlDmc, getGdbName()), - new DataRequestMonitor(getExecutor(), rm) { + new DataRequestMonitor(fSession.getExecutor(), rm) { @Override protected void handleSuccess() { editable = getData().isEditable(); @@ -457,14 +455,14 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon IExpressionDMContext addrCxt = fExpressionService.createExpression(exprCxt, "&(" + exprCxt.getExpression() + ")"); //$NON-NLS-1$//$NON-NLS-2$ final FormattedValueDMContext formatCxt = new FormattedValueDMContext( - fExpressionService.getSession().getId(), + fSession.getId(), addrCxt, dmc.getFormatID() ); getVariable( addrCxt, - new DataRequestMonitor(getExecutor(), rm) { + new DataRequestMonitor(fSession.getExecutor(), rm) { @Override protected void handleSuccess() { getData().getValue(formatCxt, rm); @@ -483,7 +481,7 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon } if (locked) { - operationsPending.add(new RequestMonitor(getExecutor(), rm) { + operationsPending.add(new RequestMonitor(fSession.getExecutor(), rm) { @Override protected void handleSuccess() { getValue(dmc, rm); @@ -500,7 +498,7 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon // We must first set the new format and then evaluate the variable fCommandControl.queueCommand( new MIVarSetFormat(fControlDmc, getGdbName(), dmc.getFormatID()), - new DataRequestMonitor(getExecutor(), rm) { + new DataRequestMonitor(fSession.getExecutor(), rm) { @Override protected void handleCompleted() { if (isSuccess()) { @@ -536,7 +534,7 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon private void evaluate(final DataRequestMonitor rm) { fCommandControl.queueCommand( new MIVarEvaluateExpression(fControlDmc, getGdbName()), - new DataRequestMonitor(getExecutor(), rm) { + new DataRequestMonitor(fSession.getExecutor(), rm) { @Override protected void handleCompleted() { if (isSuccess()) { @@ -573,7 +571,7 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon if (!getCurrentFormat().equals(IFormattedValues.NATURAL_FORMAT)) { fCommandControl.queueCommand( new MIVarSetFormat(fControlDmc, getGdbName(), IFormattedValues.NATURAL_FORMAT), - new DataRequestMonitor(getExecutor(), null) { + new DataRequestMonitor(fSession.getExecutor(), null) { @Override protected void handleCompleted() { if (isSuccess()) { @@ -639,13 +637,13 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon // Also no need to lock the object, since getting the children won't affect other operations fCommandControl.queueCommand( new MIVarListChildren(fControlDmc, getGdbName()), - new DataRequestMonitor(getExecutor(), rm) { + new DataRequestMonitor(fSession.getExecutor(), rm) { @Override protected void handleSuccess() { MIVar[] children = getData().getMIVars(); final List realChildren = new ArrayList(); - final CountingRequestMonitor countingRm = new CountingRequestMonitor(getExecutor(), rm) { + final CountingRequestMonitor countingRm = new CountingRequestMonitor(fSession.getExecutor(), rm) { @Override protected void handleSuccess() { // Store the children in our variable object cache @@ -676,7 +674,7 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon numSubRequests++; final DataRequestMonitor childPathRm = - new DataRequestMonitor(getExecutor(), countingRm) { + new DataRequestMonitor(fSession.getExecutor(), countingRm) { @Override protected void handleSuccess() { String childFullExpression = getData(); @@ -727,7 +725,7 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon // get the children of this child to get the real children childVar.getChildren( exprDmc, - new DataRequestMonitor(getExecutor(), countingRm) { + new DataRequestMonitor(fSession.getExecutor(), countingRm) { @Override protected void handleSuccess() { ExpressionInfo[] vars = getData(); @@ -756,7 +754,7 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon // can get from -var-info-path-expression starting from GDB 6.7 fCommandControl.queueCommand( new MIVarInfoPathExpression(fControlDmc, child.getVarName()), - new DataRequestMonitor(getExecutor(), childPathRm) { + new DataRequestMonitor(fSession.getExecutor(), childPathRm) { @Override protected void handleCompleted() { if (isSuccess()) { @@ -883,7 +881,7 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon // No need to be in ready state or to lock the object fCommandControl.queueCommand( new MIVarAssign(fControlDmc, getGdbName(), value), - new DataRequestMonitor(getExecutor(), rm) { + new DataRequestMonitor(fSession.getExecutor(), rm) { @Override protected void handleSuccess() { // We must also mark all variable objects @@ -960,7 +958,7 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon fCommandControl.queueCommand( new MIVarCreate(exprCtx, exprCtx.getExpression()), - new DataRequestMonitor(getExecutor(), rm) { + new DataRequestMonitor(fSession.getExecutor(), rm) { @Override protected void handleCompleted() { if (isSuccess()) { @@ -1016,7 +1014,7 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon // Creation failed, inform anyone waiting. while (updatesPending.size() > 0) { RequestMonitor rm = updatesPending.poll(); - rm.setStatus(new Status(IStatus.ERROR, MIPlugin.PLUGIN_ID, INVALID_HANDLE, + rm.setStatus(new Status(IStatus.ERROR, MIPlugin.PLUGIN_ID, IDsfStatusConstants.INVALID_HANDLE, "Unable to create variable object", null)); //$NON-NLS-1$ rm.done(); } @@ -1057,7 +1055,7 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon // var-set-format command. This is done in the getValue() method fCommandControl.queueCommand( new MIVarUpdate(fControlDmc, getGdbName()), - new DataRequestMonitor(getExecutor(), rm) { + new DataRequestMonitor(fSession.getExecutor(), rm) { @Override protected void handleCompleted() { currentState = STATE_READY; @@ -1127,7 +1125,7 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon if (getGdbName() != null) { fCommandControl.queueCommand( new MIVarDelete(fControlDmc, getGdbName()), - new DataRequestMonitor(getExecutor(), null)); + new DataRequestMonitor(fSession.getExecutor(), null)); // Nothing to do in the requestMonitor, since the object was already // removed from our list before calling this method. @@ -1199,7 +1197,7 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon // from the StackService command cache after the first time. fStackService.getStackDepth( execCtx, 0, - new DataRequestMonitor(getExecutor(), rm) { + new DataRequestMonitor(fSession.getExecutor(), rm) { @Override protected void handleSuccess() { fFrameId = new Integer(getData() - frameCtx.getLevel()); @@ -1294,6 +1292,8 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon } } + private final DsfSession fSession; + /** Provides access to the GDB/MI back-end */ private final ICommandControl fCommandControl; // The stack service needs to be used to get information such @@ -1326,7 +1326,7 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon * The service tracker that can be used to find other services */ public MIVariableManager(DsfSession session, DsfServicesTracker tracker) { - super(session); + fSession = session; lruVariableList = new LRUVariableCache(); fCommandControl = tracker.getService(ICommandControl.class); fStackService = tracker.getService(IStack.class); @@ -1334,11 +1334,11 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon fControlDmc = ((AbstractMIControl)fCommandControl).getControlDMContext(); // Register to receive service events for this session. - getSession().addServiceEventListener(this, null); + fSession.addServiceEventListener(this, null); } - public void shutdown() { - getSession().removeServiceEventListener(this); + public void dispose() { + fSession.removeServiceEventListener(this); } /** @@ -1360,7 +1360,7 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon final VariableObjectId id = new VariableObjectId(); id.generateId( exprCtx, - new RequestMonitor(getExecutor(), rm) { + new RequestMonitor(fSession.getExecutor(), rm) { @Override protected void handleSuccess() { getVariable(id, exprCtx, rm); @@ -1381,7 +1381,7 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon // We have found a varObject, but it may not be updated yet. // Updating the object will also tell us if it is out-of-scope // and if we should re-create it. - varObj.update(new DataRequestMonitor(getExecutor(), rm) { + varObj.update(new DataRequestMonitor(fSession.getExecutor(), rm) { @Override protected void handleSuccess() { @@ -1441,7 +1441,7 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon // Note that this will replace any old entry with the same id. lruVariableList.put(id, newVarObj); - newVarObj.create(exprCtx, new RequestMonitor(getExecutor(), rm) { + newVarObj.create(exprCtx, new RequestMonitor(fSession.getExecutor(), rm) { @Override protected void handleCompleted() { if (isSuccess()) { @@ -1479,7 +1479,7 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon getVariable( ctx, - new DataRequestMonitor(getExecutor(), rm) { + new DataRequestMonitor(fSession.getExecutor(), rm) { @Override protected void handleSuccess() { getData().writeValue(expressionValue, formatId, rm); @@ -1502,7 +1502,7 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon getVariable( exprCtx, - new DataRequestMonitor(getExecutor(), drm) { + new DataRequestMonitor(fSession.getExecutor(), drm) { @Override protected void handleSuccess() { drm.setData( @@ -1521,11 +1521,11 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon getVariable( exprCtx, - new DataRequestMonitor(getExecutor(), drm) { + new DataRequestMonitor(fSession.getExecutor(), drm) { @Override protected void handleSuccess() { getData().getAttributes( - new DataRequestMonitor(getExecutor(), drm) { + new DataRequestMonitor(fSession.getExecutor(), drm) { @Override protected void handleSuccess() { drm.setData(new ExprMetaGetAttributesInfo(getData())); @@ -1544,12 +1544,12 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon getVariable( exprCtx, - new DataRequestMonitor(getExecutor(), drm) { + new DataRequestMonitor(fSession.getExecutor(), drm) { @Override protected void handleSuccess() { getData().getValue( valueCtx, - new DataRequestMonitor(getExecutor(), drm) { + new DataRequestMonitor(fSession.getExecutor(), drm) { @Override protected void handleSuccess() { drm.setData( @@ -1567,12 +1567,12 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon getVariable( exprCtx, - new DataRequestMonitor(getExecutor(), drm) { + new DataRequestMonitor(fSession.getExecutor(), drm) { @Override protected void handleSuccess() { getData().getChildren( exprCtx, - new DataRequestMonitor(getExecutor(), drm) { + new DataRequestMonitor(fSession.getExecutor(), drm) { @Override protected void handleSuccess() { drm.setData(new ExprMetaGetChildrenInfo(getData())); @@ -1589,11 +1589,11 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon getVariable( exprCtx, - new DataRequestMonitor(getExecutor(), drm) { + new DataRequestMonitor(fSession.getExecutor(), drm) { @Override protected void handleSuccess() { getData().getChildrenCount( - new DataRequestMonitor(getExecutor(), drm) { + new DataRequestMonitor(fSession.getExecutor(), drm) { @Override protected void handleSuccess() { drm.setData(new ExprMetaGetChildCountInfo(getData())); @@ -1650,11 +1650,6 @@ public class MIVariableManager extends AbstractDsfService implements ICommandCon } } - @Override - protected BundleContext getBundleContext() { - return MIPlugin.getBundleContext(); - } - private void markAllOutOfDate() { MIRootVariableObject root; while ((root = updatedRootList.poll()) != null) {