Just nu i M3-nätverket
Jump to content

Tomcat ger java.lang.ArrayIndexOutOfBoundsException?


Papali

Recommended Posts

Jag har ett problem med att jag får java.lang.ArrayIndexOutOfBoundsException på en körning

där jag transfererar stora datamängder och gissar att det är därför jag får detta exception. (Jag får det nämligen inte på mindre mängder data)

Kan det vara tomcat som inte klarar av att allokera upp tillräckligt med utrymme så att man kommer "utanför" arrayindex?

Om jag kör från JBuilder lokalt får jag ej detta problem.

Jag kan därför inte debugga det.

Finns det nånting man kan göra?

 

Hoppas på hjälp här.

 

Tjingaling, papali

 

Link to comment
Share on other sites

Det skulle nog underlätta rätt mycket om du gav ett litet kodexempel på vad du gör när du får felet (samt där du gör eventuell allokering). Du kanske har tagit något för givet som inte är en självklar sanning.

 

 

Link to comment
Share on other sites

Problemet är att jag inte vet var det sker.

Jag ska försöka förbättra loggningen så att jag kan se var det sker.

Det sker inte varje gång jag kör samma jobb.

Så det är väldigt svårt att hitta.

 

I koden använder jag inga arrays som kan komma "outofbounds".

 

Kan det vara Tomcat som avger exception?

 

 

Tjingaling, papali

 

Link to comment
Share on other sites

Ok, hur ser du att du får felet? Du har inte händelsevis en log eller något där du ser en backtrace eller nåt åt det hållet?

 

Utan mer information än att du får ett ArrayIndexOutOfBoundsException så kan man lixom inte ge mer tips än att någon har gått out of bounds i en array och det hade du ju redan klurat ut.

 

I koden använder jag inga arrays som kan komma "outofbounds".

Kan det vara Tomcat som avger exception?

 

Nu skriver du inget om vilken Tomcat du kör men typiskt hittar man följande i sin catalina-log i tomcat4 när man fått ett exception (i det här fallet ett null-pointer dito)

[log]

2003-10-31 01:53:47 StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exception

java.lang.NullPointerException

at com.blaha.blaha.UserValidationImpl.login(UserValidationImpl.java:24)

at org.apache.jsp.login$jsp._jspService(login$jsp.java:71)

at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:458)

at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:551)

at java.lang.Thread.run(Thread.java:479)

[/log]

[inlägget ändrat 2004-12-13 13:13:23 av fhe]

Link to comment
Share on other sites

Eftersom du inte kan förse oss med varesig källkod eller någon form av felmeddelande (mer än själva exception-klassens namn) så får du nog klara dig själv.

Det känns helt otroligt att du skulle få ett exception OCH få reda på vilket utan att ha en aning om var du kan hitta information om undantaget ifråga.

Om du använder något klass som i sin tur pratar med log4j så kanske du ska läsa dokumentationen till antingen den klassen eller till log4j och lära dig mer om hur du ökar mängden information som loggas.

 

Att felsöka åt dig blir annars lite som om någon tar bussen till bilverkstaden och berättar att han har fel på bilen, utan att kunna berätta ens vad det är för bilmodell. Det blir rätt svårt.

 

Edit: Kort sagt, generella felbeskrivningar kan inte ge precisa svar. Det blir aldrig något annat än gissningar.

[inlägget ändrat 2004-12-13 17:04:42 av fhe]

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...