当前位置: 首页>>代码示例>>Java>>正文


Java CancellationException类代码示例

本文整理汇总了Java中java.util.concurrent.CancellationException的典型用法代码示例。如果您正苦于以下问题:Java CancellationException类的具体用法?Java CancellationException怎么用?Java CancellationException使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


CancellationException类属于java.util.concurrent包,在下文中一共展示了CancellationException类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: run

import java.util.concurrent.CancellationException; //导入依赖的package包/类
public static boolean run(SwingWorker<?,?> worker, Frame parent) throws Exception {
	ProgressDialog dialog = new ProgressDialog(parent, worker);
	worker.execute();
	dialog.setVisible(true);
	try {
		worker.get();
	}
	catch (ExecutionException e) {
		if (e.getCause() instanceof CancellationException) {
			return false;
		} else if (e.getCause() instanceof Exception) {
			throw (Exception)e.getCause();
		} else {
			// ?!?
			throw new AssertionError(e);
		}
	}
	
	return !worker.isCancelled();
}
 
开发者ID:mgropp,项目名称:pdfjumbler,代码行数:21,代码来源:ProgressDialog.java

示例2: testCancel

import java.util.concurrent.CancellationException; //导入依赖的package包/类
public void testCancel() {
  SettableFuture<String> f = SettableFuture.create();
  FutureCallback<String> callback =
      new FutureCallback<String>() {
        private boolean called = false;

        @Override
        public void onSuccess(String result) {
          fail("Was not expecting onSuccess() to be called.");
        }

        @Override
        public synchronized void onFailure(Throwable t) {
          assertFalse(called);
          assertThat(t).isInstanceOf(CancellationException.class);
          called = true;
        }
      };
  addCallback(f, callback, directExecutor());
  f.cancel(true);
}
 
开发者ID:zugzug90,项目名称:guava-mock,代码行数:22,代码来源:FutureCallbackTest.java

示例3: testCancelledForkTimedGet

import java.util.concurrent.CancellationException; //导入依赖的package包/类
/**
 * timed get of a forked task throws exception when task cancelled
 */
