----- Original message ----- > First, I'll admit to not having looked at your attached code, so I can't > comment on it. > > The idea of starting a new jvm process for every proxy downloaded still > troubles me though. Surely you can still DOS attack something by getting it > to start new JVMs for every download. JVMs are not renowned for being light > weight. Plus, it's going to have an impact on legit services if they're all > stuck in their own VMs. Sorry, I'm not articulating myself very well (need > more coffee) I'm just uneasy about this approach.
That's understandable, one both counts, :) I figured one jvm per registrar might not be as bad, which means the registrar has to share the jvm with all the other services it returns from lookup. > > I'm still more in favor of creating implicitly trusted lookup services, > where we can assume that if I get a proxy from that service then the proxy > can be trusted. I'm fuzzy on the details about how you differentiate a > trusted lookup service from an untrusted one. Identity - I'm thinking about public pgp keys and referee services. Perhaps something along the lines of the convergence plugin for firefox, but using services. Also, how you would verify a > service trying to register with it as a trusted service. Client Authentication and a method constraint on register. > > Sort of like the app-store model, where security is provided by manual > checks and legal contracts rather than a "well, I downloaded the proxy and > it didn't bite me" approach which is what this seems to be. > > Sorry for hijacking your thread. > > Tom > > That's cool, don't mind. Cheers, Peter. > > Grammar and spelling have been sacrificed on the altar of messaging via > mobile device. > > On 15 Sep 2011 03:17, "Peter Firmstone" <peter.firmst...@zeus.net.au> wrote: > > Although I plan to set up a sub process jvm for isolation, I originally > > wrote the following IsolatedExecutor in an attempt to contain the damage > > remote code could do during discovery V1 or unmarshalling. > > > > Discovery or unmarshalling can be executed in a Runnable or Callable and > > be isolated to a single thread with no privileges, it handles > > StackOverflowError and OutOfMemoryError gracefully, without blowing up > > the jvm. > > > > Once an Error's occurs, the executor thread is interrupted and the > > Executor shutdown. > > > > Attacks that remote code could perform has not been eliminated, such as > > changing public static fields, or insufficiently guarded static methods. > > > > To further isolate the remote code, it's ClassLoader could load it's own > > jsk-platform, so platform classes aren't shared, reducing the shared > > state to the java platform's static fields and methods. > > > > To eliminate all shared state, the remote code can be placed in a sub > > process jvm. > > > > The IsolatedExecutor could be made multi threaded, the first thread that > > threw an Error would cause the executor to shutdown, however other > > threads may cause the jvm to also throw errors, but these could be > handled. > > > > I don't think it's advisable to continue execution after an Error is > > encountered, instead, the cause should be logged and the jvm gracefully > > shutdown and restarted. > > > > In a multithreaded application, any thread outside of the > > IsolatedExecutor could throw an OutOfMemoryError. To handle this a > > ThreadGroup UncaughtExceptionHandler could be set in the parent > > ThreadGroup, to log the error and restart the jvm. Since the jvm > > ignores any exceptions thrown from the UncaughtExceptionHandler, you > > can't really recover from that situation. > > > > If the IsolatedExecutor catches the Error first, the caller has the > > opportunity to identify the task that caused the issue and perform some > > detailed reporting prior to restarting. > > > > This functionality would be useful to restart a sub process jvm. > > > > In existing ExecutorService implementations, RunnableFuture swallows > > Throwable, the ExecutorService is unable to shutdown the thread, even > > when the client calls back. The difference with IsolatedExecutor, is > > the thread that run's the future calls get after completion, set its > > interrupt status and shuts down the executor. > > > > I've got some junit tests that deliberately cause OutOfMemoryError and > > StackOverflowError, on one occassion with a standard ExecutorService, it > > caused one OS (Windows 7) to go into some kind of hard shutdown, no such > > problem with IsolatedExecutor, in fact junit goes on and finishes all > > the other tests after IsolatedExecutor passes it's junit tests, catching > > both types of error. > > > > I am of course wondering if I can use reflective proxy's with > > InvocationHandler's to encapsulate all calls in Callable, to a proxy > > that runs in a sub process jvm within it's own Classloader containing > > jsk-platform.jar > > > > An alternative to this sort of isolation would be to have some kind of > > trust advisory service that downloads codebases and runs FindBugs > > bytecode analysis? > > > > I mean, we don't have to run the code to find out if it has a nasty bug. > > > > Just thought I'd post this in case someone else finds it interesting. > > > > Cheers, > > > > Peter. > > > > /* > > * Licensed to the Apache Software Foundation (ASF) under one > > * or more contributor license agreements. See the NOTICE file > > * distributed with this work for additional information > > * regarding copyright ownership. The ASF licenses this file > > * to you under the Apache License, Version 2.0 (the > > * "License"); you may not use this file except in compliance > > * with the License. You may obtain a copy of the License at > > * > > * http://www.apache.org/licenses/LICENSE-2.0 > > * > > * Unless required by applicable law or agreed to in writing, software > > * distributed under the License is distributed on an "AS IS" BASIS, > > * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > > * See the License for the specific language governing permissions and > > * limitations under the License. > > */ > > > > package org.apache.river.impl.security.dos; > > > > import java.util.Collection; > > import java.util.List; > > import java.util.concurrent.BlockingQueue; > > import java.util.concurrent.Callable; > > import java.util.concurrent.CancellationException; > > import java.util.concurrent.ExecutionException; > > import java.util.concurrent.ExecutorService; > > import java.util.concurrent.Future; > > import java.util.concurrent.RejectedExecutionHandler; > > import java.util.concurrent.SynchronousQueue; > > import java.util.concurrent.ThreadFactory; > > import java.util.concurrent.ThreadPoolExecutor; > > import java.util.concurrent.ThreadPoolExecutor.AbortPolicy; > > import java.util.concurrent.TimeUnit; > > import java.util.concurrent.TimeoutException; > > > > /** > > * Performs Callable tasks in an isolated thread, which is terminated > > * if any Errors occur. The daemon thread priority is minimal. > > * > > * The caller can give up on the execution of the task by setting a > > timeout. > > * > > * @param T > > * @author peter > > */ > > public class IsolatedExecutor<T> implements ExecutorService { > > /* > > * We could optionally make this multithreaded, however once an Error > > * occurs we'd still need to shut down. > > */ > > > > private final ExecutorService isolateExecutor; > > private volatile byte [] free; > > > > public IsolatedExecutor() > > { > > /* This Executor is single threaded, but that thread is replaced > > * if idle for extended periods. > > * SynchronousQueue has zero capacity, so it cannot create > > memory problems. > > */ > > isolateExecutor = new Executor(0, 1, > > 600L, TimeUnit.SECONDS, > > new SynchronousQueue<Runnable>(), > > new Factory(), > > new AbortPolicy()); > > } > > > > /** > > * Process Callable tasks in isolation. > > * If an ExecutionException has been thrown, the task should be > > abandoned. > > * If an IsolationException has been thrown, an Error has occurred with > > * the IsolatedExecutor and a new object should be created. > > * > > * @param task > > * @param timeout > > * @param timeUnit > > * @return > > * @throws > > org.apache.river.impl.security.dos.IsolatedExecutor.IsolationException > > * @throws java.util.concurrent.ExecutionException > > */ > > public T process(Callable<T> task, long timeout, TimeUnit timeUnit) > > throws > > ExecutionException, InterruptedException, TimeoutException { > > Future<T> result = isolateExecutor.submit(task); > > return result.get(timeout, timeUnit); > > } > > > > public void shutdown(){ > > isolateExecutor.shutdown(); > > } > > > > public List<Runnable> shutdownNow(){ > > return isolateExecutor.shutdownNow(); > > } > > > > public boolean isShutdown(){ > > return isolateExecutor.isShutdown(); > > } > > > > public boolean isTerminated() { > > return isolateExecutor.isTerminated(); > > } > > > > public boolean awaitTermination(long timeout, TimeUnit unit) throws > > InterruptedException { > > return isolateExecutor.awaitTermination(timeout, unit); > > } > > > > public <T> Future<T> submit(Callable<T> task) { > > return isolateExecutor.submit(task); > > } > > > > public <T> Future<T> submit(Runnable task, T result) { > > return isolateExecutor.submit(task, result); > > } > > > > public Future<?> submit(Runnable task) { > > return isolateExecutor.submit(task); > > } > > > > public <T> List<Future<T>> invokeAll(Collection<? extends > > Callable<T>> tasks) throws InterruptedException { > > return isolateExecutor.invokeAll(tasks); > > } > > > > public <T> List<Future<T>> invokeAll(Collection<? extends > > Callable<T>> tasks, long timeout, TimeUnit unit) throws > > InterruptedException { > > return isolateExecutor.invokeAll(tasks, timeout, unit); > > } > > > > public <T> T invokeAny(Collection<? extends Callable<T>> tasks) > > throws InterruptedException, ExecutionException { > > return isolateExecutor.invokeAny(tasks); > > } > > > > public <T> T invokeAny(Collection<? extends Callable<T>> tasks, > > long timeout, TimeUnit unit) throws InterruptedException, > > ExecutionException, TimeoutException { > > return isolateExecutor.invokeAny(tasks, timeout, unit); > > } > > > > public void execute(Runnable command) { > > isolateExecutor.execute(command); > > } > > > > private class Factory implements ThreadFactory{ > > ThreadGroup group; > > Factory(){ > > group = new ThreadGroup("Isolated"); > > group.setDaemon(true); > > group.setMaxPriority(Thread.MIN_PRIORITY); > > } > > /* > > * Because we're only single threaded, if the existing > > * Thread exits, the ThreadGroup is destroyed. > > */ > > public Thread newThread(Runnable r) { > > // Try to limit the stack size of created Threads; hint to jvm. > > Thread t = new Thread(group, r, "Isolated", 131072L); > > // t.setUncaughtExceptionHandler(new ExceptionHandler()); > > free = new byte[1024]; // assign some memory > > free[0] = 1; // ensure it gets allocated by jit. > > return t; > > } > > } > > > > // private class ExceptionHandler implements > > Thread.UncaughtExceptionHandler{ > > // > > // ExceptionHandler(){ > > // } > > // > > // public void uncaughtException(Thread t, Throwable e) { > > // // This is only useful for logging, the jvm ignores any exceptions > > // // thrown. > > // } > > // } > > > > > > private class Executor extends ThreadPoolExecutor{ > > Executor(int corePoolSize, > > int maximumPoolSize, > > long keepAliveTime, > > TimeUnit unit, > > BlockingQueue<Runnable> workQueue, > > ThreadFactory threadFactory, > > RejectedExecutionHandler handler){ > > super( corePoolSize, maximumPoolSize, keepAliveTime, unit, > > workQueue, > > threadFactory, handler); > > } > > > > @Override > > protected void afterExecute(Runnable r, Throwable t) { > > super.afterExecute(r, t); > > if (t == null && r instanceof Future<?>) { > > try { > > ((Future<?>) r).get(); > > } catch (CancellationException ce) { > > t = ce; > > } catch (ExecutionException ee) { > > t = ee.getCause(); > > } catch (InterruptedException ie) { > > Thread.currentThread().interrupt(); // ignore/reset > > shutdownNow();// Ensure the interrupt isn't cleared. > > } finally { > > //TODO: Implement a shutdown hook for the jvm for > > other Error's. > > /* > > * Even though ThreadPoolExecutor only catches a > > RuntimeException, > > * a FutureTask catches a Throwable, so we can get > > an Error > > * cause, wrapped in an ExecutionException. > > */ > > if ( t instanceof OutOfMemoryError || t instanceof > > StackOverflowError ){ > > /* Do we want to take different actions based > > on the error? > > * OutOfMemoryError doesn't mean the jvm is > > completely devoid > > * of memory, it indicates that there wasn't enough > > * memory to create the last object. > > */ > > free = null; // Free some memory to allow recovery. > > System.gc(); > > Thread.currentThread().interrupt(); // Allow > > the run method to exit > > shutdownNow(); // Make sure the interrupt > > doen't get cleared. > > /* It might be tempting to throw ThreadDeath, > > it's not required, > > * instead we just let the thread stack > > overflow, or run until > > * no more objects can be created in the jvm. > > The low > > * thread priority ensure that performance > > isn't impacted > > * by endless loops, however large memory > > consumption > > * will impact performance. > > */ > > } > > } > > } > > } > > } > > } > > > > > > ------------- ---------------- --------------- > > Testsuite: org.apache.river.impl.security.dos.IsolateTest > > Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 19.838 sec > > > > ------------- Standard Output --------------- > > Stack overflow > > java.util.concurrent.ExecutionException: java.lang.StackOverflowError > > at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222) > > at java.util.concurrent.FutureTask.get(FutureTask.java:83) > > at > > > org.apache.river.impl.security.dos.IsolateTest.stackOverflow(IsolateTest.java:80) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > > at > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > > at java.lang.reflect.Method.invoke(Method.java:597) > > at > > > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) > > at > > > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) > > at > > > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) > > at > > > org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) > > at > > > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) > > at > > > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) > > at > > > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) > > at > > > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:44) > > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180) > > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41) > > at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173) > > at > > > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) > > at > > > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) > > at org.junit.runners.ParentRunner.run(ParentRunner.java:220) > > at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39) > > at > > > org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:518) > > at > > > org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeInVM(JUnitTask.java:1420) > > at > > > org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:848) > > at > > > org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeOrQueue(JUnitTask.java:1899) > > at > > > org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:800) > > at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) > > at sun.reflect.GeneratedMethodAccessor157.invoke(Unknown Source) > > at > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > > at java.lang.reflect.Method.invoke(Method.java:597) > > at > > > org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) > > at org.apache.tools.ant.Task.perform(Task.java:348) > > at org.apache.tools.ant.Target.execute(Target.java:390) > > at org.apache.tools.ant.Target.performTasks(Target.java:411) > > at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399) > > at org.apache.tools.ant.Project.executeTarget(Project.java:1368) > > at > > > org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) > > at org.apache.tools.ant.Project.executeTargets(Project.java:1251) > > at > > > org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:284) > > at > > > org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:539) > > at > > org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:154) > > Caused by: java.lang.StackOverflowError > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20) > > at tests.support.StackOverflowTask.call(StackOverflowTask.java:16) > > at tests.support.StackOverflowTask.callAgain(StackOverflowTask.java:20)