From caa4c1b3550c2c22918ece16c3b5d04ec404fe76 Mon Sep 17 00:00:00 2001 From: Pawel Piech Date: Fri, 23 Mar 2007 17:00:36 +0000 Subject: [PATCH] Generics warnings cleanup (bug 178689). --- .../dd/dsf/debug/ui/DsfDebugUIPlugin.java | 6 +- .../DebugViewSelectionRootLayoutNode.java | 7 +- .../launch/StackFramesLayoutNode.java | 3 +- .../launch/StandardLaunchRootLayoutNode.java | 5 +- .../launch/StandardProcessLayoutNode.java | 12 ++- .../META-INF/MANIFEST.MF | 3 +- .../eclipse/dd/dsf/debug/DsfDebugPlugin.java | 6 +- .../dd/dsf/debug/service/IModules.java | 2 + .../dsf/debug/service/command/ICommand.java | 36 +++++++++ .../service/command/ICommandControl.java | 80 +++++++++++++++++++ .../service/command/ICommandListener.java | 54 +++++++++++++ .../debug/service/command/ICommandResult.java | 27 +++++++ .../debug/service/command/IEventListener.java | 19 +++++ .../org/eclipse/dd/dsf/ui/DsfUIPlugin.java | 6 +- .../ui/concurrent/SWTDispatchDsfExecutor.java | 3 +- .../ui/viewmodel/AbstractVMLayoutNode.java | 16 ++-- .../dsf/ui/viewmodel/AbstractVMProvider.java | 16 ++-- .../viewmodel/AbstractVMRootLayoutNode.java | 5 +- .../eclipse/dd/dsf/ui/viewmodel/VMDelta.java | 9 ++- .../viewmodel/dm/AbstractDMVMLayoutNode.java | 14 +++- .../ui/viewmodel/dm/AbstractDMVMProvider.java | 1 + .../src/org/eclipse/dd/dsf/DsfPlugin.java | 6 +- .../dd/dsf/concurrent/DefaultDsfExecutor.java | 2 + .../org/eclipse/dd/dsf/concurrent/Done.java | 1 + .../dd/dsf/concurrent/DsfExecutable.java | 1 - .../eclipse/dd/dsf/concurrent/DsfQuery.java | 2 + .../dd/dsf/concurrent/DsfSequence.java | 5 +- .../dd/dsf/concurrent/GetDataDone.java | 1 + .../dd/dsf/concurrent/StackTraceWrapper.java | 1 + .../dd/dsf/datamodel/AbstractDMContext.java | 1 + .../dd/dsf/datamodel/ServiceDMContext.java | 1 + .../dd/dsf/service/DsfServicesTracker.java | 2 + .../eclipse/dd/dsf/service/DsfSession.java | 10 ++- 33 files changed, 318 insertions(+), 45 deletions(-) create mode 100644 plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/ICommand.java create mode 100644 plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/ICommandControl.java create mode 100644 plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/ICommandListener.java create mode 100644 plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/ICommandResult.java create mode 100644 plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/IEventListener.java diff --git a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/DsfDebugUIPlugin.java b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/DsfDebugUIPlugin.java index f38e404fc17..5f8d59f5f4f 100644 --- a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/DsfDebugUIPlugin.java +++ b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/DsfDebugUIPlugin.java @@ -25,7 +25,8 @@ public class DsfDebugUIPlugin extends AbstractUIPlugin { * (non-Javadoc) * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) */ - public void start(BundleContext context) throws Exception { + @Override + public void start(BundleContext context) throws Exception { super.start(context); plugin = this; } @@ -34,7 +35,8 @@ public class DsfDebugUIPlugin extends AbstractUIPlugin { * (non-Javadoc) * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) */ - public void stop(BundleContext context) throws Exception { + @Override + public void stop(BundleContext context) throws Exception { plugin = null; super.stop(context); } diff --git a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/DebugViewSelectionRootLayoutNode.java b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/DebugViewSelectionRootLayoutNode.java index a147deafe8f..73ba8d9e0e9 100644 --- a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/DebugViewSelectionRootLayoutNode.java +++ b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/DebugViewSelectionRootLayoutNode.java @@ -86,7 +86,7 @@ public class DebugViewSelectionRootLayoutNode extends AbstractVMRootLayoutNode boolean potentialMatchFound = false; boolean matchFound = false; - IDMContext eventDmc = ((IDMEvent)event).getDMContext(); + IDMContext eventDmc = ((IDMEvent)event).getDMContext(); for (IDMContext eventDmcAncestor : DMContexts.toList(eventDmc)) { IDMContext inputDmcAncestor = DMContexts.getAncestorOfType(inputDmc, eventDmcAncestor.getClass()); if (inputDmcAncestor != null) { @@ -129,7 +129,10 @@ public class DebugViewSelectionRootLayoutNode extends AbstractVMRootLayoutNode IStructuredSelection structSelection = (IStructuredSelection)selection; if (structSelection.getFirstElement() instanceof DMVMContext) { - return ((DMVMContext)structSelection.getFirstElement()).getDMC(); + // Correct cast: (AbstractDMVMLayoutNode.DMVMContext) breaks the javac compiler + @SuppressWarnings("unchecked") + DMVMContext vmc = (DMVMContext)structSelection.getFirstElement(); + return vmc.getDMC(); } } return null; diff --git a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/launch/StackFramesLayoutNode.java b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/launch/StackFramesLayoutNode.java index 0bd4d240637..348fc14ed89 100644 --- a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/launch/StackFramesLayoutNode.java +++ b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/launch/StackFramesLayoutNode.java @@ -190,6 +190,7 @@ public class StackFramesLayoutNode extends AbstractDMVMLayoutNode done) { /* * Create the root of the delta. Since the launch object is not at the @@ -121,7 +122,7 @@ public class StandardLaunchRootLayoutNode extends AbstractVMRootLayoutNode new Done() { public void run() { if (isDisposed()) return; - if (propagateError(getExecutor(), done, "Failed to create delta.")); //$NON-NLS-1$ + if (propagateError(getExecutor(), done, "Failed to create delta.")) return; //$NON-NLS-1$ done.setData(viewRootDelta); getExecutor().execute(done); } diff --git a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/launch/StandardProcessLayoutNode.java b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/launch/StandardProcessLayoutNode.java index 3bfbb2ebc3c..e65a4ba59c1 100644 --- a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/launch/StandardProcessLayoutNode.java +++ b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/ui/viewmodel/launch/StandardProcessLayoutNode.java @@ -51,14 +51,18 @@ public class StandardProcessLayoutNode extends AbstractVMLayoutNode { fProcess = process; } + @Override public IVMLayoutNode getLayoutNode() { return StandardProcessLayoutNode.this; } - @SuppressWarnings("unchecked") public Object getAdapter(Class adapter) { + @Override + @SuppressWarnings("unchecked") + public Object getAdapter(Class adapter) { Object vmcAdapter = super.getAdapter(adapter); if (vmcAdapter != null) { return vmcAdapter; } return fProcess.getAdapter(adapter); } + @Override public String toString() { return "IProcess " + fProcess.toString(); } //$NON-NLS-1$ public String getAttribute(String key) { return fProcess.getAttribute(key); } @@ -71,9 +75,11 @@ public class StandardProcessLayoutNode extends AbstractVMLayoutNode { public boolean isTerminated() { return fProcess.isTerminated(); } public void terminate() throws DebugException { fProcess.terminate(); } + @Override public boolean equals(Object other) { return other instanceof VMC && fProcess.equals(((VMC)other).fProcess); } + @Override public int hashCode() { return fProcess.hashCode(); } } @@ -132,7 +138,7 @@ public class StandardProcessLayoutNode extends AbstractVMLayoutNode { } // @see org.eclipse.dd.dsf.ui.viewmodel.IViewModelLayoutNode#retrieveLabel(org.eclipse.dd.dsf.ui.viewmodel.IVMContext, org.eclipse.debug.internal.ui.viewers.provisional.ILabelRequestMonitor) - public void updateLabel(IVMContext vmc, ILabelRequestMonitor result, String[] columns) { + public void updateLabel(@SuppressWarnings("unused")IVMContext vmc, ILabelRequestMonitor result, @SuppressWarnings("unused") String[] columns) { /* * The implementation of IAdapterFactory that uses this node should not @@ -198,7 +204,7 @@ public class StandardProcessLayoutNode extends AbstractVMLayoutNode { parent.addNode(new VMC((IProcess)event.getSource()), IModelDelta.STATE); } - protected void handleCreate(DebugEvent event, VMDelta parent) { + protected void handleCreate(@SuppressWarnings("unused") DebugEvent event, @SuppressWarnings("unused") VMDelta parent) { // do nothing - Launch change notification handles this } diff --git a/plugins/org.eclipse.dd.dsf.debug/META-INF/MANIFEST.MF b/plugins/org.eclipse.dd.dsf.debug/META-INF/MANIFEST.MF index 8b4e3330424..b94b7631e23 100644 --- a/plugins/org.eclipse.dd.dsf.debug/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.dd.dsf.debug/META-INF/MANIFEST.MF @@ -10,5 +10,6 @@ Require-Bundle: org.eclipse.core.runtime, org.eclipse.debug.core, org.eclipse.dd.dsf Eclipse-LazyStart: true -Export-Package: org.eclipse.dd.dsf.debug.service +Export-Package: org.eclipse.dd.dsf.debug.service, + org.eclipse.dd.dsf.debug.service.command Bundle-RequiredExecutionEnvironment: J2SE-1.5 diff --git a/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/DsfDebugPlugin.java b/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/DsfDebugPlugin.java index a0b8f8b600b..7a8cbd969f3 100644 --- a/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/DsfDebugPlugin.java +++ b/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/DsfDebugPlugin.java @@ -42,7 +42,8 @@ public class DsfDebugPlugin extends Plugin { * (non-Javadoc) * @see org.eclipse.core.runtime.Plugins#start(org.osgi.framework.BundleContext) */ - public void start(BundleContext context) throws Exception { + @Override + public void start(BundleContext context) throws Exception { fgBundleContext = context; super.start(context); DEBUG = "true".equals(Platform.getDebugOption("org.eclipse.dd.dsf.debug.debug.service/debug")); //$NON-NLS-1$//$NON-NLS-2$ @@ -52,7 +53,8 @@ public class DsfDebugPlugin extends Plugin { * (non-Javadoc) * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext) */ - public void stop(BundleContext context) throws Exception { + @Override + public void stop(BundleContext context) throws Exception { fgPlugin = null; fgBundleContext = null; super.stop(context); diff --git a/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/IModules.java b/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/IModules.java index 0c96960a1ec..dd12e4e7914 100644 --- a/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/IModules.java +++ b/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/IModules.java @@ -75,10 +75,12 @@ public interface IModules extends IDMService { this.fOffset = offset; } + @Override public int hashCode() { return fModule.hashCode() + fSection.hashCode() + fOffset.intValue(); } + @Override public boolean equals(Object o) { if (!(o instanceof ModuleSectionOffset)) return false; ModuleSectionOffset mso = (ModuleSectionOffset)o; diff --git a/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/ICommand.java b/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/ICommand.java new file mode 100644 index 00000000000..0b67c7cc1b3 --- /dev/null +++ b/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/ICommand.java @@ -0,0 +1,36 @@ +/******************************************************************************* + * Copyright (c) 2007 Wind River Systems and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ + +package org.eclipse.dd.dsf.debug.service.command; + + +/** + * Command interface for creating and manipulating GDB/MI commands + * for the DSF GDB reference implemenation. The command represents + * the GDB/MI request which will be put on the wire to the GDB + * backend. + */ + +public interface ICommand { + /** + * Takes the supplied command and coalesces it with this one. + * The result is a new third command which represent the two + * original commands. + *
Note: the result type associated with the resurned command may be + * different than the result type associated with either of the commands + * being coalesced. + * + * @return newly created command, or null if command cannot be coalesced + */ + public ICommand coalesceWith( ICommand command ); +} + + 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 new file mode 100644 index 00000000000..e58f40b77be --- /dev/null +++ b/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/ICommandControl.java @@ -0,0 +1,80 @@ +/******************************************************************************* + * Copyright (c) 2006 Wind River Systems and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.dd.dsf.debug.service.command; + +import org.eclipse.dd.dsf.concurrent.GetDataDone; +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{ + + /** + * Adds the specified command to the queue of commands to be processed. + * + * @param command Specific command to be processed + * @param done Completion notification handler + * @return None + */ + void queueCommand(ICommand command, GetDataDone done); + + /** + * Removes the specified command from the processor queue. + * + * @param command Specific command to be removed + * @return None + */ + void removeCommand(ICommand command); + + /** + * Attempts to cancel and already sent command. Some versions + * of GDB/MI implement control commands which allow this. The + * GDB/MI standard does not currently allow for this. + * + * @param command Specific command to be removed + * @return None + */ + void cancelCommand(ICommand command); + + /** + * Adds a notification handler for the Command processor. + * + * @param command listener to be added + * @return None + */ + void addCommandListener(ICommandListener listener); + + /** + * Removes a notification handler for the Command processor. + * + * @param command listener to be removed + * @return None + */ + void removeCommandListener(ICommandListener listener); + + /** + * Adds a notification handler for the Event processor. + * + * @param event listener to be added + * @return None + */ + void addEventListener(IEventListener listener); + + /** + * Removes a notification handler for the Event processor. + * + * @param event listener to be removed + * @return None + */ + void removeEventListener(IEventListener listener); +} diff --git a/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/ICommandListener.java b/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/ICommandListener.java new file mode 100644 index 00000000000..5a2f8e813a6 --- /dev/null +++ b/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/ICommandListener.java @@ -0,0 +1,54 @@ +package org.eclipse.dd.dsf.debug.service.command; + +import org.eclipse.dd.dsf.concurrent.ConfinedToDsfExecutor; + +/** + * Synchronous listener to commands being sent and received. + * All the registered listeners will be called in the same + * dispatch cycle as when the result of the command is submitted. + */ + +@ConfinedToDsfExecutor("") +public interface ICommandListener { + /** + * Notifies that the specified command has been added to the Command Queue. + * It has not yet been sent. In this state the command can be examined and + * possibly withdrawn because it has been coalesced with another command. + * + * @return None + * @param command Command which has been added to the Queue + */ + public void commandQueued(ICommand command); + + /** + * Notification that the given command was sent to the debugger. At this + * point the command is no longer in the Command Queue and should not be + * examined. The only thing which can be done is to try and cancel the + * command. + * + * @return None + * @param command + */ + public void commandSent(ICommand command); + + /** + * Notifies that the specified command has been removed from the + * Command Queue. This notification means that the command has + * been removed from the queue and not sent to the backend. The + * user has specifically removed it, perhaps because it has been + * combined with another. Or some state change has occured and + * there is no longer a need to get this particular set of data. + * + * @return None + * @param Command which has been sent to the backend + */ + public void commandRemoved(ICommand command); + + /** + * Notifies that the specified command has been completed. + * + * @return None + * @param Command which has been sent to the backend + */ + public void commandDone(ICommand command, ICommandResult result); +} diff --git a/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/ICommandResult.java b/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/ICommandResult.java new file mode 100644 index 00000000000..1504485d4e3 --- /dev/null +++ b/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/ICommandResult.java @@ -0,0 +1,27 @@ +/******************************************************************************* + * Copyright (c) 2007 Wind River Systems and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ + +package org.eclipse.dd.dsf.debug.service.command; + +public interface ICommandResult { + /** + * Returns an ICommandResult which is a subset command result. The command + * result which is being passed in is from a coalesced command. The result + * which is desired is contained within those results. In this instance we + * are processing the command result from the coalesced command to get our + * command result. + * Note: The type of returned command result must match the type + * associated with the subset command that is passed in the argument. + * + * @return result for this particular command. + */ + public V getSubsetResult( ICommand command ); +} diff --git a/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/IEventListener.java b/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/IEventListener.java new file mode 100644 index 00000000000..f98ccd72539 --- /dev/null +++ b/plugins/org.eclipse.dd.dsf.debug/src/org/eclipse/dd/dsf/debug/service/command/IEventListener.java @@ -0,0 +1,19 @@ +package org.eclipse.dd.dsf.debug.service.command; + +import org.eclipse.dd.dsf.concurrent.ConfinedToDsfExecutor; + +/** + * Synchronous listener for events issued from the debugger. All + * registered listeners will be called in the same dispatch cycle. + */ + +@ConfinedToDsfExecutor("") +public interface IEventListener { + /** + * Notifies that the given asynchronous output was received from the + * debugger. + * @param output output that was received from the debugger. Format + * of the output data is debugger specific. + */ + public void eventReceived(Object output); +} diff --git a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/DsfUIPlugin.java b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/DsfUIPlugin.java index 164a2f69e1f..bea8083dc93 100644 --- a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/DsfUIPlugin.java +++ b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/DsfUIPlugin.java @@ -37,7 +37,8 @@ public class DsfUIPlugin extends AbstractUIPlugin { * (non-Javadoc) * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) */ - public void start(BundleContext context) throws Exception { + @Override + public void start(BundleContext context) throws Exception { fgBundleContext = context; super.start(context); } @@ -46,7 +47,8 @@ public class DsfUIPlugin extends AbstractUIPlugin { * (non-Javadoc) * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) */ - public void stop(BundleContext context) throws Exception { + @Override + public void stop(BundleContext context) throws Exception { fgPlugin = null; fgBundleContext = null; super.stop(context); diff --git a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/concurrent/SWTDispatchDsfExecutor.java b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/concurrent/SWTDispatchDsfExecutor.java index 71e22929638..3f1e61ec5c6 100644 --- a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/concurrent/SWTDispatchDsfExecutor.java +++ b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/concurrent/SWTDispatchDsfExecutor.java @@ -31,7 +31,8 @@ public class SWTDispatchDsfExecutor extends DefaultDsfExecutor { return new Callable() { - public V call() throws Exception + @SuppressWarnings("unchecked") + public V call() throws Exception { final Object[] v = new Object[1]; final Throwable[] e = new Throwable[1]; diff --git a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/AbstractVMLayoutNode.java b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/AbstractVMLayoutNode.java index 2e975953274..fd908ca8bf4 100644 --- a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/AbstractVMLayoutNode.java +++ b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/AbstractVMLayoutNode.java @@ -412,32 +412,32 @@ abstract public class AbstractVMLayoutNode implements IVMLayoutNode { } protected class ElementsCountUpdate extends ViewerUpdate implements IChildrenCountUpdate { - private final GetDataDone fDone; + private final GetDataDone fElementCountDone; public ElementsCountUpdate(GetDataDone done, IModelDelta delta) { super(done, delta); - fDone = done; + fElementCountDone = done; } public void setChildCount(int numChildren) { - fDone.setData(numChildren); + fElementCountDone.setData(numChildren); } } protected class ElementsUpdate extends ViewerUpdate implements IChildrenUpdate { private final List fChildren = new ArrayList(); - private GetDataDone> fDone; + private GetDataDone> fElementUpdateDone; public ElementsUpdate(GetDataDone> done, IModelDelta delta) { super(done, delta); - fDone = done; - fDone.setData(fChildren); + fElementUpdateDone = done; + fElementUpdateDone.setData(fChildren); } public ElementsUpdate(GetDataDone> done, TreePath path) { super(done, path); - fDone = done; - fDone.setData(fChildren); + fElementUpdateDone = done; + fElementUpdateDone.setData(fChildren); } public int getOffset() { diff --git a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/AbstractVMProvider.java b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/AbstractVMProvider.java index 130ce67293a..7a27627ef2d 100644 --- a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/AbstractVMProvider.java +++ b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/AbstractVMProvider.java @@ -543,11 +543,11 @@ abstract public class AbstractVMProvider implements IVMProvider class HasElementsUpdate extends ViewerUpdate implements IHasChildrenUpdate { - final private GetDataDone fDone; + final private GetDataDone fHasElemsDone; HasElementsUpdate(IHasChildrenUpdate clientUpdate, GetDataDone done) { super(clientUpdate, done); - fDone = done; + fHasElemsDone = done; } @Override @@ -556,24 +556,24 @@ abstract public class AbstractVMProvider implements IVMProvider } public void setHasChilren(boolean hasChildren) { - fDone.setData(hasChildren); + fHasElemsDone.setData(hasChildren); } @Override public void done() { - assert fDone.getData() != null || !fDone.getStatus().isOK(); + assert fHasElemsDone.getData() != null || !fHasElemsDone.getStatus().isOK(); super.done(); } } class ElementsCountUpdate extends ViewerUpdate implements IChildrenCountUpdate { - final private GetDataDone fDone; + final private GetDataDone fCountDone; final private TreePath fElementPath; ElementsCountUpdate(IViewerUpdate clientUpdate, GetDataDone done, TreePath elementPath) { super(clientUpdate, done); fElementPath = elementPath; - fDone = done; + fCountDone = done; } @Override @@ -582,12 +582,12 @@ abstract public class AbstractVMProvider implements IVMProvider } public void setChildCount(int count) { - fDone.setData(count); + fCountDone.setData(count); } @Override public void done() { - assert fDone.getData() != null || !fDone.getStatus().isOK(); + assert fCountDone.getData() != null || !fCountDone.getStatus().isOK(); super.done(); } diff --git a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/AbstractVMRootLayoutNode.java b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/AbstractVMRootLayoutNode.java index 8bd73da70ed..253d8c0bfb7 100644 --- a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/AbstractVMRootLayoutNode.java +++ b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/AbstractVMRootLayoutNode.java @@ -68,7 +68,8 @@ abstract public class AbstractVMRootLayoutNode extends AbstractVMLayoutNode impl * There is no use case for a root node implementing this method, but its * easier to just impelemnt it for sake of uniformity of model. */ - public void updateLabel(IVMContext vmc, ILabelUpdate update) { + public void updateLabel(@SuppressWarnings("unused") + IVMContext vmc, ILabelUpdate update) { update.done(); } @@ -88,7 +89,7 @@ abstract public class AbstractVMRootLayoutNode extends AbstractVMLayoutNode impl new Done() { public void run() { if (isDisposed()) return; - if (propagateError(getExecutor(), done, "Failed to create delta.")); //$NON-NLS-1$ + if (propagateError(getExecutor(), done, "Failed to create delta.")) return; //$NON-NLS-1$ done.setData(rootDelta); getExecutor().execute(done); } diff --git a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/VMDelta.java b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/VMDelta.java index 906c71e9502..800d163a303 100644 --- a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/VMDelta.java +++ b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/VMDelta.java @@ -127,7 +127,8 @@ public class VMDelta extends ModelDelta { * @param flags change flags for child * @return newly created child delta */ - public VMDelta addNode(Object element, int flags) { + @Override + public VMDelta addNode(Object element, int flags) { VMDelta node = new VMDelta(element, flags); node.setParent(this); addDelta(node); @@ -144,6 +145,7 @@ public class VMDelta extends ModelDelta { * @param flags change flags * @return newly created child delta */ + @Override public VMDelta addNode(Object element, Object replacement, int flags) { VMDelta node = new VMDelta(element, replacement, flags); node.setParent(this); @@ -160,6 +162,7 @@ public class VMDelta extends ModelDelta { * @param flags change flags * @return newly created child delta */ + @Override public VMDelta addNode(Object element, int index, int flags) { VMDelta node = new VMDelta(element, index, flags); node.setParent(this); @@ -177,6 +180,7 @@ public class VMDelta extends ModelDelta { * @param numChildren the number of children the element has * @return newly created child delta */ + @Override public VMDelta addNode(Object element, int index, int flags, int numChildren) { VMDelta node = new VMDelta(element, index, flags, numChildren); node.setParent(this); @@ -300,6 +304,7 @@ public class VMDelta extends ModelDelta { /* (non-Javadoc) * @see org.eclipse.debug.internal.ui.viewers.provisional.IModelDelta#getChildCount() */ + @Override public int getChildCount() { return fChildCount; } @@ -307,10 +312,12 @@ public class VMDelta extends ModelDelta { /* (non-Javadoc) * @see org.eclipse.debug.internal.ui.viewers.provisional.IModelDelta#accept(org.eclipse.debug.internal.ui.viewers.provisional.IModelDeltaVisitor) */ + @Override public void accept(IModelDeltaVisitor visitor) { doAccept(visitor, 0); } + @Override protected void doAccept(IModelDeltaVisitor visitor, int depth) { if (visitor.visit(this, depth)) { ModelDelta[] childDeltas = getChildDeltas(); diff --git a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/dm/AbstractDMVMLayoutNode.java b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/dm/AbstractDMVMLayoutNode.java index 5b35febce0e..7857722c66b 100644 --- a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/dm/AbstractDMVMLayoutNode.java +++ b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/dm/AbstractDMVMLayoutNode.java @@ -79,6 +79,7 @@ abstract public class AbstractDMVMLayoutNode extends Abstract * The IAdaptable implementation. If the adapter is the DM context, * return the context, otherwise delegate to IDMContext.getAdapter(). */ + @Override @SuppressWarnings("unchecked") public Object getAdapter(Class adapter) { Object superAdapter = super.getAdapter(adapter); @@ -91,6 +92,7 @@ abstract public class AbstractDMVMLayoutNode extends Abstract } } + @Override public boolean equals(Object other) { if (!(other instanceof AbstractDMVMLayoutNode.DMVMContext)) return false; DMVMContext otherVmc = (DMVMContext)other; @@ -98,10 +100,12 @@ abstract public class AbstractDMVMLayoutNode extends Abstract fDmc.equals(otherVmc.fDmc); } + @Override public int hashCode() { return AbstractDMVMLayoutNode.this.hashCode() + fDmc.hashCode(); } + @Override public String toString() { return fDmc.toString(); } @@ -134,6 +138,7 @@ abstract public class AbstractDMVMLayoutNode extends Abstract } + @Override public void dispose() { fServicesTracker.dispose(); super.dispose(); @@ -339,7 +344,8 @@ abstract public class AbstractDMVMLayoutNode extends Abstract * @see IElementLabelProvider * @see IColumnPresentationFactoryAdapter */ - protected void fillColumnLabel(IDMContext dmContext, V dmData, String columnId, int idx, ILabelUpdate update) { + protected void fillColumnLabel(@SuppressWarnings("unused") IDMContext dmContext, @SuppressWarnings("unused") V dmData, + @SuppressWarnings("unused") String columnId, int idx, ILabelUpdate update) { update.setLabel("", idx); //$NON-NLS-1$ } @@ -347,12 +353,12 @@ abstract public class AbstractDMVMLayoutNode extends Abstract public int getDeltaFlags(Object e) { int flags = 0; if (e instanceof IDMEvent) { - flags = getNodeDeltaFlagsForDMEvent((IDMEvent)e); + flags = getNodeDeltaFlagsForDMEvent((IDMEvent)e); } return flags | super.getDeltaFlags(e); } - protected int getNodeDeltaFlagsForDMEvent(IDMEvent e) { + protected int getNodeDeltaFlagsForDMEvent(@SuppressWarnings("unused") IDMEvent e) { return IModelDelta.NO_CHANGE; } @@ -364,7 +370,7 @@ abstract public class AbstractDMVMLayoutNode extends Abstract if (DsfSession.isSessionActive(getSession().getId())) { getSession().getExecutor().execute(new DsfRunnable() { public void run() { - buildDeltaForDMEvent((IDMEvent)e, parentDelta, nodeOffset, done); + buildDeltaForDMEvent((IDMEvent)e, parentDelta, nodeOffset, done); } }); } else { diff --git a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/dm/AbstractDMVMProvider.java b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/dm/AbstractDMVMProvider.java index 788b370ea09..9cb1d99330b 100644 --- a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/dm/AbstractDMVMProvider.java +++ b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/dm/AbstractDMVMProvider.java @@ -80,6 +80,7 @@ abstract public class AbstractDMVMProvider extends AbstractVMProvider } /** Called to dispose the provider. */ + @Override public void dispose() { try { getSession().getExecutor().execute(new Runnable() { diff --git a/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/DsfPlugin.java b/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/DsfPlugin.java index 6a1fb6e93ab..b0823212fc7 100644 --- a/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/DsfPlugin.java +++ b/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/DsfPlugin.java @@ -42,7 +42,8 @@ public class DsfPlugin extends Plugin { * (non-Javadoc) * @see org.eclipse.core.runtime.Plugins#start(org.osgi.framework.BundleContext) */ - public void start(BundleContext context) throws Exception { + @Override + public void start(BundleContext context) throws Exception { fgBundleContext = context; super.start(context); DEBUG = "true".equals(Platform.getDebugOption("org.eclipse.dd.dsf/debug")); //$NON-NLS-1$//$NON-NLS-2$ @@ -52,7 +53,8 @@ public class DsfPlugin extends Plugin { * (non-Javadoc) * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext) */ - public void stop(BundleContext context) throws Exception { + @Override + public void stop(BundleContext context) throws Exception { fgBundleContext = null; super.stop(context); } diff --git a/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/DefaultDsfExecutor.java b/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/DefaultDsfExecutor.java index 0306ca368a3..a6e47251fd7 100644 --- a/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/DefaultDsfExecutor.java +++ b/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/DefaultDsfExecutor.java @@ -208,6 +208,7 @@ public class DefaultDsfExecutor extends ScheduledThreadPoolExecutor } } + @Override protected Object getExecutable() { return fRunnable; } public void run() { @@ -234,6 +235,7 @@ public class DefaultDsfExecutor extends ScheduledThreadPoolExecutor fCallable = callable; } + @Override protected Object getExecutable() { return fCallable; } public T call() throws Exception { diff --git a/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/Done.java b/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/Done.java index 4c07703eeb4..04ef3bf344a 100644 --- a/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/Done.java +++ b/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/Done.java @@ -67,6 +67,7 @@ abstract public class Done extends DsfRunnable { return false; } + @Override public String toString() { return "Done: " + getStatus().toString(); //$NON-NLS-1$ } diff --git a/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/DsfExecutable.java b/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/DsfExecutable.java index 7620478eca9..24f20df4522 100644 --- a/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/DsfExecutable.java +++ b/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/DsfExecutable.java @@ -43,7 +43,6 @@ public class DsfExecutable { assert ASSERTIONS_ENABLED = true; DEBUG_EXECUTOR = DsfPlugin.DEBUG && "true".equals( //$NON-NLS-1$ Platform.getDebugOption("org.eclipse.dd.dsf/debug/executor")); //$NON-NLS-1$ - assert ASSERTIONS_ENABLED = true; } /** diff --git a/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/DsfQuery.java b/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/DsfQuery.java index 014818b5566..01b402ed93e 100644 --- a/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/DsfQuery.java +++ b/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/DsfQuery.java @@ -101,10 +101,12 @@ abstract public class DsfQuery extends DsfRunnable return (state & (STATE_DONE | STATE_CANCELLED)) != 0; } + @Override protected int tryAcquireShared(int ignore) { return doIsDone()? 1 : -1; } + @Override protected boolean tryReleaseShared(int ignore) { return true; } diff --git a/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/DsfSequence.java b/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/DsfSequence.java index e2ba546b311..2b7fda408c0 100644 --- a/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/DsfSequence.java +++ b/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/DsfSequence.java @@ -284,6 +284,7 @@ abstract public class DsfSequence extends DsfRunnable implements Future abortExecution(getStatus()); } } + @Override public String toString() { return "DsfSequence \"" + fTaskName + "\", result for executing step #" + fStepIdx + " = " + getStatus(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } @@ -335,7 +336,7 @@ abstract public class DsfSequence extends DsfRunnable implements Future } else { abortRollBack(getStatus()); } - }; + } @Override public String toString() { return "DsfSequence \"" + fTaskName + "\", result for rolling back step #" + fStepIdx + " = " + getStatus(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ @@ -450,10 +451,12 @@ abstract public class DsfSequence extends DsfRunnable implements Future return (state & (STATE_FINISHED | STATE_CANCELLED | STATE_ABORTED)) != 0; } + @Override protected int tryAcquireShared(int ignore) { return doIsDone()? 1 : -1; } + @Override protected boolean tryReleaseShared(int ignore) { return true; } diff --git a/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/GetDataDone.java b/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/GetDataDone.java index c1e9af9ce8a..bbedc24667e 100644 --- a/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/GetDataDone.java +++ b/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/GetDataDone.java @@ -31,6 +31,7 @@ public abstract class GetDataDone extends Done { */ public V getData() { return fData; } + @Override public String toString() { if (getData() != null) { return getData().toString(); diff --git a/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/StackTraceWrapper.java b/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/StackTraceWrapper.java index aa0e71f4498..c8ff2428661 100644 --- a/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/StackTraceWrapper.java +++ b/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/StackTraceWrapper.java @@ -20,6 +20,7 @@ class StackTraceWrapper { StackTraceWrapper(StackTraceElement[] elements) { fStackTraceElements = elements; } + @Override public String toString() { StringBuilder builder = new StringBuilder(fStackTraceElements.length * 30); for (int i = 0; i < fStackTraceElements.length && i < 10; i++) { diff --git a/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/datamodel/AbstractDMContext.java b/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/datamodel/AbstractDMContext.java index 778295eea21..87656319219 100644 --- a/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/datamodel/AbstractDMContext.java +++ b/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/datamodel/AbstractDMContext.java @@ -103,6 +103,7 @@ abstract public class AbstractDMContext extends PlatformObjec * session is equally important. * @see org.eclipse.runtime.IAdapterManager */ + @Override @SuppressWarnings("unchecked") public Object getAdapter(Class adapterType) { Object retVal = null; diff --git a/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/datamodel/ServiceDMContext.java b/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/datamodel/ServiceDMContext.java index 481abf680f9..f8219488a31 100644 --- a/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/datamodel/ServiceDMContext.java +++ b/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/datamodel/ServiceDMContext.java @@ -26,6 +26,7 @@ public class ServiceDMContext extends AbstractDMContext fServiceDMID = serviceDMID; } + @Override public String toString() { return baseToString() + fServiceDMID; } } 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 91e204b86fa..ab794d24d5f 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 @@ -55,6 +55,7 @@ public class DsfServicesTracker { fFilter = filter; } + @Override public boolean equals(Object other) { // I guess this doesn't have to assume fFilter can be null, but oh well. return other instanceof ServiceKey && @@ -64,6 +65,7 @@ public class DsfServicesTracker { (fFilter != null && fFilter.equals(((ServiceKey)other).fFilter))); } + @Override public int hashCode() { return (fClassName == null ? 0 : fClassName.hashCode()) + (fFilter == null ? 0 : fFilter.hashCode()); } diff --git a/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/service/DsfSession.java b/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/service/DsfSession.java index 393f7246fe1..243a012597a 100644 --- a/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/service/DsfSession.java +++ b/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/service/DsfSession.java @@ -195,10 +195,12 @@ public class DsfSession fFilter = filter; } + @Override public boolean equals(Object other) { return other instanceof ListenerEntry && fListener.equals(((ListenerEntry)other).fListener); } + @Override public int hashCode() { return fListener.hashCode(); } } @@ -278,6 +280,7 @@ public class DsfSession public void dispatchEvent(final Object event, final Dictionary serviceProperties) { getExecutor().submit(new DsfRunnable() { public void run() { doDispatchEvent(event, serviceProperties);} + @Override public String toString() { return "Event: " + event + ", from service " + serviceProperties; } //$NON-NLS-1$ //$NON-NLS-2$ }); } @@ -317,11 +320,13 @@ public class DsfSession return fAdapters.get(adapterType); } + @Override @ThreadSafe public boolean equals(Object other) { return other instanceof DsfSession && fId.equals(((DsfSession)other).fId); } + @Override @ThreadSafe public int hashCode() { return fId.hashCode(); } @@ -340,11 +345,12 @@ public class DsfSession return ((IDsfService)o1.fListener).getStartupNumber() - ((IDsfService)o2.fListener).getStartupNumber(); } return 1; - }; + } + @Override public boolean equals(Object obj) { return obj == this; - }; + } }); // Build a list of listeners and methods that are registered for this event class.