private void checkSystemMetadataAndPutIfPresentReplaceStrategy(AtmosObject object) throws Exception { long time = System.currentTimeMillis(); boolean update = true; try { connection.getSystemMetadata(privateDirectory + "/object"); } catch (KeyNotFoundException ex) { update = false; } try { if (update) connection.updateFile(privateDirectory, object); else connection.createFile(privateDirectory, object); System.err.printf( "%s %s; %dms%n", update ? "updated" : "created", object.getData() instanceof InputStream ? "stream" : "string", System.currentTimeMillis() - time); } catch (Exception e) { String message = (e.getCause().getCause() != null) ? e.getCause().getCause().getMessage() : e.getCause().getMessage(); System.err.printf( "failure %s %s; %dms: [%s]%n", update ? "updating" : "creating", object.getData() instanceof InputStream ? "stream" : "string", System.currentTimeMillis() - time, message); throw e; } }
private static void verifyObject( AtmosStorageClient connection, String path, String compare, String metadataValue) throws InterruptedException, ExecutionException, TimeoutException, IOException { AtmosObject getBlob = connection.readFile(path); assertEquals( getBlob.getData() instanceof String ? getBlob.getData() : IOUtils.toString((InputStream) getBlob.getData()), compare); verifyMetadata(metadataValue, getBlob); }
private void alwaysDeleteFirstReplaceStrategy(AtmosObject object) throws Exception { deleteConfirmed(privateDirectory + "/" + object.getContentMetadata().getName()); long time = System.currentTimeMillis(); try { connection.createFile(privateDirectory, object); System.err.printf( "%s %s; %dms%n", "created", object.getData() instanceof InputStream ? "stream" : "string", System.currentTimeMillis() - time); } catch (Exception e) { String message = (e.getCause().getCause() != null) ? e.getCause().getCause().getMessage() : e.getCause().getMessage(); System.err.printf( "failure %s %s; %dms: [%s]%n", "creating", object.getData() instanceof InputStream ? "stream" : "string", System.currentTimeMillis() - time, message); throw e; } }
protected void retryAndCheckSystemMetadataAndPutIfPresentReplaceStrategy(AtmosObject object) throws Exception { int failures = 0; while (true) { try { checkSystemMetadataAndPutIfPresentReplaceStrategy(object); break; } catch (ExecutionException e1) { // bug if (!(e1.getCause() instanceof KeyAlreadyExistsException)) throw e1; else failures++; } } if (failures > 0) System.err.printf( "%d failures create/replacing %s%n", failures, object.getData() instanceof InputStream ? "stream" : "string"); }