Estou investigando o seguinte java.lang.VerifyError
java.lang.VerifyError: (class: be/post/ehr/wfm/application/serviceorganization/report/DisplayReportServlet, method: getMonthData signature: (IILjava/util/Collection;Ljava/util/Collection;Ljava/util/HashMap;Ljava/util/Collection;Ljava/util/Locale;Lorg/apache/struts/util/MessageRe˜̴Mt̴MÚw€mçw€mp:”MŒŒ
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2357)
at java.lang.Class.getConstructor0(Class.java:2671)
Ocorre quando o servidor jboss no qual o servlet está implementado é iniciado. É compilado com o jdk-1.5.0_11 e tentei recompilar com o jdk-1.5.0_15 sem êxito. Essa é a compilação que funciona bem, mas quando implantada, o java.lang.VerifyError ocorre.
Quando mudei o nome do método e recebi o seguinte erro:
java.lang.VerifyError: (class: be/post/ehr/wfm/application/serviceorganization/report/DisplayReportServlet, method: getMD signature: (IILjava/util/Collection;Lj ava/util/Collection;Ljava/util/HashMap;Ljava/util/Collection;Ljava/util/Locale;Lorg/apache/struts/util/MessageResources ØÅN|ØÅNÚw€mçw€mX#ÖM|XÔM
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2357
at java.lang.Class.getConstructor0(Class.java:2671)
at java.lang.Class.newInstance0(Class.java:321)
at java.lang.Class.newInstance(Class.java:303)
Você pode ver que mais da assinatura do método é mostrada.
A assinatura real do método é
private PgasePdfTable getMonthData(int month, int year, Collection dayTypes,
Collection calendarDays,
HashMap bcSpecialDays,
Collection activityPeriods,
Locale locale, MessageResources resources) throws Exception {
Eu já tentei olhar para ele javap
e isso dá a assinatura do método como deveria ser.
Quando meus outros colegas conferem o código, compilam e implantam, eles têm o mesmo problema. Quando o servidor de compilação pega o código e o implementa nos ambientes de desenvolvimento ou teste (HPUX), o mesmo erro ocorre. Além disso, uma máquina de teste automatizada executando o Ubuntu mostra o mesmo erro durante a inicialização do servidor.
O restante do aplicativo é executado corretamente, apenas esse servlet está com defeito. Qualquer idéia para onde procurar seria útil.