aboutsummaryrefslogtreecommitdiffstats
path: root/sdkmanager/libs/sdkuilib
diff options
context:
space:
mode:
authorRaphael Moll <ralf@android.com>2012-06-04 10:01:19 -0700
committerandroid code review <noreply-gerritcodereview@google.com>2012-06-04 10:01:19 -0700
commit23debd13c55d671b02be77978bd9e1e706e8ccdd (patch)
tree29e06f3797df8895b0e5d6ff7baf68845bd67e89 /sdkmanager/libs/sdkuilib
parent8d981a4703ed48cf200e790d1cc332a63e16f939 (diff)
parentfaebce1cc09653321a12b8472fd02b79dad95c58 (diff)
downloadsdk-23debd13c55d671b02be77978bd9e1e706e8ccdd.zip
sdk-23debd13c55d671b02be77978bd9e1e706e8ccdd.tar.gz
sdk-23debd13c55d671b02be77978bd9e1e706e8ccdd.tar.bz2
Merge "ADT: NPE when capturing emulator output."
Diffstat (limited to 'sdkmanager/libs/sdkuilib')
-rw-r--r--sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/widgets/AvdSelector.java28
1 files changed, 17 insertions, 11 deletions
diff --git a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/widgets/AvdSelector.java b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/widgets/AvdSelector.java
index 72488a3..3a76b2a 100644
--- a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/widgets/AvdSelector.java
+++ b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/widgets/AvdSelector.java
@@ -1091,7 +1091,7 @@ public final class AvdSelector {
final ProgressTask progress = new ProgressTask(mTable.getShell(),
"Starting Android Emulator");
progress.start(new ITask() {
- ITaskMonitor mMonitor = null;
+ volatile ITaskMonitor mMonitor = null;
@Override
public void run(final ITaskMonitor monitor) {
@@ -1115,16 +1115,12 @@ public final class AvdSelector {
new IProcessOutput() {
@Override
public void out(@Nullable String line) {
- if (line != null) {
- filterStdOut(line);
- }
+ filterStdOut(line);
}
@Override
public void err(@Nullable String line) {
- if (line != null) {
- filterStdErr(line);
- }
+ filterStdErr(line);
}
});
@@ -1150,6 +1146,11 @@ public final class AvdSelector {
}
private void filterStdOut(String line) {
+ ITaskMonitor m = mMonitor;
+ if (line == null || m == null) {
+ return;
+ }
+
// Skip some non-useful messages.
if (line.indexOf("NSQuickDrawView") != -1) { //$NON-NLS-1$
// Discard the MacOS warning:
@@ -1162,22 +1163,27 @@ public final class AvdSelector {
if (line.toLowerCase().indexOf("error") != -1 || //$NON-NLS-1$
line.indexOf("qemu: fatal") != -1) { //$NON-NLS-1$
// Sometimes the emulator seems to output errors on stdout. Catch these.
- mMonitor.logError("%1$s", line); //$NON-NLS-1$
+ m.logError("%1$s", line); //$NON-NLS-1$
return;
}
- mMonitor.log("%1$s", line); //$NON-NLS-1$
+ m.log("%1$s", line); //$NON-NLS-1$
}
private void filterStdErr(String line) {
+ ITaskMonitor m = mMonitor;
+ if (line == null || m == null) {
+ return;
+ }
+
if (line.indexOf("emulator: device") != -1 || //$NON-NLS-1$
line.indexOf("HAX is working") != -1) { //$NON-NLS-1$
// These are not errors. Output them as regular stdout messages.
- mMonitor.log("%1$s", line); //$NON-NLS-1$
+ m.log("%1$s", line); //$NON-NLS-1$
return;
}
- mMonitor.logError("%1$s", line); //$NON-NLS-1$
+ m.logError("%1$s", line); //$NON-NLS-1$
}
});
}