Example usage for com.google.common.util.concurrent Futures immediateFailedFuture

List of usage examples for com.google.common.util.concurrent Futures immediateFailedFuture

Introduction

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

Prototype

@CheckReturnValue
public static <V> ListenableFuture<V> immediateFailedFuture(Throwable throwable) 

Source Link

Document

Returns a ListenableFuture which has an exception set immediately upon construction.

Usage

From source file:org.thingsboard.server.service.script.AbstractJsInvokeService.java

@Override
public ListenableFuture<Object> invokeFunction(UUID scriptId, Object... args) {
    String functionName = scriptIdToNameMap.get(scriptId);
    if (functionName == null) {
        return Futures.immediateFailedFuture(
                new RuntimeException("No compiled script found for scriptId: [" + scriptId + "]!"));
    }//w  w w.jav a 2  s  .com
    if (!isBlackListed(scriptId)) {
        return doInvokeFunction(scriptId, functionName, args);
    } else {
        return Futures.immediateFailedFuture(new RuntimeException(
                "Script is blacklisted due to maximum error count " + getMaxErrors() + "!"));
    }
}

From source file:com.google.wave.splash.rpc.WaveServiceAdapter.java

@Override
public ListenableFuture<Wavelet> fetchWavelet(WaveId waveId, WaveletId waveletId) {
    try {/*from   www  . j a v  a2  s. c om*/
        return Futures.immediateFuture(waveService.fetchWavelet(waveId, waveletId, rpcEndpoint));
    } catch (IOException e) {
        return Futures.immediateFailedFuture(e);
    }
}

From source file:com.sk89q.worldguard.protection.databases.AbstractProtectionDatabase.java

@Override
public ListenableFuture<?> save(RegionManager manager, boolean async) {
    setRegions(manager.getRegions());//from   w w w .j a  va 2  s .  com
    try {
        save();
    } catch (ProtectionDatabaseException e) {
        return Futures.immediateFailedFuture(e);
    }
    return Futures.immediateCheckedFuture(this);
}

From source file:org.thingsboard.rule.engine.util.EntitiesFieldsAsyncLoader.java

public static ListenableFuture<EntityFieldsData> findAsync(TbContext ctx, EntityId original) {
    switch (original.getEntityType()) {
    case TENANT:/*from   w  w  w .j av  a 2 s  .  c om*/
        return getAsync(ctx.getTenantService().findTenantByIdAsync(ctx.getTenantId(), (TenantId) original),
                EntityFieldsData::new);
    case CUSTOMER:
        return getAsync(
                ctx.getCustomerService().findCustomerByIdAsync(ctx.getTenantId(), (CustomerId) original),
                EntityFieldsData::new);
    case USER:
        return getAsync(ctx.getUserService().findUserByIdAsync(ctx.getTenantId(), (UserId) original),
                EntityFieldsData::new);
    case ASSET:
        return getAsync(ctx.getAssetService().findAssetByIdAsync(ctx.getTenantId(), (AssetId) original),
                EntityFieldsData::new);
    case DEVICE:
        return getAsync(ctx.getDeviceService().findDeviceByIdAsync(ctx.getTenantId(), (DeviceId) original),
                EntityFieldsData::new);
    case ALARM:
        return getAsync(ctx.getAlarmService().findAlarmByIdAsync(ctx.getTenantId(), (AlarmId) original),
                EntityFieldsData::new);
    case RULE_CHAIN:
        return getAsync(
                ctx.getRuleChainService().findRuleChainByIdAsync(ctx.getTenantId(), (RuleChainId) original),
                EntityFieldsData::new);
    default:
        return Futures.immediateFailedFuture(new TbNodeException("Unexpected original EntityType " + original));
    }
}

From source file:zipkin.storage.elasticsearch.ElasticsearchSpanConsumer.java

@Override
public ListenableFuture<Void> accept(List<Span> spans) {
    if (spans.isEmpty())
        return VOID;
    try {//from  w  w  w.j  a v a2s .c  o  m
        return indexSpans(client.bulkSpanIndexer(), spans).execute();
    } catch (Exception e) {
        return Futures.immediateFailedFuture(e);
    }
}

From source file:zipkin.collector.scribe.ScribeSpanConsumer.java

@Override
public ListenableFuture<ResultCode> log(List<LogEntry> messages) {
    metrics.incrementMessages();//from   w  w w  .j a  v  a2  s.c o  m
    List<byte[]> thrifts;
    try {
        thrifts = messages.stream().filter(m -> m.category.equals(category))
                .map(m -> m.message.getBytes(StandardCharsets.ISO_8859_1))
                .map(b -> Base64.getMimeDecoder().decode(b)) // finagle-zipkin uses mime encoding
                .collect(Collectors.toList());
    } catch (RuntimeException e) {
        metrics.incrementMessagesDropped();
        return Futures.immediateFailedFuture(e);
    }

    SettableFuture<ResultCode> result = SettableFuture.create();
    collector.acceptSpans(thrifts, Codec.THRIFT, new Callback<Void>() {
        @Override
        public void onSuccess(@Nullable Void value) {
            result.set(ResultCode.OK);
        }

        @Override
        public void onError(Throwable t) {
            result.setException(t);
        }
    });
    return result;
}

