Я видел подобные вещи, когда согласовывал даты в / из строковых представлений в Java (не в Android), и долгое время не имел понятия, почему.Я не помню точных деталей, но это имело какое-то отношение к методу преобразования, не являющемуся поточно-ориентированным, что было странно, потому что (если я правильно помню) это произошло при вызове статического метода jdk.
Попробуйте, если это все еще происходит, когда вы извлекаете lastModDate.toLocaleString () в синхронизированный метод и используете экземпляр DateFormat.
В jdk уже был файл ошибки с этим, когда я искал его, ноон был отклонен.
(Возможно, toLocaleString использует DateFormat, присоединенный к текущей локали, который используется всеми потоками, и вызывает метод, не поддерживающий потоки.)
Однако это только предположение,но поскольку симптомы так же странны, просто попробуйте.