Fix array out of bound bug in UnitOfWork purpose discovery logic.

This commit is contained in:
Greg Burd 2018-03-29 11:16:57 -04:00
parent 9d94e865b6
commit 6788cea1a0

View file

@ -131,14 +131,14 @@ public class UnitOfWork implements AutoCloseable {
StackTraceElement[] trace = Thread.currentThread().getStackTrace();
String targetClassName = HelenusSession.class.getSimpleName();
String stackClassName = null;
do {
frame++;
stackClassName = extractClassNameFromStackFrame(trace[frame].getClassName());
} while (!stackClassName.equals(targetClassName) && frame < trace.length);
do {
frame++;
stackClassName = extractClassNameFromStackFrame(trace[frame].getClassName());
} while (stackClassName.equals(targetClassName) && frame < trace.length);
while (!stackClassName.equals(targetClassName) && frame < trace.length) {
stackClassName = extractClassNameFromStackFrame(trace[frame].getClassName());
frame++;
}
while (stackClassName.equals(targetClassName) && frame < trace.length) {
stackClassName = extractClassNameFromStackFrame(trace[frame].getClassName());
frame++;
}
if (frame < trace.length) {
purpose =
new StringBuilder()