diff --git a/app/build.gradle b/app/build.gradle index 4865cce..afb5754 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,7 +7,7 @@ android { minSdkVersion 19 targetSdkVersion 28 versionCode 1 - versionName "2.4.0" + versionName "2.4.1" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { diff --git a/logseneandroid/build.gradle b/logseneandroid/build.gradle index 4f28160..f7663a8 100644 --- a/logseneandroid/build.gradle +++ b/logseneandroid/build.gradle @@ -9,7 +9,7 @@ android { minSdkVersion 19 targetSdkVersion 28 versionCode 4 - versionName "2.4.0" + versionName "2.4.1" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" diff --git a/logseneandroid/src/main/java/com/sematext/logseneandroid/SqliteObjectQueue.java b/logseneandroid/src/main/java/com/sematext/logseneandroid/SqliteObjectQueue.java index 197edf4..4f644df 100644 --- a/logseneandroid/src/main/java/com/sematext/logseneandroid/SqliteObjectQueue.java +++ b/logseneandroid/src/main/java/com/sematext/logseneandroid/SqliteObjectQueue.java @@ -11,6 +11,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.Locale; import java.util.concurrent.ConcurrentHashMap; /** @@ -142,9 +143,13 @@ public List peek(int max) { * @param n amount of elements to remove. */ public void remove(int n) { - // On android sqlite deletes with limit and order keywords are disabled so we have to workaround it - db.execSQL(String.format("DELETE FROM %s WHERE `id` IN (SELECT `id` FROM %s ORDER BY `id` ASC limit %d);", - TABLE_NAME, TABLE_NAME, n)); + // On android sqlite deletes with limit and order keywords are disabled so we have to workaround it. + // In addition to that we need to remember about the Locale here - see: + // https://github.com/sematext/sematext-logsene-android/issues/26. + String deleteQuery = String.format(Utils.DEFAULT_LOCALE, + "DELETE FROM %s WHERE `id` IN (SELECT `id` FROM %s ORDER BY `id` ASC limit %d);", + TABLE_NAME, TABLE_NAME, n); + db.execSQL(deleteQuery); SQLiteStatement stmt = db.compileStatement("SELECT CHANGES()"); long result = stmt.simpleQueryForLong(); if (sizeCache.get(ObjectDbHelper.DATABASE_NAME) != null) { diff --git a/logseneandroid/src/main/java/com/sematext/logseneandroid/Utils.java b/logseneandroid/src/main/java/com/sematext/logseneandroid/Utils.java index 5093740..108b1f1 100644 --- a/logseneandroid/src/main/java/com/sematext/logseneandroid/Utils.java +++ b/logseneandroid/src/main/java/com/sematext/logseneandroid/Utils.java @@ -4,18 +4,22 @@ import java.io.StringWriter; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.Locale; import java.util.TimeZone; public enum Utils { INSTANCE, Utils; private static final SimpleDateFormat ISO8601_FORMAT; + static { TimeZone tz = TimeZone.getTimeZone("UTC"); ISO8601_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SZ"); ISO8601_FORMAT.setTimeZone(tz); } + public static final Locale DEFAULT_LOCALE = new Locale("en", "US"); + public static String iso8601() { return ISO8601_FORMAT.format(new Date()); }