Fix JsonWriter bug

JsonWriter requires that data be written to it, else close() will throw
an exception.

Change-Id: I596c5363e063cc75bcda55e0a506eefb3f17bd67
This commit is contained in:
Kurt Partridge 2013-04-14 12:24:49 -07:00
parent 3970352ea9
commit cd831fa285

View file

@ -108,10 +108,14 @@ public class ResearchLog {
@Override @Override
public Object call() throws Exception { public Object call() throws Exception {
try { try {
if (mHasWrittenData) { // TODO: This is necessary to avoid an exception. Better would be to not even
mJsonWriter.endArray(); // open the JsonWriter if the file is not even opened unless there is valid data
mHasWrittenData = false; // to write.
if (!mHasWrittenData) {
mJsonWriter.beginArray();
} }
mJsonWriter.endArray();
mHasWrittenData = false;
mJsonWriter.flush(); mJsonWriter.flush();
mJsonWriter.close(); mJsonWriter.close();
if (DEBUG) { if (DEBUG) {
@ -159,6 +163,12 @@ public class ResearchLog {
public Object call() throws Exception { public Object call() throws Exception {
try { try {
if (mHasWrittenData) { if (mHasWrittenData) {
// TODO: This is necessary to avoid an exception. Better would be to not
// even open the JsonWriter if the file is not even opened unless there is
// valid data to write.
if (!mHasWrittenData) {
mJsonWriter.beginArray();
}
mJsonWriter.endArray(); mJsonWriter.endArray();
mJsonWriter.close(); mJsonWriter.close();
mHasWrittenData = false; mHasWrittenData = false;