public void testCancelledForkTimedGet() {
    RecursiveAction a = new CheckedRecursiveAction() {
        protected void realCompute() throws Exception {
            FibAction f = new FibAction(8);
            assertTrue(f.cancel(true));
            assertSame(f, f.fork());
            try {
                f.get(LONG_DELAY_MS, MILLISECONDS);
                shouldThrow();
            } catch (CancellationException success) {
                checkCancelled(f);
            }
        }};
    testInvokeOnPool(mainPool(), a);
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:19,代码来源:RecursiveActionTest.java

示例4: uploadPartsInParallel

import java.util.concurrent.CancellationException; //导入依赖的package包/类
/**
 * Submits a callable for each part to upload to our thread pool and records its corresponding Future.
 */
private void uploadPartsInParallel(UploadPartRequestFactory requestFactory,
        String uploadId) {

    Map<Integer,PartSummary> partNumbers = identifyExistingPartsForResume(uploadId);

    while (requestFactory.hasMoreRequests()) {
        if (threadPool.isShutdown()) throw new CancellationException("TransferManager has been shutdown");
        UploadPartRequest request = requestFactory.getNextUploadPartRequest();
        if (partNumbers.containsKey(request.getPartNumber())) {
            PartSummary summary = partNumbers.get(request.getPartNumber());
            eTagsToSkip.add(new PartETag(request.getPartNumber(), summary
                    .getETag()));
            transferProgress.updateProgress(summary.getSize());
            continue;
        }
        futures.add(threadPool.submit(new UploadPartCallable(s3, request)));
    }
}
 
开发者ID:IBM,项目名称:ibm-cos-sdk-java,代码行数:22,代码来源:UploadCallable.java

示例5: done

import java.util.concurrent.CancellationException; //导入依赖的package包/类
protected void done()
{
   getPrimesJButton.setEnabled(true); // enable Get Primes button
   cancelJButton.setEnabled(false); // disable Cancel button

   try
   {
      // retrieve and display doInBackground return value
      statusJLabel.setText("Found " + get() + " primes.");
   } 
   catch (InterruptedException | ExecutionException | 
      CancellationException ex)
   {
      statusJLabel.setText(ex.getMessage());
   } 
}
 
开发者ID:cleitonferreira,项目名称:LivroJavaComoProgramar10Edicao,代码行数:17,代码来源:PrimeCalculator.java

示例6: execute

import java.util.concurrent.CancellationException; //导入依赖的package包/类
public static ExitStatus execute(final ExecutionEnvironment env, final String command) throws IOException, CancellationException {
    while (true) {
        final ShellProcess process = startProcessIfNeeded(env);
        if (process == null) {
            continue;
        }
        synchronized (process) {
            if (ProcessUtils.isAlive(process.process)) {
                try {
                    ExitStatus result = executeSync(process, env, command);
                    if (result != null) {
                        return result;
                    }
                } catch (InterruptedException ex) {
                    Thread.currentThread().interrupt();
                    return new ExitStatus(-1, null, MiscUtils.getMessageAsList(ex));
                }
            }
        }
    }
}
 
开发者ID:apache,项目名称:incubator-netbeans,代码行数:22,代码来源:ShellSession.java

示例7: testCancelledForkGetSingleton

import java.util.concurrent.CancellationException; //导入依赖的package包/类
/**
 * get of a forked task throws exception when task cancelled
 */
public void testCancelledForkGetSingleton() {
    ForkJoinTask a = new CheckedRecursiveAction() {
        protected void realCompute() throws Exception {
            CCF f = new LCCF(8);
            assertTrue(f.cancel(true));
            assertSame(f, f.fork());
            try {
                f.get();
                shouldThrow();
            } catch (CancellationException success) {
                checkCancelled(f);
            }
        }};
    testInvokeOnPool(singletonPool(), a);
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:19,代码来源:CountedCompleterTest.java

示例8: testFailOnExceptionFromRun

import java.util.concurrent.CancellationException; //导入依赖的package包/类
public void testFailOnExceptionFromRun() throws Exception {
  TestService service = new TestService();
  service.runException = new Exception();
  service.startAsync().awaitRunning();
  service.runFirstBarrier.await();
  service.runSecondBarrier.await();
  try {
    future.get();
    fail();
  } catch (CancellationException expected) {
  }
  // An execution exception holds a runtime exception (from throwables.propogate) that holds our
  // original exception.
  assertEquals(service.runException, service.failureCause());
  assertEquals(service.state(), Service.State.FAILED);
}
 
开发者ID:paul-hammant,项目名称:googles-monorepo-demo,代码行数:17,代码来源:AbstractScheduledServiceTest.java

示例9: interruptedDuringReturnValueRetryRetry

import java.util.concurrent.CancellationException; //导入依赖的package包/类
@Test public void interruptedDuringReturnValueRetryRetry()
    throws InterruptedException, IOException {
  Retryer.ForReturnValue<String> forReturnValue =
      retryer.uponReturn("bad", asList(Delay.ofMillis(0), Delay.ofMillis(0)));
  when(blockedAction.result()).thenReturn("bad").thenReturn("fixed");
  CompletionStage<String> stage =
      forReturnValue.retry(blockedAction::blockOnSecondTime, executor);
  blockedAction.retryStarted.await();
  blockedAction.interrupt();
  // Sadly cancellation from inner future doesn't propagate to outer.
  ExecutionException exception =
      assertThrows(ExecutionException.class, () -> stage.toCompletableFuture().get());
  assertThat(exception.getCause()).isInstanceOf(CancellationException.class);
  assertThat(exception.getCause().getCause()).isInstanceOf(InterruptedException.class);
  assertThat(exception.getCause().getSuppressed()).isEmpty();
}
 
开发者ID:google,项目名称:mug,代码行数:17,代码来源:RetryerFunctionalTest.java

示例10: complete

import java.util.concurrent.CancellationException; //导入依赖的package包/类
/**
 * Implementation of completing a task.  Either {@code v} or {@code t} will
 * be set but not both.  The {@code finalState} is the state to change to
 * from {@link #RUNNING}.  If the state is not in the RUNNING state we
 * return {@code false} after waiting for the state to be set to a valid
 * final state ({@link #COMPLETED}, {@link #CANCELLED}, or {@link
 * #INTERRUPTED}).
 *
 * @param v the value to set as the result of the computation.
 * @param t the exception to set as the result of the computation.
 * @param finalState the state to transition to.
 */
private boolean complete(@Nullable V v, @Nullable Throwable t,
    int finalState) {
  boolean doCompletion = compareAndSetState(RUNNING, COMPLETING);
  if (doCompletion) {
    // If this thread successfully transitioned to COMPLETING, set the value
    // and exception and then release to the final state.
    this.value = v;
    // Don't actually construct a CancellationException until necessary.
    this.exception = ((finalState & (CANCELLED | INTERRUPTED)) != 0)
        ? new CancellationException("Future.cancel() was called.") : t;
    releaseShared(finalState);
  } else if (getState() == COMPLETING) {
    // If some other thread is currently completing the future, block until
    // they are done so we can guarantee completion.
    acquireShared(-1);
  }
  return doCompletion;
}
 
开发者ID:zugzug90,项目名称:guava-mock,代码行数:31,代码来源:AbstractFutureBenchmarks.java

示例11: testCancelledForkTimedGetCC

import java.util.concurrent.CancellationException; //导入依赖的package包/类
/**
 * timed get of a forked task throws exception when task cancelled
 */
public void testCancelledForkTimedGetCC() throws Exception {
    ForkJoinTask a = new CheckedRecursiveAction() {
        protected void realCompute() throws Exception {
            CCF f = new LCCF(null, 8);
            assertTrue(f.cancel(true));
            assertSame(f, f.fork());
            try {
                f.get(LONG_DELAY_MS, MILLISECONDS);
                shouldThrow();
            } catch (CancellationException success) {
                checkCancelled(f);
            }
        }};
    checkInvoke(a);
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:19,代码来源:ForkJoinPool8Test.java

示例12: pseudoTimedGetUninterruptibly

import java.util.concurrent.CancellationException; //导入依赖的package包/类
/**
 * Very rough equivalent of a timed get, produced by calling the no-arg get method in another
 * thread and waiting a short time for it.
 *
 * <p>We need this to test the behavior of no-arg get methods without hanging the main test thread
 * forever in the case of failure.
 */
@CanIgnoreReturnValue
@GwtIncompatible // threads
static <V> V pseudoTimedGetUninterruptibly(final Future<V> input, long timeout, TimeUnit unit)
    throws ExecutionException, TimeoutException {
  ExecutorService executor = newSingleThreadExecutor();
  Future<V> waiter = executor.submit(new Callable<V>() {
    @Override
    public V call() throws Exception {
      return input.get();
    }
  });

  try {
    return getUninterruptibly(waiter, timeout, unit);
  } catch (ExecutionException e) {
    propagateIfInstanceOf(e.getCause(), ExecutionException.class);
    propagateIfInstanceOf(e.getCause(), CancellationException.class);
    throw failureWithCause(e, "Unexpected exception");
  } finally {
    executor.shutdownNow();
    // TODO(cpovirk: assertTrue(awaitTerminationUninterruptibly(executor, 10, SECONDS));
  }
}
 
开发者ID:zugzug90,项目名称:guava-mock,代码行数:31,代码来源:FuturesTest.java

示例13: testCancelledForkGet

import java.util.concurrent.CancellationException; //导入依赖的package包/类
/**
 * get of a forked task throws exception when task cancelled
 */
public void testCancelledForkGet() {
    ForkJoinTask a = new CheckedRecursiveAction() {
        protected void realCompute() throws Exception {
            CCF f = new LCCF(8);
            assertTrue(f.cancel(true));
            assertSame(f, f.fork());
            try {
                f.get();
                shouldThrow();
            } catch (CancellationException success) {
                checkCancelled(f);
            }
        }};
    testInvokeOnPool(mainPool(), a);
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:19,代码来源:CountedCompleterTest.java

示例14: testNoOpScheduledExecutorInvokeAll

import java.util.concurrent.CancellationException; //导入依赖的package包/类
public void testNoOpScheduledExecutorInvokeAll() throws ExecutionException, InterruptedException {
  ListeningScheduledExecutorService executor = TestingExecutors.noOpScheduledExecutor();
  taskDone = false;
  Callable<Boolean> task = new Callable<Boolean>() {
    @Override public Boolean call() {
      taskDone = true;
      return taskDone;
    }
  };
  List<Future<Boolean>> futureList = executor.invokeAll(
      ImmutableList.of(task), 10, TimeUnit.MILLISECONDS);
  Future<Boolean> future = futureList.get(0);
  assertFalse(taskDone);
  assertTrue(future.isDone());
  try {
    future.get();
    fail();
  } catch (CancellationException e) {
    // pass
  }
}
 
开发者ID:paul-hammant,项目名称:googles-monorepo-demo,代码行数:22,代码来源:TestingExecutorsTest.java

示例15: testCancelledForkTimedGetSingleton

import java.util.concurrent.CancellationException; //导入依赖的package包/类
/**
 * timed get of a forked task throws exception when task cancelled
 */
public void testCancelledForkTimedGetSingleton() throws Exception {
    RecursiveAction a = new CheckedRecursiveAction() {
        protected void realCompute() throws Exception {
            AsyncFib f = new AsyncFib(8);
            assertTrue(f.cancel(true));
            assertSame(f, f.fork());
            try {
                f.get(LONG_DELAY_MS, MILLISECONDS);
                shouldThrow();
            } catch (CancellationException success) {
                checkCancelled(f);
            }
        }};
    testInvokeOnPool(singletonPool(), a);
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:19,代码来源:ForkJoinTaskTest.java


注:本文中的java.util.concurrent.CancellationException类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。