diff options
author | Marc Khouzam | 2012-05-11 15:03:16 +0000 |
---|---|---|
committer | Marc Khouzam | 2012-05-11 15:07:53 +0000 |
commit | 39c85abc38fadfde1c26eed825ff47b2c3e85aa3 (patch) | |
tree | 793cda76b651c99f5c0a208a975d44e3a333f90e /dsf-gdb | |
parent | ece0987caf6954df7243a8e715ed0df4ee36fd21 (diff) | |
download | org.eclipse.cdt-39c85abc38fadfde1c26eed825ff47b2c3e85aa3.tar.gz org.eclipse.cdt-39c85abc38fadfde1c26eed825ff47b2c3e85aa3.tar.xz org.eclipse.cdt-39c85abc38fadfde1c26eed825ff47b2c3e85aa3.zip |
Bug 379225: Address FindBugs issues for DSF-GDB
Change-Id: I56b03d7eeae586d66788bd29bc54416c78479add
Reviewed-on: https://git.eclipse.org/r/5947
Reviewed-by: Marc Khouzam <marc.khouzam@ericsson.com>
IP-Clean: Marc Khouzam <marc.khouzam@ericsson.com>
Tested-by: Marc Khouzam <marc.khouzam@ericsson.com>
Diffstat (limited to 'dsf-gdb')
11 files changed, 33 insertions, 21 deletions
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/ui/MulticoreVisualizerUIPlugin.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/ui/MulticoreVisualizerUIPlugin.java index f780d4e4051..f489092e2ce 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/ui/MulticoreVisualizerUIPlugin.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/ui/MulticoreVisualizerUIPlugin.java @@ -236,8 +236,12 @@ public class MulticoreVisualizerUIPlugin extends AbstractUIPlugin /** Returns resource manager for this plugin */ public UIResourceManager getPluginResources() { if (s_resources == null) { - s_resources = new UIResourceManager(this); - s_resources.setParentManager(CDTVisualizerUIPlugin.getResources()); + // FindBugs reported that it is unsafe to set s_resources + // before we finish to initialize the object, because of + // multi-threading. This is why we use a temporary variable. + UIResourceManager resourceManager = new UIResourceManager(this); + resourceManager.setParentManager(CDTVisualizerUIPlugin.getResources()); + s_resources = resourceManager; } return s_resources; @@ -245,7 +249,7 @@ public class MulticoreVisualizerUIPlugin extends AbstractUIPlugin /** Releases resource manager for this plugin. */ public void cleanupPluginResources() { - s_resources.dispose(); + if (s_resources != null) s_resources.dispose(); } /** Convenience method for getting plugin resource manager */ diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/ui/model/VisualizerThread.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/ui/model/VisualizerThread.java index 9c19d57bc5b..18a8586704a 100755 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/ui/model/VisualizerThread.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/ui/model/VisualizerThread.java @@ -69,6 +69,11 @@ public class VisualizerThread return result; } + @Override + public int hashCode() { + return m_pid ^ m_tid ^ m_gdbtid; + } + /** Returns string representation. */ @Override public String toString() { diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/GdbPinProvider.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/GdbPinProvider.java index bec41e415cb..c7cc9a11f1b 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/GdbPinProvider.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/GdbPinProvider.java @@ -215,9 +215,9 @@ public class GdbPinProvider implements IPinProvider { IDMContext dmc = null; if (debugContext instanceof IAdaptable) { dmc = (IDMContext) ((IAdaptable) debugContext).getAdapter(IDMContext.class); - sessionId = dmc.getSessionId() + "."; //$NON-NLS-1$ if (dmc != null) { + sessionId = dmc.getSessionId() + "."; //$NON-NLS-1$ IMIExecutionDMContext execDmc = getExecutionDmc(dmc); IProcessDMContext processDmc = getProcessDmc(dmc); diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/service/command/output/MIMetaGetCPUInfoInfo.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/service/command/output/MIMetaGetCPUInfoInfo.java index 49a301d12b4..bb74aa6e347 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/service/command/output/MIMetaGetCPUInfoInfo.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/internal/service/command/output/MIMetaGetCPUInfoInfo.java @@ -10,15 +10,16 @@ *******************************************************************************/ package org.eclipse.cdt.dsf.gdb.internal.service.command.output; +import java.util.Arrays; + import org.eclipse.cdt.dsf.debug.service.command.ICommand; import org.eclipse.cdt.dsf.debug.service.command.ICommandResult; import org.eclipse.cdt.internal.core.ICoreInfo; /** - * Result obtined from MIMetaGetCPUInfo. + * Result obtained from MIMetaGetCPUInfo. * @since 4.1 */ -@SuppressWarnings("restriction") public class MIMetaGetCPUInfoInfo implements ICommandResult { private final ICoreInfo[] fCoresInfo; @@ -36,6 +37,6 @@ public class MIMetaGetCPUInfoInfo implements ICommandResult { @Override public String toString() { - return getClass().getSimpleName() + " (" + getInfo() + ")"; //$NON-NLS-1$ //$NON-NLS-2$ + return getClass().getSimpleName() + " (" + Arrays.toString(getInfo()) + ")"; //$NON-NLS-1$ //$NON-NLS-2$ } }
\ No newline at end of file diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBHardwareAndOS.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBHardwareAndOS.java index fb848126623..5a803476829 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBHardwareAndOS.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBHardwareAndOS.java @@ -65,7 +65,6 @@ import org.osgi.framework.BundleContext; * * @since 4.1 */ -@SuppressWarnings("restriction") public class GDBHardwareAndOS extends AbstractDsfService implements IGDBHardwareAndOS, ICachingService { @Immutable diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpoints.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpoints.java index 345b35b49dd..b24cd9468f1 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpoints.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpoints.java @@ -256,7 +256,7 @@ public class MIBreakpoints extends AbstractDsfService implements IBreakpoints, I */ @Override public boolean equals(Object obj) { - return baseEquals(obj) && (fReference == ((MIBreakpointDMContext) obj).fReference); + return baseEquals(obj) && (fReference.equals(((MIBreakpointDMContext)obj).fReference)); } /* (non-Javadoc) diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIExpressions.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIExpressions.java index 3b54e9d6bcf..048acab5e90 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIExpressions.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIExpressions.java @@ -399,7 +399,7 @@ public class MIExpressions extends AbstractDsfService implements IMIExpressions, @Override public boolean equals(Object other) { return super.baseEquals(other) && - expression == null ? ((InvalidContextExpressionDMC) other).getExpression() == null : expression.equals(((InvalidContextExpressionDMC) other).getExpression()); + (expression == null ? ((InvalidContextExpressionDMC) other).getExpression() == null : expression.equals(((InvalidContextExpressionDMC) other).getExpression())); } @Override diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/AbstractMIControl.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/AbstractMIControl.java index 6277fbb97ad..a3711fe2ff0 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/AbstractMIControl.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/AbstractMIControl.java @@ -20,6 +20,7 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.LinkedList; @@ -814,7 +815,7 @@ public abstract class AbstractMIControl extends AbstractDsfService } catch(IllegalArgumentException e2) { // Message format string invalid. Fallback to just appending the strings. clientMsg.append(message); - clientMsg.append(parameters); + clientMsg.append(Arrays.toString(parameters)); } } else { clientMsg.append(message); @@ -865,7 +866,7 @@ public abstract class AbstractMIControl extends AbstractDsfService } catch(IllegalArgumentException e2) { // Message format string invalid. Fallback to just appending the strings. clientMsg.append(message); - clientMsg.append(parameters); + clientMsg.append(Arrays.toString(parameters)); } } else { clientMsg.append(message); diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/CLITraceDumpInfo.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/CLITraceDumpInfo.java index 1f74e8f869e..704cb15c65c 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/CLITraceDumpInfo.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/CLITraceDumpInfo.java @@ -36,12 +36,7 @@ public class CLITraceDumpInfo extends MIInfo { // tdump parsed info private String fTracepointNum = null; private String fTraceFrameNumber = null; - /* - * Timestamp, if present in tracepoint frame data - * Note: not yet available in printout of command - * "tdump" -> revisit when it is. - */ - private String timestamp = null; + // keep the tdump header in parsed result or not - by default we keep private static final boolean KEEP_HEADER = true; @@ -156,7 +151,9 @@ public class CLITraceDumpInfo extends MIInfo { * @return the timestamp of the tracepoint frame */ public String getTimestamp() { - return timestamp; + // Timestamp not yet available in printout of command + // "tdump" -> revisit when it is. + return null; } } diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/CLITraceInfo.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/CLITraceInfo.java index 35cfc462be9..387b821df9e 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/CLITraceInfo.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/CLITraceInfo.java @@ -41,8 +41,7 @@ public class CLITraceInfo extends MIInfo { for (int i = 0; i < oobs.length; i++) { if (oobs[i] instanceof MIConsoleStreamOutput) { MIStreamRecord cons = (MIStreamRecord) oobs[i]; - String str = cons.getString(); - str.trim(); + String str = cons.getString().trim(); if(str.length() > 0 ){ Pattern pattern = Pattern.compile("^Tracepoint\\s(\\d+)", Pattern.MULTILINE); //$NON-NLS-1$ Matcher matcher = pattern.matcher(str); diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIParser.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIParser.java index 65a5b94ad32..d7812f10279 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIParser.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/command/output/MIParser.java @@ -180,6 +180,9 @@ public class MIParser { case '=' : async = new MINotifyAsyncOutput(); break; + default : + assert false; + async = new MINotifyAsyncOutput(); } async.setToken(id); // Extract the Async-Class @@ -212,6 +215,9 @@ public class MIParser { case '&' : stream = new MILogStreamOutput(); break; + default : + assert false; + stream = new MIConsoleStreamOutput(); } // translateCString() assumes that the leading " is deleted if (buffer.length() > 0 && buffer.charAt(0) == '"') { |