From 78c1ad32e67fcb11448e23661aec33675f3dfa3b Mon Sep 17 00:00:00 2001 From: Kurt Partridge Date: Fri, 15 Feb 2013 12:43:51 -0800 Subject: [PATCH] [TestPrep7] Encapsulate JsonWriter creation Change-Id: I4e97fa28dd0bb1101edc0db03f024432fee6f6fe --- .../inputmethod/research/ResearchLog.java | 27 +++++++++++++------ 1 file 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)))); + } }