@Override
    public Path touch(final Path file, final TransferStatus status) throws BackgroundException {
        try {
            if(!session.getClient().existsAndIsAccessible(file.getParent().getAbsolute())) {
                session.getClient().putDirectory(file.getParent().getAbsolute());
            }
            final MantaObjectResponse response = session.getClient().put(file.getAbsolute(), new byte[0]);
            return file.withAttributes(new MantaObjectAttributeAdapter(session).toAttributes(response));
        }
        catch(MantaException e) {
            throw new MantaExceptionMappingService().map("Cannot create {0}", e, file);
        }
        catch(MantaClientHttpResponseException e) {
            throw new MantaHttpExceptionMappingService().map("Cannot create {0}", e, file);
        }
        catch(IOException e) {
            throw new DefaultIOExceptionMappingService().map("Cannot create {0}", e, file);
        }
    }
@Test
    public void testWhitespaceTouch() throws Exception {
        final RandomStringService randomStringService = new AlphanumericRandomStringService();
        final Path file = new Path(
            testPathPrefix,
            String.format("%s %s", randomStringService.random(), randomStringService.random()),
            EnumSet.of(Path.Type.file));
        new MantaTouchFeature(session).touch(file, new TransferStatus().withMime("x-application/cyberduck"));
        assertNotNull(new MantaAttributesFinderFeature(session).find(file));
        new MantaDeleteFeature(session).delete(Collections.singletonList(file), new DisabledLoginCallback(), new Delete.DisabledCallback());
    }