From 6788cea1a03f26ec57d74a1569cbc6aecb69f777 Mon Sep 17 00:00:00 2001 From: Greg Burd Date: Thu, 29 Mar 2018 11:16:57 -0400 Subject: [PATCH] Fix array out of bound bug in UnitOfWork purpose discovery logic. --- src/main/java/net/helenus/core/UnitOfWork.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/net/helenus/core/UnitOfWork.java b/src/main/java/net/helenus/core/UnitOfWork.java index 6cd2331..7e895b2 100644 --- a/src/main/java/net/helenus/core/UnitOfWork.java +++ b/src/main/java/net/helenus/core/UnitOfWork.java @@ -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()