Example usage for com.google.common.util.concurrent SettableFuture setException

List of usage examples for com.google.common.util.concurrent SettableFuture setException

Introduction

In this page you can find the example usage for com.google.common.util.concurrent SettableFuture setException.

Prototype

@Override
    public boolean setException(Throwable throwable) 

Source Link

Usage

From source file:org.opendaylight.netconf.topology.impl.OnlySuccessStateAggregator.java

@Override
public ListenableFuture<Node> combineUpdateAttempts(List<ListenableFuture<Node>> stateFutures) {
    final SettableFuture<Node> future = SettableFuture.create();
    final ListenableFuture<List<Node>> allAsList = Futures.allAsList(stateFutures);
    Futures.addCallback(allAsList, new FutureCallback<List<Node>>() {
        @Override/*  ww  w . ja  va 2  s .  com*/
        public void onSuccess(List<Node> result) {
            for (int i = 0; i < result.size() - 1; i++) {
                if (!result.get(i).equals(result.get(i + 1))) {
                    future.setException(new IllegalStateException("Update futures have different result"));
                }
            }
            future.set(result.get(0));
        }

        @Override
        public void onFailure(Throwable t) {
            LOG.error("One of the combined update attempts failed {}", t);
            future.setException(t);
        }
    });
    return future;
}

From source file:org.opendaylight.netconf.topology.impl.OnlySuccessStateAggregator.java

@Override
public ListenableFuture<Node> combineCreateAttempts(List<ListenableFuture<Node>> stateFutures) {
    final SettableFuture<Node> future = SettableFuture.create();
    final ListenableFuture<List<Node>> allAsList = Futures.allAsList(stateFutures);
    Futures.addCallback(allAsList, new FutureCallback<List<Node>>() {
        @Override//from w  w w  .  java 2  s.  co  m
        public void onSuccess(List<Node> result) {
            for (int i = 0; i < result.size() - 1; i++) {
                if (!result.get(i).equals(result.get(i + 1))) {
                    future.setException(new IllegalStateException("Create futures have different result"));
                }
            }
            future.set(result.get(0));
        }

        @Override
        public void onFailure(Throwable t) {
            LOG.error("One of the combined create attempts failed {}", t);
            future.setException(t);
        }
    }, TypedActor.context().dispatcher());

    return future;
}

From source file:es.udc.pfc.xmpp.component.AbstractXMPPComponent.java

@Override
public final void receivedIQ(final IQ iq) {
    checkNotNull(iq);//w ww.  ja v a 2s . co m
    log.finest("Received iq: " + iq.toString());
    if (iq.isRequest()) {
        Futures.addCallback(handleIQ(iq), new FutureCallback<IQ>() {

            @Override
            public void onSuccess(IQ result) {
                send(result);
            }

            @Override
            public void onFailure(Throwable t) {
                // TODO: send an error
            }
        });
    } else if (iq.isResponse()) {
        final SettableFuture<IQ> future = futureHandlers.remove(iq.getId());
        if (future == null) {
            log.warning("No handler for ID " + iq.getId());
            return;
        }

        if (iq.getType() == IQ.Type.result) {
            future.set(iq);
        } else if (iq.getType() == IQ.Type.error) {
            future.setException(new Exception("Error IQ: " + iq.toString()));
        }
    } else {
        log.warning("IQ not request or response");
    }
}

From source file:org.apache.qpid.server.security.auth.manager.AbstractAuthenticationManager.java

private ListenableFuture<Void> performDelete() {
    final SettableFuture<Void> futureResult = SettableFuture.create();
    addFutureCallback(closeAsync(), new FutureCallback<Void>() {
        @Override//from   ww w  . j av  a 2 s  . com
        public void onSuccess(final Void result) {
            try {
                tidyUp();
                futureResult.set(null);
            } catch (Exception e) {
                futureResult.setException(e);
            }
        }

        @Override
        public void onFailure(final Throwable t) {
            try {
                tidyUp();
            } finally {
                futureResult.setException(t);
            }
        }

        private void tidyUp() {
            deleted();
            setState(State.DELETED);
            _eventLogger.message(AuthenticationProviderMessages.DELETE(getName()));
        }
    }, getTaskExecutor());

    return futureResult;
}

From source file:es.udc.pfc.gameroom.GameComponent.java

public final ListenableFuture<Room> newRoom(final String type) {
    final SettableFuture<Room> future = SettableFuture.create();
    Futures.addCallback(getUniqueRoomName(), new FutureCallback<String>() {
        @Override/*from ww w.  j  ava 2  s  . c  o  m*/
        public void onSuccess(String roomID) {
            if (roomID == null) {
                log.severe("Error requesting unique room name");
                future.setException(new Exception("Error requesting unique room name"));
                return;
            }

            final Room newRoom;

            if (type.equals("minichess")) {
                newRoom = new MiniChessRoom(GameComponent.this, JID.jid(getMUCServiceName(), roomID, null));
            } else {
                log.severe("Unknown game type " + type);
                future.setException(new Exception("Unknown game type " + type));
                return;
            }

            rooms.put(roomID, newRoom);

            newRoom.joinRoom();
            newRoom.configureRoom();

            future.set(newRoom);
        }

        @Override
        public void onFailure(Throwable t) {
            future.setException(t);
        }
    });

    return future;
}

