Java 类java.util.concurrent.RejectedExecutionException 实例源码
项目:Espresso
文件:AutoFocusManager.java
@SuppressLint("NewApi")
private synchronized void autoFocusAgainLater() {
if (!stopped && outstandingTask == null) {
AutoFocusTask newTask = new AutoFocusTask();
try {
// Unnecessary, our app's min sdk is higher than 11.
// if (Build.VERSION.SDK_INT >= 11) {
// newTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
// } else {
//
// }
newTask.execute();
outstandingTask = newTask;
} catch (RejectedExecutionException ree) {
Log.w(TAG, "Could not request auto focus", ree);
}
}
}
项目:mango
文件:NettyServerImpl.java
/**处理客户端请求**/
private void processRpcRequest(final ChannelHandlerContext context, final DefaultRequest request) {
final long processStartTime = System.currentTimeMillis();
try {
this.pool.execute(new Runnable() {
@Override
public void run() {
try {
RpcContext.init(request);
processRpcRequest(context, request, processStartTime);
} finally {
RpcContext.destroy();
}
}
});
} catch (RejectedExecutionException e) {
DefaultResponse response = new DefaultResponse();
response.setRequestId(request.getRequestId());
response.setException(new RpcFrameworkException("process thread pool is full, reject"));
response.setProcessTime(System.currentTimeMillis() - processStartTime);
context.channel().write(response);
}
}
项目:GitHub
文件:ConstrainedExecutorService.java
/**
* Submit a task to be executed in the future.
* @param runnable The task to be executed.
*/
@Override
public void execute(Runnable runnable) {
if (runnable == null) {
throw new NullPointerException("runnable parameter is null");
}
if (!mWorkQueue.offer(runnable)) {
throw new RejectedExecutionException(
mName + " queue is full, size=" + mWorkQueue.size());
}
final int queueSize = mWorkQueue.size();
final int maxSize = mMaxQueueSize.get();
if ((queueSize > maxSize) && mMaxQueueSize.compareAndSet(maxSize, queueSize)) {
FLog.v(TAG, "%s: max pending work in queue = %d", mName, queueSize);
} // else, there was a race and another thread updated and logged the max queue size
startWorkerIfNeeded();
}
项目:L2jBrasil
文件:L2GamePacketHandler.java
public void execute(ReceivablePacket<L2GameClient> rp)
{
try
{
if (rp.getClient().getState() == GameClientState.IN_GAME)
{
ThreadPoolManager.getInstance().executePacket(rp);
}
else
{
ThreadPoolManager.getInstance().executeIOPacket(rp);
}
}
catch (RejectedExecutionException e)
{
// if the server is shutdown we ignore
if (!ThreadPoolManager.getInstance().isShutdown())
{
_log.severe("Failed executing: "+rp.getClass().getSimpleName()+" for Client: "+rp.getClient().toString());
}
}
}
项目:monarch
文件:InstantiatorRecoveryListener.java
@Override
public void endpointNowInUse(Endpoint endpoint) {
int count = endpointCount.incrementAndGet();
final boolean isDebugEnabled = logger.isDebugEnabled();
if (isDebugEnabled) {
logger.debug("InstantiatorRecoveryTask - EndpointNowInUse. Now have {} endpoints", count);
}
if (count == 1) {
synchronized (recoveryScheduledLock) {
if (!recoveryScheduled) {
try {
recoveryScheduled = true;
background.execute(new RecoveryTask());
if (isDebugEnabled) {
logger.debug("InstantiatorRecoveryTask - Scheduled Recovery Task");
}
} catch (RejectedExecutionException e) {
// ignore, the timer has been cancelled, which means we're shutting down.
}
}
}
}
}
项目:monarch
文件:DestroyRegionOperation.java
/** Return true if a reply should be sent */
@Override
protected void basicProcess(final DistributionManager dm, final LocalRegion lclRgn) {
Assert.assertTrue(this.serialNum != DistributionAdvisor.ILLEGAL_SERIAL);
try {
this.lockRoot = null;
// may set lockRoot to the root region where destroyLock is acquired
final boolean sendReply = true;
// Part of fix for bug 34450 which was caused by a PR destroy region op
// dead-locked with
// a PR create region op. The create region op required an entry update
// to release a
// DLock needed by the PR destroy.. by moving the destroy to the waiting
// pool, the entry
// update is allowed to complete.
dm.getWaitingThreadPool().execute(destroyOp(dm, lclRgn, sendReply));
} catch (RejectedExecutionException e) {
// rejected while trying to execute destroy thread
// must be shutting down, just quit
}
}
项目:JRediClients
文件:RedissonExecutorService.java
@Override
public RExecutorBatchFuture submit(Callable<?> ...tasks) {
if (tasks.length == 0) {
throw new NullPointerException("Tasks are not defined");
}
List<RExecutorFuture<?>> result = new ArrayList<RExecutorFuture<?>>();
TasksBatchService executorRemoteService = createBatchService();
RemoteExecutorServiceAsync asyncService = executorRemoteService.get(RemoteExecutorServiceAsync.class, RemoteInvocationOptions.defaults().noAck().expectResultWithin(1, TimeUnit.DAYS));
for (Callable<?> task : tasks) {
check(task);
byte[] classBody = getClassBody(task);
byte[] state = encode(task);
RemotePromise<?> promise = (RemotePromise<?>)asyncService.executeCallable(task.getClass().getName(), classBody, state);
RedissonExecutorFuture<?> executorFuture = new RedissonExecutorFuture(promise, promise.getRequestId());
result.add(executorFuture);
}
List<Boolean> addResult = (List<Boolean>) executorRemoteService.executeAdd();
if (!addResult.get(0)) {
throw new RejectedExecutionException("Tasks have been rejected. ExecutorService is in shutdown state");
}
return new RedissonExecutorBatchFuture(result);
}
项目:anyRTC-RTCP-Android
文件:AutoFocusManager.java
@SuppressLint("NewApi")
synchronized void autoFocusAgainLater() {
if (!stopped && outstandingTask == null) {
AutoFocusTask newTask = new AutoFocusTask();
try {
if (Build.VERSION.SDK_INT >= 11) {
newTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
} else {
newTask.execute();
}
outstandingTask = newTask;
} catch (RejectedExecutionException ree) {
Log.w(TAG, "Could not request auto focus", ree);
}
}
}
项目:OpenJSharp
文件:ForkJoinPool.java
/**
* Initializes or doubles the capacity of array. Call either
* by owner or with lock held -- it is OK for base, but not
* top, to move while resizings are in progress.
*/
final ForkJoinTask<?>[] growArray() {
ForkJoinTask<?>[] oldA = array;
int size = oldA != null ? oldA.length << 1 : INITIAL_QUEUE_CAPACITY;
if (size > MAXIMUM_QUEUE_CAPACITY)
throw new RejectedExecutionException("Queue capacity exceeded");
int oldMask, t, b;
ForkJoinTask<?>[] a = array = new ForkJoinTask<?>[size];
if (oldA != null && (oldMask = oldA.length - 1) >= 0 &&
(t = top) - (b = base) > 0) {
int mask = size - 1;
do { // emulate poll from old array, push to new array
ForkJoinTask<?> x;
int oldj = ((b & oldMask) << ASHIFT) + ABASE;
int j = ((b & mask) << ASHIFT) + ABASE;
x = (ForkJoinTask<?>)U.getObjectVolatile(oldA, oldj);
if (x != null &&
U.compareAndSwapObject(oldA, oldj, x, null))
U.putObjectVolatile(a, j, x);
} while (++b != t);
}
return a;
}
项目:monix-forkjoin
文件:ForkJoinPool.java
/**
* Initializes or doubles the capacity of array. Call either
* by owner or with lock held -- it is OK for base, but not
* top, to move while resizings are in progress.
*/
final ForkJoinTask<?>[] growArray() {
ForkJoinTask<?>[] oldA = array;
int size = oldA != null ? oldA.length << 1 : INITIAL_QUEUE_CAPACITY;
if (size > MAXIMUM_QUEUE_CAPACITY)
throw new RejectedExecutionException("Queue capacity exceeded");
int oldMask, t, b;
ForkJoinTask<?>[] a = array = new ForkJoinTask<?>[size];
if (oldA != null && (oldMask = oldA.length - 1) >= 0 &&
(t = top) - (b = base) > 0) {
int mask = size - 1;
do {
ForkJoinTask<?> x;
int oldj = ((b & oldMask) << ASHIFT) + ABASE;
int j = ((b & mask) << ASHIFT) + ABASE;
x = (ForkJoinTask<?>)U.getObjectVolatile(oldA, oldj);
if (x != null &&
U.compareAndSwapObject(oldA, oldj, x, null))
U.putObjectVolatile(a, j, x);
} while (++b != t);
}
return a;
}
项目:monarch
文件:ServerBlackList.java
public void addFailure() {
if (blacklist.contains(location)) {
// A second failure must have happened before we added
// this server to the blacklist. Don't count that failure.
return;
}
long failures = consecutiveFailures.incrementAndGet();
if (failures >= THRESHOLD) {
if (logger.isDebugEnabled()) {
logger.debug("Blacklisting server {} for {}ms because it had {} consecutive failures",
location, pingInterval, failures);
}
blacklist.add(location);
broadcaster.serverAdded(location);
try {
background.schedule(new ExpireBlackListTask(location), pingInterval,
TimeUnit.MILLISECONDS);
} catch (RejectedExecutionException e) {
// ignore, the timer has been cancelled, which means we're shutting down.
}
}
}
项目:boohee_v5.6
文件:ExecutorScheduler.java
public Subscription schedule(Action0 action) {
if (isUnsubscribed()) {
return Subscriptions.unsubscribed();
}
Subscription ea = new ScheduledAction(action, this.tasks);
this.tasks.add(ea);
this.queue.offer(ea);
if (this.wip.getAndIncrement() != 0) {
return ea;
}
try {
this.executor.execute(this);
return ea;
} catch (RejectedExecutionException t) {
this.tasks.remove(ea);
this.wip.decrementAndGet();
RxJavaPlugins.getInstance().getErrorHandler().handleError(t);
throw t;
}
}
项目:apache-tomcat-7.0.73-with-comment
文件:NioEndpoint.java
public boolean processSocket(NioChannel socket, SocketStatus status, boolean dispatch) {
try {
KeyAttachment attachment = (KeyAttachment)socket.getAttachment();
if (attachment == null) {
return false;
}
attachment.setCometNotify(false); //will get reset upon next reg
SocketProcessor sc = processorCache.poll();
if ( sc == null ) sc = new SocketProcessor(socket,status);
else sc.reset(socket,status);
if ( dispatch && getExecutor()!=null ) getExecutor().execute(sc);
else sc.run();
} catch (RejectedExecutionException rx) {
log.warn("Socket processing request was rejected for:"+socket,rx);
return false;
} catch (Throwable t) {
ExceptionUtils.handleThrowable(t);
// This means we got an OOM or similar creating a thread, or that
// the pool and its queue are full
log.error(sm.getString("endpoint.process.fail"), t);
return false;
}
return true;
}
项目:TPlayer
文件:AutoFocusManager.java
@SuppressLint("NewApi")
private synchronized void autoFocusAgainLater() {
if (!stopped && outstandingTask == null) {
AutoFocusTask newTask = new AutoFocusTask();
try {
if (Build.VERSION.SDK_INT >= 11) {
newTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
} else {
newTask.execute();
}
outstandingTask = newTask;
} catch (RejectedExecutionException ree) {
Log.w(TAG, "Could not request auto focus", ree);
}
}
}
项目:monarch
文件:StatRecorderJUnitTest.java
@Test
public void recorderHandlesRejectedExecution() throws Exception {
Message msg = mock(Message.class);
when(msg.getHeader(any(Short.class))).thenReturn(Header.createDataHeader(1L, (short) 1, true));
when(msg.size()).thenReturn(150L);
// GEODE-1178, the TP protocol may throw a RejectedExecutionException & StatRecorder should
// retry
when(mockDownProtocol.down(any(Event.class))).thenThrow(new RejectedExecutionException());
// after the first down() throws an exception we want StatRecorder to retry, so
// we set the Manager to say no shutdown is in progress the first time and then say
// one IS in progress so we can break out of the StatRecorder exception handling loop
when(services.getCancelCriterion()).thenReturn(new Services().getCancelCriterion());
Manager manager = mock(Manager.class);
when(services.getManager()).thenReturn(manager);
when(manager.shutdownInProgress()).thenReturn(Boolean.FALSE, Boolean.TRUE);
verify(mockDownProtocol, never()).down(isA(Event.class));
Event evt = new Event(Event.MSG, msg);
recorder.down(evt);
verify(mockDownProtocol, times(2)).down(isA(Event.class));
}
项目:SmartButler
文件:AutoFocusManager.java
@SuppressLint("NewApi")
private synchronized void autoFocusAgainLater() {
if (!stopped && outstandingTask == null) {
AutoFocusTask newTask = new AutoFocusTask();
try {
if (Build.VERSION.SDK_INT >= 11) {
newTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
} else {
newTask.execute();
}
outstandingTask = newTask;
} catch (RejectedExecutionException ree) {
Log.w(TAG, "Could not request auto focus", ree);
}
}
}
项目:chromium-net-for-android
文件:JavaUrlRequest.java
OutputStreamDataSink(final Executor userExecutor, Executor executor,
HttpURLConnection urlConnection, UploadDataProvider provider) {
this.mUserExecutor = new Executor() {
@Override
public void execute(Runnable runnable) {
try {
userExecutor.execute(runnable);
} catch (RejectedExecutionException e) {
enterUploadErrorState(e);
}
}
};
this.mExecutor = executor;
this.mUrlConnection = urlConnection;
this.mUploadProvider = provider;
}
项目:hadoop
文件:NonAggregatingLogHandler.java
private void recover() throws IOException {
if (stateStore.canRecover()) {
RecoveredLogDeleterState state = stateStore.loadLogDeleterState();
long now = System.currentTimeMillis();
for (Map.Entry<ApplicationId, LogDeleterProto> entry :
state.getLogDeleterMap().entrySet()) {
ApplicationId appId = entry.getKey();
LogDeleterProto proto = entry.getValue();
long deleteDelayMsec = proto.getDeletionTime() - now;
if (LOG.isDebugEnabled()) {
LOG.debug("Scheduling deletion of " + appId + " logs in "
+ deleteDelayMsec + " msec");
}
LogDeleterRunnable logDeleter =
new LogDeleterRunnable(proto.getUser(), appId);
try {
sched.schedule(logDeleter, deleteDelayMsec, TimeUnit.MILLISECONDS);
} catch (RejectedExecutionException e) {
// Handling this event in local thread before starting threads
// or after calling sched.shutdownNow().
logDeleter.run();
}
}
}
}
项目:lazycat
文件:AprEndpoint.java
/**
* Process given socket. Called in non-comet mode, typically keep alive or
* upgraded protocol.
*/
public boolean processSocket(long socket, SocketStatus status) {
try {
Executor executor = getExecutor();
if (executor == null) {
log.warn(sm.getString("endpoint.warn.noExector", Long.valueOf(socket), null));
} else {
SocketWrapper<Long> wrapper = connections.get(Long.valueOf(socket));
// Make sure connection hasn't been closed
if (wrapper != null) {
executor.execute(new SocketProcessor(wrapper, status));
}
}
} catch (RejectedExecutionException x) {
log.warn("Socket processing request was rejected for:" + socket, x);
return false;
} catch (Throwable t) {
ExceptionUtils.handleThrowable(t);
// This means we got an OOM or similar creating a thread, or that
// the pool and its queue are full
log.error(sm.getString("endpoint.process.fail"), t);
return false;
}
return true;
}
项目:OSchina_resources_android
文件:AutoFocusManager.java
@SuppressLint("NewApi")
private synchronized void autoFocusAgainLater() {
if (!stopped && outstandingTask == null) {
AutoFocusTask newTask = new AutoFocusTask();
try {
if (Build.VERSION.SDK_INT >= 11) {
newTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
} else {
newTask.execute();
}
outstandingTask = newTask;
} catch (RejectedExecutionException ree) {
Log.w(TAG, "Could not request auto focus", ree);
}
}
}
项目:dhus-core
文件:FairThreadPoolTaskExecutor.java
@Override
public ListenableFuture<?> submitListenable (Runnable task)
{
ExecutorService executor = getThreadPoolExecutor ();
try
{
ListenableFutureTask<Object> future =
new ListenableFutureTask<Object> (task, null);
executor.execute (future);
return future;
}
catch (RejectedExecutionException ex)
{
throw new TaskRejectedException ("Executor [" + executor +
"] did not accept task: " + task, ex);
}
}
项目:dhus-core
文件:FairThreadPoolTaskExecutor.java
@Override
public <T> ListenableFuture<T> submitListenable (Callable<T> task)
{
ExecutorService executor = getThreadPoolExecutor ();
try
{
ListenableFutureTask<T> future = new ListenableFutureTask<T> (task);
executor.execute (future);
return future;
}
catch (RejectedExecutionException ex)
{
throw new TaskRejectedException ("Executor [" + executor +
"] did not accept task: " + task, ex);
}
}
项目:monarch
文件:SerialGatewaySenderEventProcessor.java
/**
* Update an unprocessed event in the unprocessed events map. This method is called by a primary
* <code>Gateway</code> (through
* {@link org.apache.geode.internal.cache.wan.serial.SerialSecondaryGatewayListener#afterCreate} )
* to notify the secondary <code>Gateway</code> that an event has been added to the queue. Once an
* event has been added to the queue, the secondary no longer needs to keep track of it in the
* unprocessed events map. The complexity of this method is the fact that the event could be
* processed first by either the primary or secondary <code>Gateway</code>.
*
* If the primary processes the event first, the map will not contain an entry for the event. It
* will be added to the map in this case so that when the secondary processes it, it will know
* that the primary has already processed it, and it can be safely removed.
*
* If the secondary processes the event first, the map will already contain an entry for the
* event. In this case, the event can be removed from the map.
*
* @param gatewayEvent The event being processed
*/
protected void handlePrimaryEvent(final GatewaySenderEventImpl gatewayEvent) {
Executor my_executor = this.executor;
synchronized (listenerObjectLock) {
if (my_executor == null) {
// should mean we are now primary
return;
}
try {
my_executor.execute(new Runnable() {
public void run() {
basicHandlePrimaryEvent(gatewayEvent);
}
});
} catch (RejectedExecutionException ex) {
throw ex;
}
}
}
项目:lazycat
文件:JIoEndpoint.java
/**
* Process a new connection from a new client. Wraps the socket so
* keep-alive and other attributes can be tracked and then passes the socket
* to the executor for processing.
*
* @param socket
* The socket associated with the client.
*
* @return <code>true</code> if the socket is passed to the executor,
* <code>false</code> if something went wrong or if the endpoint is
* shutting down. Returning <code>false</code> is an indication to
* close the socket immediately.
*/
protected boolean processSocket(Socket socket) {
// Process the request from this socket
try {
SocketWrapper<Socket> wrapper = new SocketWrapper<Socket>(socket);
wrapper.setKeepAliveLeft(getMaxKeepAliveRequests());
wrapper.setSecure(isSSLEnabled());
// During shutdown, executor may be null - avoid NPE
if (!running) {
return false;
}
getExecutor().execute(new SocketProcessor(wrapper));
} catch (RejectedExecutionException x) {
log.warn("Socket processing request was rejected for:" + socket, x);
return false;
} catch (Throwable t) {
ExceptionUtils.handleThrowable(t);
// This means we got an OOM or similar creating a thread, or that
// the pool and its queue are full
log.error(sm.getString("endpoint.process.fail"), t);
return false;
}
return true;
}
项目:monarch
文件:GemFireCacheImpl.java
public boolean executeDiskStoreTask(DiskStoreTask r) {
synchronized (this.diskStoreTaskSync) {
if (!this.diskStoreTaskSync.get()) {
if (this.diskStoreTaskPool == null) {
createDiskStoreTaskPool();
}
try {
this.diskStoreTaskPool.execute(r);
return true;
} catch (RejectedExecutionException ex) {
if (logger.isDebugEnabled()) {
logger.debug("Ignored compact schedule during shutdown", ex);
}
}
}
}
return false;
}
项目:guava-mock
文件:FuturesTest.java
public void testCatchingAsync_rejectionPropagatesToOutput() throws Exception {
SettableFuture<String> input = SettableFuture.create();
ListenableFuture<String> transformed =
catchingAsync(
input,
Throwable.class,
constantAsyncFunction(immediateFuture("foo")),
REJECTING_EXECUTOR);
input.setException(new Exception());
try {
getDone(transformed);
fail();
} catch (ExecutionException expected) {
assertThat(expected.getCause()).isInstanceOf(RejectedExecutionException.class);
}
}
项目:hekate
文件:MessagingGateway.java
private void doScheduleTimeout(long timeout, MessageContext<T> ctx, Object callback) {
if (!ctx.isCompleted()) {
try {
Future<?> future = ctx.worker().executeDeferred(timeout, () -> {
if (ctx.completeOnTimeout()) {
T msg = ctx.originalMessage();
doNotifyOnError(callback, new MessageTimeoutException("Messaging operation timed out [message=" + msg + ']'));
}
});
ctx.setTimeoutFuture(future);
} catch (RejectedExecutionException e) {
// Ignore since this error means that channel is closed.
// In such case we can ignore timeout notification because messaging context will be notified by another error.
}
}
}
项目:ditb
文件:CompactSplitThread.java
public synchronized void requestSplit(final Region r, byte[] midKey, User user) {
if (midKey == null) {
LOG.debug("Region " + r.getRegionInfo().getRegionNameAsString() +
" not splittable because midkey=null");
if (((HRegion)r).shouldForceSplit()) {
((HRegion)r).clearSplit();
}
return;
}
try {
this.splits.execute(new SplitRequest(r, midKey, this.server, user));
if (LOG.isDebugEnabled()) {
LOG.debug("Split requested for " + r + ". " + this);
}
} catch (RejectedExecutionException ree) {
LOG.info("Could not execute split for " + r, ree);
}
}
项目:oscm
文件:BasicBillingProxy.java
<T> Future<T> submitAdapterCall(Callable<T> callable)
throws BillingApplicationException {
ExecutorService executor = getSingleThreadExecutor();
Future<T> future = null;
try {
future = executor.submit(callable);
} catch (RejectedExecutionException e) {
logger.logError(Log4jLogger.SYSTEM_LOG, e,
LogMessageIdentifier.ERROR_EXECUTION_OF_BILLING_APPLICATION_TASK_REJECTED);
throw new BillingApplicationException(
"Call to Billing Adapter failed",
new BillingAdapterConnectionException(
"The execution of the billing application task was rejected"));
}
return future;
}
项目:androidscan
文件:AutoFocusManager.java
private synchronized void autoFocusAgainLater() {
if (!stopped && outstandingTask == null) {
AutoFocusTask newTask = new AutoFocusTask();
try {
if (Build.VERSION.SDK_INT >= 11) {
newTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
} else {
newTask.execute();
}
outstandingTask = newTask;
} catch (RejectedExecutionException ree) {
Log.w(TAG, "Could not request auto focus", ree);
}
}
}
项目:L2jBrasil
文件:L2GameClient.java
@Override
protected void onDisconnection()
{
// no long running tasks here, do it async
try
{
ThreadPoolManager.getInstance().executeTask(new DisconnectTask());
}
catch (RejectedExecutionException e)
{
// server is closing
}
}
项目:L2jBrasil
文件:ThreadPoolManager.java
@SuppressWarnings("rawtypes")
public ScheduledFuture scheduleEffect(Runnable r, long delay)
{
try
{
if (delay < 0)
delay = 0;
return _effectsScheduledThreadPool.schedule(r, delay, TimeUnit.MILLISECONDS);
} catch (RejectedExecutionException e) { return null; /* shutdown, ignore */ }
}
项目:easyhbase
文件:MonitoredExecutorService.java
@Override
public <T> T invokeAny(Collection<? extends Callable<T>> callables) throws
ExecutionException, InterruptedException {
submitted.mark(callables.size());
Collection<? extends Callable<T>> instrumented = instrument(callables);
try {
return delegate.invokeAny(instrumented);
} catch (RejectedExecutionException ree) {
rejected.mark(callables.size());
throw ree;
}
}
项目:L2jBrasil
文件:ThreadPoolManager.java
@SuppressWarnings("rawtypes")
public ScheduledFuture scheduleGeneral(Runnable r, long delay)
{
try
{
if (delay < 0) delay = 0;
return _generalScheduledThreadPool.schedule(r, delay, TimeUnit.MILLISECONDS);
} catch (RejectedExecutionException e) { return null; /* shutdown, ignore */ }
}
项目:L2jBrasil
文件:ThreadPoolManager.java
@SuppressWarnings("rawtypes")
public ScheduledFuture scheduleGeneralAtFixedRate(Runnable r, long initial, long delay)
{
try
{
if (delay < 0) delay = 0;
if (initial < 0) initial = 0;
return _generalScheduledThreadPool.scheduleAtFixedRate(r, initial, delay, TimeUnit.MILLISECONDS);
} catch (RejectedExecutionException e) { return null; /* shutdown, ignore */ }
}
项目:sponge
文件:DefaultThreadPoolManager.java
@Override
public void rejectedExecution(Runnable runnable, ThreadPoolExecutor executor) {
if (!executor.isShutdown()) {
try {
executor.getQueue().put(runnable);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
throw new RejectedExecutionException("Interrupted", e);
}
} else {
throw new RejectedExecutionException("Executor has been shut down");
}
}
项目:incubator-netbeans
文件:RequestProcessor.java
/**
* {@inheritDoc}
* <p/>
* <b>Note:</b> If the passed {@link java.util.concurrent.Callable} implements
* {@link org.openide.util.Cancellable}, then that object's {@link org.openide.util.Cancellable#cancel()}
* method will be called if {@link java.util.concurrent.Future#cancel(boolean)} is invoked.
* If <code>Cancellable.cancel()</code> returns false, then <i>the job will <u>not</u> be
* cancelled</i>.
* @since org.openide.util 8.2
*/
@Override
public <T> Future<T> submit(Callable<T> task) {
Parameters.notNull("task", task); //NOI18N
if (stopped) {
throw new RejectedExecutionException("Request Processor already " + //NOI18N
"stopped"); //NOI18N
}
RPFutureTask<T> result = new RPFutureTask<T>(task);
Task t = create(result);
result.setTask(t);
t.schedule(0);
return result;
}
项目:incubator-netbeans
文件:RequestProcessor.java
/**
* {@inheritDoc}
* <b>Note:</b> If the passed {@link java.lang.Runnable} implements
* {@link org.openide.util.Cancellable}, then that object's {@link org.openide.util.Cancellable#cancel()}
* method will be called if {@link java.util.concurrent.Future#cancel(boolean)} is invoked.
* If <code>Cancellable.cancel()</code> returns false, then <i>the job will <u>not</u> be
* cancelled</i>.
* @since org.openide.util 8.2
*/
@Override
public <T> Future<T> submit(Runnable task, T predefinedResult) {
Parameters.notNull("task", task); //NOI18N
if (stopped) {
throw new RejectedExecutionException("Request Processor already " + //NOI18N
"stopped"); //NOI18N
}
RPFutureTask<T> result = new RPFutureTask<T>(task, predefinedResult);
Task t = create(result);
result.setTask(t);
t.schedule(0);
return result;
}
项目:lazycat
文件:TaskQueue.java
public boolean force(Runnable o, long timeout, TimeUnit unit) throws InterruptedException {
if (parent.isShutdown())
throw new RejectedExecutionException("Executor not running, can't force a command into the queue");
return super.offer(o, timeout, unit); // forces the item onto the queue,
// to be used if the task is
// rejected
}
项目:tvConnect_android
文件:AutoFocusManager.java
private synchronized void autoFocusAgainLater() {
if (!stopped && outstandingTask == null) {
AutoFocusTask newTask = new AutoFocusTask();
try {
newTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
outstandingTask = newTask;
} catch (RejectedExecutionException ree) {
Log.w(TAG, "Could not request auto focus", ree);
}
}
}