In our log files we find the following:
[2012-09-24 00:09:32.590 +0000UTC] ERROR host server1 [] [] somepackage.someclass [] [Unknown] [V3rAqPaDvvAAAAExEXhdWGyh] [pjsQwTGHzxcAAAE5j4YdGvWV] "ThreadName" Some error happened: java.lang.ArrayIndexOutOfBoundsException: null
There is only this single line, and NO exception stack trace.
The try
block in which this exception happens is executing dynamically-generated Java byte-code which was created using javassist.
I am wondering about two things:
- The
java.lang.ArrayIndexOutOfBoundsException
: null - The missing stack-trace, despite calling the log hook using
logger.error("message", theException)
inside thecatch
block, which ordinarily would lead to a full stack-trace being printed in the log-file.
My Questions:
What kind of code can cause a logging output "java.lang.ArrayIndexOutOfBoundsException: null". I try to reproduce this with a test program with no luck. I always get something like "java.lang.ArrayIndexOutOfBoundsException: Index: 3" or similar.
Could the reason for missing stack-trace, be that this code is dynamically generated at runtime, and as such the logger/JVM does not "know" the stack-trace or relevant line number(s)?
We are currently debugging and investigating to get more info, but maybe this sounds familiar to somebody.