From 36d8ba04ce8da1d2b42232b35cc03aaf604fbddc Mon Sep 17 00:00:00 2001 From: Pawel Piech Date: Fri, 9 May 2008 17:54:10 +0000 Subject: [PATCH] [229606] - [concurrency] NegativeArraySizeException when launching with enabled assertions --- .../src/org/eclipse/dd/dsf/concurrent/DefaultDsfExecutor.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/DefaultDsfExecutor.java b/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/DefaultDsfExecutor.java index 7c60e3b3611..d370bee27b3 100644 --- a/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/DefaultDsfExecutor.java +++ b/plugins/org.eclipse.dd.dsf/src/org/eclipse/dd/dsf/concurrent/DefaultDsfExecutor.java @@ -167,6 +167,8 @@ public class DefaultDsfExecutor extends ScheduledThreadPoolExecutor */ TracingWrapper(int offset) { StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); + // guard against the offset being greater than the stack trace + offset = Math.min(offset, stackTrace.length); fSubmittedAt = new StackTraceWrapper(new StackTraceElement[stackTrace.length - offset]); System.arraycopy(stackTrace, offset - 1, fSubmittedAt.fStackTraceElements, 0, fSubmittedAt.fStackTraceElements.length); if (isInExecutorThread() && fCurrentlyExecuting != null) {