У меня есть одноэлементный класс (@Service с аннотацией). Этот класс имеет метод, выполнение которого занимает 200/300 мс.
Этот метод помечен @Cacheable и синхронизирован.
@Cacheable(value="nextPlaying", key = "#startingFrom.getYear() + #startingFrom.getMonth() + #startingFrom.getDay() + #startingFrom.getHours() + #startingFrom.getMinutes() + #locale.getLanguage()")
public synchronized List<Match> getNextPlaying(Date startingFrom, Locale locale)
Запуская несколько потоков, вызывающих этот метод, я вижу, что в течение этих 200/300 мс, пока результат не будет кэширован, он снова и снова выполняет метод, пока не будет кэширован. Похоже, что аннотация @Cacheable не учитывает synchronized... Это ошибка?