Мы видели это несколько раз, и это, похоже, не связано с нашим кодом, так как ни один из наших кодов не находится в stacktrace. Мы используем Джерси 1.17 и мы получаем, иногда эту ошибку:Ошибка Odd Jersey: java.lang.StackOverflowError
java.lang.StackOverflowError at java.lang.String.toLowerCase(String.java:2496) at com.sun.jersey.core.util.StringIgnoreCaseKeyComparator.hash(StringIgnoreCaseKeyComparator.java:53) at com.sun.jersey.core.util.StringIgnoreCaseKeyComparator.hash(StringIgnoreCaseKeyComparator.java:48) at com.sun.jersey.core.util.KeyComparatorHashMap.keyComparatorHash(KeyComparatorHashMap.java:294) at com.sun.jersey.core.util.KeyComparatorHashMap.containsKey(KeyComparatorHashMap.java:359) at com.sun.jersey.api.client.filter.HTTPBasicAuthFilter.handle(HTTPBasicAuthFilter.java:101) at com.sun.jersey.api.client.filter.HTTPBasicAuthFilter.handle(HTTPBasicAuthFilter.java:104) at com.sun.jersey.api.client.filter.HTTPBasicAuthFilter.handle(HTTPBasicAuthFilter.java:104) at ...
И тогда последняя строка повторяется навсегда (ну, пока StackOverflow). Мы видели это больше в 1.18, и поэтому мы понизились до 1.17, но теперь я только что увидел его там.
Эти веб-службы работают в 99,9% случаев. Это вызывает проблемы в jvm. Кто-нибудь еще видел это? Что я делаю не так? У нас просто нормальная установка 1.17, и вокруг нее построено все приложение.
Обновление: так как кто-то предложил цикл на сервере приложений, мы используем Tomcat 6 и basic auth.
И что код в 'HTTPBasicAuthFilter.java: 104'? – fge
Вы пытаетесь выполнить аутентификацию, с какой-то петлей. Иногда Auth фильтрует петлю на них, вам нужно остановить их в случае ошибки. 1. вызов auth клиентом, 2. вызов auth в приложении 3. потребности в услугах Auth, 4. Auth Call .... это может легко сделать цикл – jeorfevre
Мы не делаем auth в приложении, которое я знаю (мы используем tomcat, и он выполняет базовый auth). Кроме того, если вы заметили выше, остальная часть огромной трассировки стека находится в строке 104. Таким образом, первый из них 101, а остальные - 104. – markthegrea