List of usage examples for com.google.common.io Closer rethrow
public RuntimeException rethrow(Throwable e) throws IOException
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(); } }