Example usage for com.google.common.io Closer rethrow

List of usage examples for com.google.common.io Closer rethrow

Introduction

In this page you can find the example usage for com.google.common.io Closer rethrow.

Prototype

public RuntimeException rethrow(Throwable e) throws IOException 

Source Link

Document

Stores the given throwable and rethrows it.

Usage

From source file:com.spotify.docker.client.DefaultLogStream.java

public void attach(final OutputStream stdout, final OutputStream stderr, boolean closeAtEof)
        throws IOException {
    final Closer closer = Closer.create();
    try {// ww  w . j  av a2  s .  co m
        if (closeAtEof) {
            closer.register(stdout);
            closer.register(stderr);
        }

        while (this.hasNext()) {
            final LogMessage message = this.next();
            final ByteBuffer content = message.content();

            switch (message.stream()) {
            case STDOUT:
                writeAndFlush(content, stdout);
                break;
            case STDERR:
                writeAndFlush(content, stderr);
                break;
            case STDIN:
            default:
                break;
            }
        }
    } catch (Throwable t) {
        throw closer.rethrow(t);
    } finally {
        closer.close();
    }
}

From source file:com.netflix.servo.publish.FileMetricObserver.java

/** {@inheritDoc} */
public void updateImpl(List<Metric> metrics) {
    Preconditions.checkNotNull(metrics);
    File file = new File(dir, fileFormat.format(new Date(clock.now())));
    Closer closer = Closer.create();
    Writer out = null;//from   w  ww.ja va 2s .c  o m
    try {
        try {
            LOGGER.debug("writing {} metrics to file {}", metrics.size(), file);
            OutputStream fileOut = new FileOutputStream(file, true);
            if (compress) {
                fileOut = new GZIPOutputStream(fileOut);
            }
            out = closer.register(new OutputStreamWriter(fileOut, "UTF-8"));
            for (Metric m : metrics) {
                out.append(m.getConfig().getName()).append('\t').append(m.getConfig().getTags().toString())
                        .append('\t').append(m.getValue().toString()).append('\n');
            }
        } catch (Throwable t) {
            throw closer.rethrow(t);
        } finally {
            closer.close();
        }
    } catch (IOException e) {
        incrementFailedCount();
        LOGGER.error("failed to write update to file " + file, e);
    }
}

From source file:org.apache.jackrabbit.oak.run.RepairCommand.java

@Override
public void execute(String... args) throws Exception {
    Closer closer = Closer.create();
    String h = "repair mongodb://host:port/database path";
    try {//  w w w.ja  va  2  s  .  c  o  m
        NodeStore store = Utils.bootstrapNodeStore(args, closer, h);
        if (!(store instanceof DocumentNodeStore)) {
            System.err.println("Repair only available for DocumentNodeStore");
            System.exit(1);
        }
        DocumentNodeStore dns = (DocumentNodeStore) store;
        if (!(dns.getDocumentStore() instanceof MongoDocumentStore)) {
            System.err.println("Repair only available for MongoDocumentStore");
            System.exit(1);
        }
        MongoDocumentStore docStore = (MongoDocumentStore) dns.getDocumentStore();

        String path = args[args.length - 1];
        MongoDocumentStoreHelper.repair(docStore, path);
    } catch (Throwable e) {
        throw closer.rethrow(e);
    } finally {
        closer.close();
    }
}

From source file:fr.techcode.downloadix.net.SimpleDownloadRequest.java

/**
 * Logic/*from ww  w .  j a va 2s .c o  m*/
 */
