@Override public Optional<Serializable> get() throws WorkException { try { CompletionStage<?> response = dispatcher.executeOnMember(command, physicalAddress); return Optional.ofNullable((Serializable) response.toCompletableFuture().join()); } catch (CancellationException e) { return Optional.empty(); } catch (CommandDispatcherException | CompletionException e) { throw new WorkException(e); } } };
@Override public void run() throws WorkException { try { for (Map.Entry<Node, CompletionStage<Void>> entry : dispatcher.executeOnGroup(command).entrySet()) { // Verify that command executed successfully on all nodes try { entry.getValue().toCompletableFuture().join(); } catch (CancellationException e) { // Ignore } catch (CompletionException e) { throw new WorkException(e); } } } catch (CommandDispatcherException e) { throw new WorkException(e); } } };
throw new WorkException("SimpleTaskWorkManager does not supported imported XIDs: " + executionContext.getXid()); WorkException wex = new WorkException("TaskExecutor failed to execute Work: " + work, ex); wex.setErrorCode(WorkException.INTERNAL); throw wex;
throw new WorkException("SimpleTaskWorkManager does not supported imported XIDs: " + executionContext.getXid()); WorkException wex = new WorkException("TaskExecutor failed to execute Work: " + work, ex); wex.setErrorCode(WorkException.INTERNAL); throw wex;
public void scheduleWork(Work work, long startTimeout, ExecutionContext execContext, WorkListener workListener) throws WorkException { // SimpleWorkListener wrappedListener = new SimpleWorkListener(workListener); // wrappedListener.workAccepted(new WorkEvent(this, WorkEvent.WORK_ACCEPTED, work, null)); // SimpleWork task = new SimpleWork(); // task.setSource(this); // task.setWork(work); // task.setWorkListener(wrappedListener); // // ScheduledFuture<?> future = // this.scheduled.scheduleAtFixedRate(task, 0, 1000, TimeUnit.MILLISECONDS); throw new WorkException("not supported yet!"); }
public void scheduleWork(Work work, long startTimeout, ExecutionContext execContext, WorkListener workListener) throws WorkException { // SimpleWorkListener wrappedListener = new SimpleWorkListener(workListener); // wrappedListener.workAccepted(new WorkEvent(this, WorkEvent.WORK_ACCEPTED, work, null)); // SimpleWork task = new SimpleWork(); // task.setSource(this); // task.setWork(work); // task.setWorkListener(wrappedListener); // // ScheduledFuture<?> future = // this.scheduled.scheduleAtFixedRate(task, 0, 1000, TimeUnit.MILLISECONDS); throw new WorkException("not supported yet!"); }
public void scheduleWork(Work work, long startTimeout, ExecutionContext execContext, WorkListener workListener) throws WorkException { // SimpleWorkListener wrappedListener = new SimpleWorkListener(workListener); // wrappedListener.workAccepted(new WorkEvent(this, WorkEvent.WORK_ACCEPTED, work, null)); // SimpleWork task = new SimpleWork(); // task.setSource(this); // task.setWork(work); // task.setWorkListener(wrappedListener); // // ScheduledFuture<?> future = // this.scheduled.scheduleAtFixedRate(task, 0, 1000, TimeUnit.MILLISECONDS); throw new WorkException("not supported yet!"); }
public long startWork(Work work, long timeout, ExecutionContext execCtxt, WorkListener workListener) throws WorkException { try { threadPool.execute(new WorkRunnable(work, workListener)); } catch(Exception e) { throw new WorkException(e); } return 1; }
@Override public Optional<Serializable> get() throws WorkException { try { CompletionStage<?> response = dispatcher.executeOnMember(command, physicalAddress); return Optional.ofNullable((Serializable) response.toCompletableFuture().join()); } catch (CancellationException e) { return Optional.empty(); } catch (CommandDispatcherException | CompletionException e) { throw new WorkException(e); } } };
public long startWork(final Work work) throws WorkException { final CountDownLatch latch = new CountDownLatch(1); executor.execute(new Work() { public void release() { work.release(); } public void run() { latch.countDown(); work.run(); } }); long t = System.currentTimeMillis(); try { latch.await(); } catch (InterruptedException e) { throw new WorkException("Interrupted", e); } return System.currentTimeMillis() - t; }
@Override public void run() throws WorkException { try { for (Map.Entry<Node, CompletionStage<Void>> entry : dispatcher.executeOnGroup(command).entrySet()) { // Verify that command executed successfully on all nodes try { entry.getValue().toCompletableFuture().join(); } catch (CancellationException e) { // Ignore } catch (CompletionException e) { throw new WorkException(e); } } } catch (CommandDispatcherException e) { throw new WorkException(e); } } };
/** * Verify the given work instance. * @param work The work * @throws WorkException Thrown if a spec compliant issue is found */ private void verifyWork(Work work) throws WorkException { Class<? extends Work> workClass = work.getClass(); String className = workClass.getName(); if (!validatedWork.contains(className)) { if (isWorkMethodSynchronized(workClass, RUN_METHOD_NAME)) throw new WorkException(bundle.runMethodIsSynchronized(className)); if (isWorkMethodSynchronized(workClass, RELEASE_METHOD_NAME)) throw new WorkException(bundle.releaseMethodIsSynchronized(className)); validatedWork.add(className); } }
public void doWork(Work work, long startTimeout, ExecutionContext execContext, WorkListener workListener) throws WorkException { SimpleWorkListener wrappedListener = new SimpleWorkListener(workListener); wrappedListener.workAccepted(new WorkEvent(this, WorkEvent.WORK_ACCEPTED, work, null)); SimpleWork task = new SimpleWork(); task.setWork(work); task.setWorkListener(wrappedListener); Future<?> future = this.executor.submit(task); try { future.get(); } catch (CancellationException ex) { wrappedListener.workCompleted(new WorkEvent(this, WorkEvent.WORK_REJECTED, work, new WorkException(ex))); } catch (InterruptedException ex) { wrappedListener.workCompleted(new WorkEvent(this, WorkEvent.WORK_COMPLETED, work, new WorkException(ex))); } catch (ExecutionException ex) { wrappedListener.workCompleted(new WorkEvent(this, WorkEvent.WORK_COMPLETED, work, new WorkException(ex))); } }
public void doWork(Work work, long startTimeout, ExecutionContext execContext, WorkListener workListener) throws WorkException { SimpleWorkListener wrappedListener = new SimpleWorkListener(workListener); wrappedListener.workAccepted(new WorkEvent(this, WorkEvent.WORK_ACCEPTED, work, null)); SimpleWork task = new SimpleWork(); task.setWork(work); task.setWorkListener(wrappedListener); Future<?> future = this.executor.submit(task); try { future.get(); } catch (CancellationException ex) { wrappedListener.workCompleted(new WorkEvent(this, WorkEvent.WORK_REJECTED, work, new WorkException(ex))); } catch (InterruptedException ex) { wrappedListener.workCompleted(new WorkEvent(this, WorkEvent.WORK_COMPLETED, work, new WorkException(ex))); } catch (ExecutionException ex) { wrappedListener.workCompleted(new WorkEvent(this, WorkEvent.WORK_COMPLETED, work, new WorkException(ex))); } }
public void doWork(Work work, long startTimeout, ExecutionContext execContext, WorkListener workListener) throws WorkException { SimpleWorkListener wrappedListener = new SimpleWorkListener(workListener); wrappedListener.workAccepted(new WorkEvent(this, WorkEvent.WORK_ACCEPTED, work, null)); SimpleWork task = new SimpleWork(); task.setWork(work); task.setWorkListener(wrappedListener); Future<?> future = this.executor.submit(task); try { future.get(); } catch (CancellationException ex) { wrappedListener.workCompleted(new WorkEvent(this, WorkEvent.WORK_REJECTED, work, new WorkException(ex))); } catch (InterruptedException ex) { wrappedListener.workCompleted(new WorkEvent(this, WorkEvent.WORK_COMPLETED, work, new WorkException(ex))); } catch (ExecutionException ex) { wrappedListener.workCompleted(new WorkEvent(this, WorkEvent.WORK_COMPLETED, work, new WorkException(ex))); } }
public void run() { try { work.run(); if (workListener != null) { workListener.workCompleted(new WorkEvent(work, WorkEvent.WORK_COMPLETED, work, null)); } } catch (Throwable t) { if (workListener != null) { workListener.workCompleted(new WorkEvent(work, WorkEvent.WORK_COMPLETED, work, new WorkException(t))); } } } }
/** * {@link Work}を実行します. * * @param work * {@link Work}のラッパー * @return {@link Work}を受け付けてから実行完了までの経過時間 (ミリ秒単位) * @throws WorkException * {@link Work}の実行中に例外が発生した場合 */ protected long executeWork(final WorkWrapper work) throws WorkException { try { return work.execute(pool); } catch (final InterruptedException e) { final WorkException we = new WorkException(e); we.setErrorCode(WorkException.INTERNAL); throw we; } }
/** * Check the transport * @exception WorkException In case of an error */ private void checkTransport() throws WorkException { if (!transport.isInitialized()) { try { transport.initialize(); initialize(); } catch (Throwable t) { WorkException we = new WorkException("Exception during transport initialization"); we.initCause(t); throw we; } } }
private void throwWorkExceptionIfHasExption(RspList<ResponseValues> rspList) throws WorkException { if (rspList != null && rspList.getFirst() != null) { for (Rsp<ResponseValues> rsp : rspList) { if (rsp.hasException()) { Throwable t = rsp.getException(); if (t instanceof WorkException) { throw (WorkException)t; } else { WorkException we = new WorkException(rsp.getException().getMessage()); we.initCause(rsp.getException()); throw we; } } } } }
worker.waitForCompletion(); } catch (final InterruptedException e) { final WorkException workException = new WorkException("Work submission thread was interrupted", e); workException.setErrorCode(WorkException.INTERNAL); throw workException; worker.waitForStart(); } catch (final InterruptedException e) { final WorkException workException = new WorkException("Work submission thread was interrupted", e); workException.setErrorCode(WorkException.INTERNAL); throw workException;