Comments 5

Класс точно всегда будет только из одного потока вызываться?
Почему инстанциируете Calendar, а не Date?

Это упрощенный пример, он не делался с целью дать готовое приложение. Если что-то очень плохо сделано, например, «учит плохому», Вы скажите об этом явно, т.е. что надо переделать.

То что сходу бросилось в глаза:


if (myProvider == null) {
...

Будет некорректно работать в том случае если в эту строку одновременно придут два потока. Сразу по большому количеству причин.
2 — статики. Я не знаю что у вас за ограничения, но в целом статические переменные — плохая идея.
3 -


    public static String now() {
        Calendar cal = Calendar.getInstance();
        SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
        return sdf.format(cal.getTime());

    }

в то время как можно было использовать просто new SimpleDateFormat(DATE_FORMAT).format(new Date())


Я особенно не вчитывался в код — предметная область мне незнакома, но вот эти штуки сходу глаз режут.


Кроме того режут глаз комментарии в коде, которые были бы не нужны, если бы гигантский метод был разбит на методы с говорящими названиями.

По формату даты соглашусь, а за конкурентный доступ можно не беспокоится.
В недрах СУБД скрывается весьма спецефическая реализация Java — OJVM, живущая исключительно в передлах сессии пользователя базы данных.
Это упрощенный пример, он не делался с целью дать готовое приложение. Если что-то очень плохо сделано, например, «учит плохому», Вы скажите об этом явно, т.е. что надо переделать.
Only those users with full accounts are able to leave comments. Log in, please.