@Override
public void run() {
    // Check if this request is cancelled
    if (isCancelled() && fireEvent(new DownloadCancelEvent()).isCancelled()) {
        cancel();
        return;
    }

    // Check if already up to date
    start();
    if (hasValidator() && getValidator().isValid(getDestination())) {
        success();
        return;
    }

    // Ensure that all parents directory exist
    File parent = getDestination().getParentFile();
    if (!parent.exists() && !parent.mkdirs()) {
        error();
        return;
    }

    // Download this file
    Closer closer = Closer.create();
    try {
        try {
            FileOutputStream out = closer.register(new FileOutputStream(getDestination()));
            FileChannel channel = closer.register(out.getChannel());

            // Get connection & file size
            this.channel = channel;
            URLConnection conn = getAddress().openConnection();
            int size = conn.getContentLength();

            // Download
            fireEvent(new DownloadStartEvent(size));
            channel.transferFrom(new ReadableChannel(Channels.newChannel(conn.getInputStream()), size), 0,
                    Long.MAX_VALUE);
        } catch (Throwable throwable) {
            throw closer.rethrow(throwable);
        } finally {
            closer.close();
        }
    } catch (IOException ex) {
        if (hasRetry()) {
            nextRetry();
        } else {
            error();
        }
        return;
    }

    // Check if already up to date
    if (hasValidator() && !getValidator().isValid(getDestination())) {
        if (hasRetry()) {
            nextRetry();
        } else {
            error();
        }
    } else {
        // Download completed
        success();
    }
}

From source file:se.sics.caracaldb.store.CleanupReq.java

@Override
public StorageResponse execute(Persistence store) throws IOException {
    long size = 0;
    long keys = 0;

    Closer closer = Closer.create();
    Batch b;// w  w  w. jav a 2s  .  c  o m
    try {
        byte[] begin = range.begin.getArray();
        b = closer.register(store.createBatch());
        for (StoreIterator it = closer.register(store.iterator(begin)); it.hasNext(); it.next()) {
            byte[] key = it.peekKey();
            if (range.contains(key)) {
                int l = b.deleteVersions(key, versionId);
                if (l > 0) {
                    keys++;
                    size += key.length;
                    size += l;
                }
            } else {
                //special case (a,b) and key is a
                if (Key.compare(begin, key) != 0) {
                    break; // reached end of range
                }
            }
        }
        store.writeBatch(b);
    } catch (Throwable e) {
        closer.rethrow(e);
    } finally {
        closer.close();
    }
    return new SizeResp(this, new Diff(size, keys, true));
}

From source file:com.googlecode.jmxtrans.model.output.Slf4JOutputWriter.java

private void logValue(Server server, Query query, List<String> typeNames, Result result,
        Map.Entry<String, Object> values) throws IOException {
    Object value = values.getValue();

    if (value != null && isNumeric(value)) {
        Closer closer = Closer.create();
        try {/*w  ww  . j  a va  2  s  .c  o  m*/
            closer.register(MDC.putCloseable("server", computeAlias(server)));
            closer.register(MDC.putCloseable("metric",
                    KeyUtils.getKeyString(server, query, result, values, typeNames, null)));
            closer.register(MDC.putCloseable("value", value.toString()));
            if (result.getKeyAlias() != null) {
                closer.register(MDC.putCloseable("resultAlias", result.getKeyAlias()));
            }
            closer.register(MDC.putCloseable("attributeName", result.getAttributeName()));
            closer.register(MDC.putCloseable("key", values.getKey()));
            closer.register(MDC.putCloseable("epoch", valueOf(result.getEpoch())));

            logger.info("");
        } catch (Throwable t) {
            throw closer.rethrow(t);
        } finally {
            closer.close();
        }
    }
}

From source file:org.apache.jackrabbit.oak.run.ResetClusterIdCommand.java

