diff options
| -rw-r--r-- | core/java/com/android/internal/os/SamplingProfilerIntegration.java | 30 |
1 files changed, 13 insertions, 17 deletions
diff --git a/core/java/com/android/internal/os/SamplingProfilerIntegration.java b/core/java/com/android/internal/os/SamplingProfilerIntegration.java index bfef27571df8..8c256e0c44d6 100644 --- a/core/java/com/android/internal/os/SamplingProfilerIntegration.java +++ b/core/java/com/android/internal/os/SamplingProfilerIntegration.java @@ -16,22 +16,21 @@ package com.android.internal.os; +import android.content.pm.PackageInfo; +import android.os.Build; +import android.os.SystemProperties; +import android.util.Log; import dalvik.system.SamplingProfiler; - import java.io.BufferedOutputStream; import java.io.File; -import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintStream; import java.util.concurrent.Executor; import java.util.concurrent.Executors; -import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.ThreadFactory; - -import android.content.pm.PackageInfo; -import android.util.Log; -import android.os.*; +import java.util.concurrent.atomic.AtomicBoolean; +import libcore.io.IoUtils; /** * Integrates the framework with Dalvik's sampling profiler. @@ -162,19 +161,16 @@ public class SamplingProfilerIntegration { PrintStream out = null; try { out = new PrintStream(new BufferedOutputStream(new FileOutputStream(path))); + generateSnapshotHeader(name, packageInfo, out); + new SamplingProfiler.AsciiHprofWriter(INSTANCE.getHprofData(), out).write(); + if (out.checkError()) { + throw new IOException(); + } } catch (IOException e) { - Log.e(TAG, "Could not open " + path + ":" + e); + Log.e(TAG, "Error writing snapshot to " + path, e); return; - } - try { - generateSnapshotHeader(name, packageInfo, out); - INSTANCE.writeHprofData(out); } finally { - out.close(); - } - if (out.checkError()) { - Log.e(TAG, "Error writing snapshot."); - return; + IoUtils.closeQuietly(out); } // set file readable to the world so that SamplingProfilerService // can put it to dropbox |