@Override
    public V get(long timeout, TimeUnit unit)
        throws InterruptedException, ExecutionException, TimeoutException {
        stateLock.lock();
        try {
            if (!isDone()) {
                finishedCondition.await(timeout, unit);
            }
            if (exception != null) {
                throw exception;
            }
            if (result == null) {
                throw new TimeoutException("Object not returned in time allocated.");
            }
            return result;
        } finally {
            stateLock.unlock();
        }
    }
Create an <code>AppTask</code> that will execute the given 
{@link Callable}.

@param callable The callable to be executed
jme3-core/src/main/java/com/jme3/app/AppTask.java