@Override
public void execute(String... args) throws Exception {
    OptionParser parser = new OptionParser();
    OptionSpec segmentTar = parser.accepts("segment-tar", "Use oak-segment-tar instead of oak-segment");
    OptionSet options = parser.parse(args);

    if (options.nonOptionArguments().isEmpty()) {
        System.out.println("usage: resetclusterid {<path>|<mongo-uri>}");
        System.exit(1);//  w ww.  ja v a  2s  . c o m
    }

    String source = options.nonOptionArguments().get(0).toString();

    Closer closer = Closer.create();
    try {
        NodeStore store;
        if (args[0].startsWith(MongoURI.MONGODB_PREFIX)) {
            MongoClientURI uri = new MongoClientURI(source);
            MongoClient client = new MongoClient(uri);
            final DocumentNodeStore dns = new DocumentMK.Builder().setMongoDB(client.getDB(uri.getDatabase()))
                    .getNodeStore();
            closer.register(Utils.asCloseable(dns));
            store = dns;
        } else if (options.has(segmentTar)) {
            store = SegmentTarUtils.bootstrapNodeStore(source, closer);
        } else {
            FileStore fs = openFileStore(source);
            closer.register(Utils.asCloseable(fs));
            store = SegmentNodeStore.builder(fs).build();
        }

        deleteClusterId(store);
    } catch (Throwable e) {
        throw closer.rethrow(e);
    } finally {
        closer.close();
    }

}

From source file:com.googlecode.jmxtrans.model.output.kafka.KafkaWriter.java

private String createJsonMessage(Server server, Query query, List<String> typeNames, Result result,
        Entry<String, Object> values, Object value) throws IOException {
    String keyString = getKeyString(server, query, result, values, typeNames, this.rootPrefix);
    String cleanKeyString = keyString.replaceAll("[()]", "_");

    Closer closer = Closer.create();
    try {//from ww  w . j a  v a 2 s. c om
        ByteArrayOutputStream out = closer.register(new ByteArrayOutputStream());
        JsonGenerator generator = closer.register(jsonFactory.createGenerator(out, UTF8));
        generator.writeStartObject();
        generator.writeStringField("keyspace", cleanKeyString);
        generator.writeStringField("value", value.toString());
        generator.writeNumberField("timestamp", result.getEpoch() / 1000);
        generator.writeObjectFieldStart("tags");

        for (Entry<String, String> tag : this.tags.entrySet()) {
            generator.writeStringField(tag.getKey(), tag.getValue());
        }

        generator.writeEndObject();
        generator.writeEndObject();
        generator.close();
        return out.toString("UTF-8");
    } catch (Throwable t) {
        throw closer.rethrow(t);
    } finally {
        closer.close();
    }
}

From source file:org.jclouds.vsphere.suppliers.VSphereLocationSupplier.java

private Set<? extends Location> getClusters() {
    Set<Location> hosts = Sets.newHashSet();
    Closer closer = Closer.create();
    VSphereServiceInstance instance = serviceInstance.get();
    closer.register(instance);//from w w w . j  a v  a 2 s  . com
    try {
        try {

            ManagedEntity[] clusterEntities = new InventoryNavigator(instance.getInstance().getRootFolder())
                    .searchManagedEntities("ClusterComputeResource");

            for (ManagedEntity cluster : clusterEntities) {
                Location location = new LocationImpl(LocationScope.ZONE, cluster.getName(), cluster.getName(),
                        null, ImmutableSet.of(""), Maps.<String, Object>newHashMap());
                hosts.add(location);
            }

            hosts.add(new LocationImpl(LocationScope.ZONE, "default", "default", null, ImmutableSet.of(""),
                    Maps.<String, Object>newHashMap()));

            return hosts;
        } catch (Exception e) {
            logger.error("Problem in finding a valid cluster", e);
            closer.rethrow(e);
        } finally {
            closer.close();
        }
    } catch (IOException e) {
        logger.error(e.getMessage(), e);
    }

    return hosts;
}

From source file:org.glowroot.agent.live.ClasspathCache.java

@GuardedBy("this")
private void loadClassNamesFromJarFile(File jarFile, Location location,
        Multimap<String, Location> newClassNameLocations) throws IOException {
    Closer closer = Closer.create();
    try {// w  w  w  .jav a2 s  .c o  m
        InputStream in = closer.register(new FileInputStream(jarFile));
        JarInputStream jarIn = closer.register(new JarInputStream(in));
        loadClassNamesFromManifestClassPath(jarIn, jarFile, newClassNameLocations);
        loadClassNamesFromJarInputStream(jarIn, "", location, newClassNameLocations);
    } catch (Throwable t) {
        throw closer.rethrow(t);
    } finally {
        closer.close();
    }
}