Я знаю, что это старше, но 2 пункта, чтобы отметить на сегодняшний день в ответе Matt Quails.
Это
List<Cat> cats = Collections.checkedList(Cat.class, q.list());
Должно быть это
List<Cat> cats = Collections.checkedList(q.list(), Cat.class);
Из этого
List list = q.list();
к этому
List<T> list = q.list();
будут уменьшены другие предупреждения, очевидно, в оригинальные метки тега ответа были удалены браузером.