From source file:com.microsoft.services.sharepoint.SharePointClient.java

public ListenableFuture<JSONObject> getUserByID(String id) {
    final SettableFuture<JSONObject> result = SettableFuture.create();

    ListenableFuture<JSONObject> request = executeRequestJson(mServerUrl + "_api/web/getuserbyid(" + id + ")",
            "GET");

    Futures.addCallback(request, new FutureCallback<JSONObject>() {
        @Override/* w w w  . j  a v a 2s  . co m*/
        public void onFailure(Throwable t) {
            result.setException(t);
        }

        @Override
        public void onSuccess(JSONObject json) {
            result.set(json);
        }
    });
    return result;
}

From source file:org.robotninjas.protobuf.netty.client.NettyRpcChannel.java

private ListenableFuture<Message> doCallMethod(MethodDescriptor method, final RpcController controller,
        Message request, final Message responsePrototype, boolean blocking) {

    ListenableFuture<NettyRpcProto.RpcResponse> result = new RpcCall(buildRequest(blocking, method, request));
    channel.writeAndFlush(result);//from   w  ww .  j av  a  2 s. co m
    return Futures.transform(result, new AsyncFunction<NettyRpcProto.RpcResponse, Message>() {
        public ListenableFuture<Message> apply(NettyRpcProto.RpcResponse input) {
            SettableFuture<Message> response = SettableFuture.create();
            try {
                final Message.Builder builder = responsePrototype.newBuilderForType();
                Message result = builder.mergeFrom(input.getResponseMessage()).build();
                response.set(result);
            } catch (InvalidProtocolBufferException e) {
                controller.setFailed(nullToEmpty(e.getMessage()));
                response.setException(e);
            }
            return response;
        }
    });

}

From source file:com.microsoft.windowsazure.mobileservices.table.sync.MobileServiceSyncTable.java

/**
 * Performs a query against the remote table and stores results.
 *
 * @param query    an optional query to filter results
 * @param queryKey key to identify the query
 * @return A ListenableFuture that is done when results have been pulled.
 *//* w w  w.j  a v a 2  s .co m*/
public ListenableFuture<Void> pull(Query query, String queryId) {
    ListenableFuture<Void> pull = this.mInternalTable.pull(query, queryId);

    final SettableFuture<Void> result = SettableFuture.create();

    Futures.addCallback(pull, new FutureCallback<Void>() {

        @Override
        public void onFailure(Throwable throwable) {
            result.setException(throwable);
        }

        @Override
        public void onSuccess(Void value) {
            result.set(value);
        }
    });

    return result;
}

From source file:co.paralleluniverse.jersey.connector.JettyConnector.java

@Override
public Future<?> apply(final ClientRequest jerseyRequest, final AsyncConnectorCallback callback) {
    final Request jettyRequest = translateRequest(jerseyRequest);
    final ContentProvider entity = getStreamProvider(jerseyRequest);
    if (entity != null) {
        jettyRequest.content(entity);//from  ww w  .  ja  v  a 2s  .  c  o  m
    }

    final Throwable[] failure = new Throwable[1];
    final ClientResponse[] jerseyResponse = new ClientResponse[1];
    try {
        buildAsyncRequest(jettyRequest).send(new Response.Listener.Adapter() {

            @Override
            public void onContent(Response jettyResponse, ByteBuffer content) {
                jerseyResponse[0] = translateResponse(jerseyRequest, jettyResponse, content);
                callback.response(jerseyResponse[0]);
            }

            @Override
            public void onFailure(Response response, Throwable t) {
                failure[0] = t;
                callback.failure(t);
            }
        });
        return Futures.immediateFuture(jerseyResponse[0]);
    } catch (Throwable t) {
        failure[0] = t;
        callback.failure(t);
    }
    final SettableFuture<Object> errorFuture = SettableFuture.create();
    errorFuture.setException(failure[0]);
    return errorFuture;
}

From source file:org.whispersystems.websocket.WebSocketClient.java

public ListenableFuture<WebSocketResponseMessage> sendRequest(String verb, String path, Optional<byte[]> body) {
    long requestId = generateRequestId();
    SettableFuture<WebSocketResponseMessage> future = SettableFuture.create();

    pendingRequestMapper.put(requestId, future);

    WebSocketMessage requestMessage = messageFactory.createRequest(Optional.of(requestId), verb, path, body);

    try {//  ww w .j av a 2 s  .com
        remoteEndpoint.sendBytes(ByteBuffer.wrap(requestMessage.toByteArray()));
    } catch (IOException | WebSocketException e) {
        logger.debug("Write", e);
        pendingRequestMapper.remove(requestId);
        future.setException(e);
    }

    return future;
}