From c18d2f0aa98bd850b28cb17851f86c0e7eb4fdb2 Mon Sep 17 00:00:00 2001 From: Tim Su Date: Fri, 17 Sep 2010 16:49:15 +0800 Subject: [PATCH] Fix for NPE bugs when saving a filter --- .../com/todoroo/astrid/core/SavedFilter.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/astrid/plugin-src/com/todoroo/astrid/core/SavedFilter.java b/astrid/plugin-src/com/todoroo/astrid/core/SavedFilter.java index c60af3225..8c4eea207 100644 --- a/astrid/plugin-src/com/todoroo/astrid/core/SavedFilter.java +++ b/astrid/plugin-src/com/todoroo/astrid/core/SavedFilter.java @@ -95,13 +95,9 @@ public class SavedFilter { CriterionInstance item = adapter.getItem(i); // criterion|entry|text|type|sql - values.append(item.criterion.identifier.replace(AndroidUtilities.SERIALIZATION_SEPARATOR, - AndroidUtilities.SEPARATOR_ESCAPE)).append(AndroidUtilities.SERIALIZATION_SEPARATOR); - values.append(item.getValueFromCriterion().replace(AndroidUtilities.SERIALIZATION_SEPARATOR, - AndroidUtilities.SEPARATOR_ESCAPE)); - values.append(AndroidUtilities.SERIALIZATION_SEPARATOR); - values.append(item.criterion.text.replace(AndroidUtilities.SERIALIZATION_SEPARATOR, - AndroidUtilities.SEPARATOR_ESCAPE)).append(AndroidUtilities.SERIALIZATION_SEPARATOR); + values.append(escape(item.criterion.identifier)).append(AndroidUtilities.SERIALIZATION_SEPARATOR); + values.append(escape(item.getValueFromCriterion())).append(AndroidUtilities.SERIALIZATION_SEPARATOR); + values.append(escape(item.criterion.text)).append(AndroidUtilities.SERIALIZATION_SEPARATOR); values.append(item.type).append(AndroidUtilities.SERIALIZATION_SEPARATOR); if(item.criterion.sql != null) values.append(item.criterion.sql); @@ -111,6 +107,13 @@ public class SavedFilter { return values.toString(); } + private static String escape(String item) { + if(item == null) + return ""; //$NON-NLS-1$ + return item.replace(AndroidUtilities.SERIALIZATION_SEPARATOR, + AndroidUtilities.SEPARATOR_ESCAPE); + } + /** * Read filter from store * @param savedFilter