@Test public void testReadInterrupt() throws Exception { final Path drive = new MantaDirectoryFeature(session).mkdir(randomDirectory(), "", new TransferStatus()); final Path test = new Path(drive, new AlphanumericRandomStringService().random(), EnumSet.of(Path.Type.file)); new MantaTouchFeature(session).touch(test, new TransferStatus()); final TransferStatus status = new TransferStatus(); { final InputStream in = new MantaReadFeature(session).read(test, status, new DisabledConnectionCallback()); assertNotNull(in.read()); in.close(); } { final InputStream in = new MantaReadFeature(session).read(test, status, new DisabledConnectionCallback()); assertNotNull(in); in.close(); } final MantaDeleteFeature delete = new MantaDeleteFeature(session); delete.delete(Collections.singletonList(test), new DisabledLoginCallback(), new Delete.DisabledCallback()); }
@Override public InputStream read(final Path file, final TransferStatus status, final ConnectionCallback connectionCallback) throws BackgroundException { final MantaHttpHeaders headers = new MantaHttpHeaders(); try { try { if(status.isAppend()) { final HttpRange range = HttpRange.withStatus(status); headers.setByteRange(range.getStart(), range.getEnd() < 0 ? null : range.getEnd()); } return session.getClient().getAsInputStream(file.getAbsolute(), headers); } catch(UnsupportedOperationException e) { final MantaObject probablyEmptyFile = session.getClient().head(file.getAbsolute()); if(probablyEmptyFile.getContentLength() != 0) { throw new AccessDeniedException(); } return new NullInputStream(0L); } } catch(MantaException e) { throw new MantaExceptionMappingService().map("Download {0} failed", e, file); } catch(MantaClientHttpResponseException e) { throw new MantaHttpExceptionMappingService().map("Download {0} failed", e, file); } catch(IOException e) { throw new DefaultIOExceptionMappingService().map("Download {0} failed", e, file); } }
MantaReadFeature implements Read { @Override public InputStream read(final Path file, final TransferStatus status, final ConnectionCallback connectionCallback) throws BackgroundException { final MantaHttpHeaders headers = new MantaHttpHeaders(); try { try { if(status.isAppend()) { final HttpRange range = HttpRange.withStatus(status); headers.setByteRange(range.getStart(), range.getEnd() < 0 ? null : range.getEnd()); } return session.getClient().getAsInputStream(file.getAbsolute(), headers); } catch(UnsupportedOperationException e) { final MantaObject probablyEmptyFile = session.getClient().head(file.getAbsolute()); if(probablyEmptyFile.getContentLength() != 0) { throw new AccessDeniedException(); } return new NullInputStream(0L); } } catch(MantaException e) { throw new MantaExceptionMappingService().map("Download {0} failed", e, file); } catch(MantaClientHttpResponseException e) { throw new MantaHttpExceptionMappingService().map("Download {0} failed", e, file); } catch(IOException e) { throw new DefaultIOExceptionMappingService().map("Download {0} failed", e, file); } } }
MantaReadFeature implements Read { @Override public InputStream read(final Path file, final TransferStatus status, final ConnectionCallback connectionCallback) throws BackgroundException { final MantaHttpHeaders headers = new MantaHttpHeaders(); try { try { if(status.isAppend()) { final HttpRange range = HttpRange.withStatus(status); headers.setByteRange(range.getStart(), range.getEnd() < 0 ? null : range.getEnd()); } return session.getClient().getAsInputStream(file.getAbsolute(), headers); } catch(UnsupportedOperationException e) { final MantaObject probablyEmptyFile = session.getClient().head(file.getAbsolute()); if(probablyEmptyFile.getContentLength() != 0) { throw new AccessDeniedException(); } return new NullInputStream(0L); } } catch(MantaException e) { throw new MantaExceptionMappingService().map("Download {0} failed", e, file); } catch(MantaClientHttpResponseException e) { throw new MantaHttpExceptionMappingService().map("Download {0} failed", e, file); } catch(IOException e) { throw new DefaultIOExceptionMappingService().map("Download {0} failed", e, file); } } MantaReadFeature(final MantaSession session); }
MantaReadFeature implements Read { @Override public InputStream read(final Path file, final TransferStatus status, final ConnectionCallback connectionCallback) throws BackgroundException { final MantaHttpHeaders headers = new MantaHttpHeaders(); try { try { if(status.isAppend()) { final HttpRange range = HttpRange.withStatus(status); headers.setByteRange(range.getStart(), range.getEnd() < 0 ? null : range.getEnd()); } return session.getClient().getAsInputStream(file.getAbsolute(), headers); } catch(UnsupportedOperationException e) { final MantaObject probablyEmptyFile = session.getClient().head(file.getAbsolute()); if(probablyEmptyFile.getContentLength() != 0) { throw new AccessDeniedException(); } return new NullInputStream(0L); } } catch(MantaException e) { throw new MantaExceptionMappingService().map("Download {0} failed", e, file); } catch(MantaClientHttpResponseException e) { throw new MantaHttpExceptionMappingService().map("Download {0} failed", e, file); } catch(IOException e) { throw new DefaultIOExceptionMappingService().map("Download {0} failed", e, file); } } MantaReadFeature(final MantaSession session); @Override InputStream read(final Path file, final TransferStatus status, final ConnectionCallback connectionCallback); @Override boolean offset(final Path file); }
MantaReadFeature implements Read { @Override public InputStream read(final Path file, final TransferStatus status, final ConnectionCallback connectionCallback) throws BackgroundException { final MantaHttpHeaders headers = new MantaHttpHeaders(); try { try { if(status.isAppend()) { final HttpRange range = HttpRange.withStatus(status); headers.setByteRange(range.getStart(), range.getEnd() < 0 ? null : range.getEnd()); } return session.getClient().getAsInputStream(file.getAbsolute(), headers); } catch(UnsupportedOperationException e) { final MantaObject probablyEmptyFile = session.getClient().head(file.getAbsolute()); if(probablyEmptyFile.getContentLength() != 0) { throw new AccessDeniedException(); } return new NullInputStream(0L); } } catch(MantaException e) { throw new MantaExceptionMappingService().map("Download {0} failed", e, file); } catch(MantaClientHttpResponseException e) { throw new MantaHttpExceptionMappingService().map("Download {0} failed", e, file); } catch(IOException e) { throw new DefaultIOExceptionMappingService().map("Download {0} failed", e, file); } } MantaReadFeature(final MantaSession session); @Override InputStream read(final Path file, final TransferStatus status, final ConnectionCallback connectionCallback); @Override boolean offset(final Path file);  }