river-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter <j...@zeus.net.au>
Subject Re: IsolatedExecutor
Date Thu, 15 Sep 2011 11:36:13 GMT
----- 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.firmstone@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)


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message