aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/research/ResearchLog.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/com/android/inputmethod/research/ResearchLog.java')
-rw-r--r--java/src/com/android/inputmethod/research/ResearchLog.java27
1 files changed, 19 insertions, 8 deletions
diff --git a/java/src/com/android/inputmethod/research/ResearchLog.java b/java/src/com/android/inputmethod/research/ResearchLog.java
index 4dff17530..2303ebcfe 100644
--- a/java/src/com/android/inputmethod/research/ResearchLog.java
+++ b/java/src/com/android/inputmethod/research/ResearchLog.java
@@ -209,26 +209,37 @@ public class ResearchLog {
public JsonWriter getInitializedJsonWriterLocked() {
try {
if (mJsonWriter == NULL_JSON_WRITER && mFile != null) {
- final FileOutputStream fos =
- mContext.openFileOutput(mFile.getName(), Context.MODE_PRIVATE);
- mJsonWriter = new JsonWriter(new BufferedWriter(new OutputStreamWriter(fos)));
- mJsonWriter.beginArray();
- mHasWrittenData = true;
+ final JsonWriter jsonWriter = createJsonWriter(mContext, mFile);
+ if (jsonWriter != null) {
+ jsonWriter.beginArray();
+ mJsonWriter = jsonWriter;
+ mHasWrittenData = true;
+ }
}
} catch (IOException e) {
- e.printStackTrace();
- Log.w(TAG, "Error in JsonWriter; disabling logging");
+ Log.w(TAG, "Error in JsonWriter; disabling logging", e);
try {
mJsonWriter.close();
} catch (IllegalStateException e1) {
// Assume that this is just the json not being terminated properly.
// Ignore
} catch (IOException e1) {
- e1.printStackTrace();
+ Log.w(TAG, "Error in closing JsonWriter; disabling logging", e1);
} finally {
mJsonWriter = NULL_JSON_WRITER;
}
}
return mJsonWriter;
}
+
+ /**
+ * Create the JsonWriter to write the ResearchLog to.
+ *
+ * This method may be overriden in testing to redirect the output.
+ */
+ /* package for test */ JsonWriter createJsonWriter(final Context context, final File file)
+ throws IOException {
+ return new JsonWriter(new BufferedWriter(new OutputStreamWriter(
+ context.openFileOutput(file.getName(), Context.MODE_PRIVATE))));
+ }
}