From source file:org.thingsboard.server.dao.nosql.RateLimitedResultSetFuture.java

public RateLimitedResultSetFuture(Session session, AsyncRateLimiter rateLimiter, Statement statement) {
    this.rateLimitFuture = Futures.catchingAsync(rateLimiter.acquireAsync(), Throwable.class, t -> {
        if (!(t instanceof BufferLimitException)) {
            rateLimiter.release();//from   w w  w. j av  a 2s .c  o  m
        }
        return Futures.immediateFailedFuture(t);
    });
    this.originalFuture = Futures.transform(rateLimitFuture,
            i -> executeAsyncWithRelease(rateLimiter, session, statement));

}

From source file:com.orangerhymelabs.helenus.cassandra.database.DatabaseService.java

public ListenableFuture<Database> create(Database database) {
    try {/*from   w ww.  j  av  a 2  s .c  o  m*/
        ValidationEngine.validateAndThrow(database);
        return databases.create(database);
    } catch (ValidationException e) {
        return Futures.immediateFailedFuture(e);
    }
}

From source file:com.spotify.folsom.FakeRawMemcacheClient.java

@Override
public <T> ListenableFuture<T> send(Request<T> request) {
    if (!connected) {
        return Futures.immediateFailedFuture(new MemcacheClosedException("Disconnected"));
    }/* w w  w  .  ja v a2 s.c  o m*/

    if (request instanceof SetRequest) {
        map.put(ByteBuffer.wrap(request.getKey()), ((SetRequest) request).getValue());
        return (ListenableFuture<T>) Futures.<MemcacheStatus>immediateFuture(MemcacheStatus.OK);
    }

    if (request instanceof GetRequest) {
        byte[] value = map.get(ByteBuffer.wrap(request.getKey()));
        if (value == null) {
            return (ListenableFuture<T>) Futures.immediateFuture(null);
        }
        return (ListenableFuture<T>) Futures.immediateFuture(GetResult.success(value, 0L));
    }

    if (request instanceof MultiRequest) {
        List<GetResult<byte[]>> result = Lists.newArrayList();
        MultiRequest<?> multiRequest = (MultiRequest<?>) request;
        for (byte[] key : multiRequest.getKeys()) {
            byte[] value = map.get(ByteBuffer.wrap(key));
            if (value != null) {
                result.add(GetResult.success(value, 0));
            } else {
                result.add(null);
            }
        }
        return (ListenableFuture<T>) Futures.<List<GetResult<byte[]>>>immediateFuture(result);
    }

    // Don't actually do anything here
    if (request instanceof TouchRequest) {
        return (ListenableFuture<T>) Futures.<MemcacheStatus>immediateFuture(MemcacheStatus.OK);
    }

    if (request instanceof IncrRequest) {
        IncrRequest incrRequest = (IncrRequest) request;
        byte[] key = request.getKey();
        byte[] value = map.get(ByteBuffer.wrap(key));
        if (value == null) {
            return (ListenableFuture<T>) Futures.<Long>immediateFuture(null);
        }
        long longValue = Long.parseLong(new String(value));
        long newValue = longValue + incrRequest.multiplier() * incrRequest.getBy();
        map.put(ByteBuffer.wrap(key), Long.toString(newValue).getBytes());
        return (ListenableFuture<T>) Futures.<Long>immediateFuture(newValue);
    }

    if (request instanceof DeleteRequest) {
        map.remove(ByteBuffer.wrap(request.getKey()));
        return (ListenableFuture<T>) Futures.<MemcacheStatus>immediateFuture(MemcacheStatus.OK);
    }

    throw new RuntimeException("Unsupported operation: " + request.getClass());
}

From source file:co.cask.cdap.internal.pipeline.SynchronousPipeline.java

/**
 * Executes a pipeline in synchronous mode.
 * <p>//from w  ww. j  av a2  s. com
 * Waits for the results of previous to be available to move to next
 * stage of processing.
 * </p>
 *
 * @param o argument to run the pipeline.
 */
@SuppressWarnings("unchecked")
@Override
public ListenableFuture<T> execute(Object o) {
    Context ctx = new StageContext(o);
    try {
        for (Stage stage : getStages()) {
            stage.process(ctx);
            // Output of previous stage is input to next stage
            ctx = new StageContext(ctx.getDownStream());
        }
        return Futures.immediateFuture((T) ctx.getUpStream());
    } catch (Throwable th) {
        return Futures.immediateFailedFuture(th);
    } finally {
        Stage finalStage = getFinalStage();
        if (finalStage != null) {
            try {
                finalStage.process(ctx);
            } catch (Throwable t) {
                LOG.warn("Exception thrown when executing final stage {}", finalStage, t);
            }
        }
    }
}