@@ -0,0 +1,2763 @@
+/*%0A * Copyright 2010 Ning, Inc.%0A *%0A * Ning licenses this file to you under the Apache License, version 2.0%0A * (the %22License%22); you may not use this file except in compliance with the%0A * License.  You may obtain a copy of the License at:%0A *%0A *    http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS, WITHOUT%0A * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the%0A * License for the specific language governing permissions and limitations%0A * under the License.%0A *%0A */%0Apackage com.ning.http.client.providers.jdk;%0A%0Aimport com.ning.http.client.AsyncHandler;%0Aimport com.ning.http.client.FutureImpl;%0A%0Aimport java.util.concurrent.Callable;%0Aimport java.util.concurrent.ExecutionException;%0Aimport java.util.concurrent.TimeUnit;%0Aimport java.util.concurrent.TimeoutException;%0A%0Apublic class JDKDelegateFuture%3CV%3E extends JDKFuture%3CV%3E %7B%0A%0A    private final FutureImpl%3CV%3E delegateFuture;%0A%0A    public JDKDelegateFuture(AsyncHandler%3CV%3E asyncHandler, int responseTimeoutInMs, FutureImpl%3CV%3E delegateFuture) %7B%0A        super(asyncHandler, responseTimeoutInMs);%0A        this.delegateFuture = delegateFuture;%0A    %7D%0A%0A    public void done(Callable callable) %7B%0A        isDone.set(true);%0A        delegateFuture.done(callable);%0A    %7D%0A%0A    public void abort(Throwable t) %7B%0A        if (innerFuture != null) %7B%0A            innerFuture.cancel(true);%0A        %7D%0A        delegateFuture.abort(t);%0A    %7D%0A%0A    public boolean cancel(boolean mayInterruptIfRunning) %7B%0A        delegateFuture.cancel(mayInterruptIfRunning);%0A        if (innerFuture != null) %7B%0A            return innerFuture.cancel(mayInterruptIfRunning);%0A        %7D else %7B%0A            return false;%0A        %7D%0A    %7D%0A%0A    public boolean isCancelled() %7B%0A        if (innerFuture != null) %7B%0A            return innerFuture.isCancelled();%0A        %7D else %7B%0A            return false;%0A        %7D%0A    %7D%0A%0A    public V get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException %7B%0A        V content = null;%0A        try %7B%0A            if (innerFuture != null) %7B%0A                content = innerFuture.get(timeout, unit);%0A            %7D%0A        %7D catch (Throwable t) %7B%0A            if (!contentProcessed.get() && timeout != -1 && ((System.currentTimeMillis() - touch.get()) %3C= responseTimeoutInMs)) %7B%0A                return get(timeout, unit);%0A            %7D%0A            timedOut.set(true);%0A            delegateFuture.abort(t);%0A        %7D%0A%0A        if (exception.get() != null) %7B%0A            delegateFuture.abort(new ExecutionException(exception.get()));%0A        %7D%0A        delegateFuture.content(content);%0A        delegateFuture.done(null);%0A        return content;%0A    %7D%0A%7D%0A

Add missing file