@Override
    public TempFileSpace newSpace(final String subdirectoryPrefix) {
        // TODO: Accept only ISO 8601-style timestamp in the v0.10 series.
        if (!ISO8601_BASIC_PATTERN.matcher(subdirectoryPrefix).matches()) {
            logger.warn("TempFileSpaceAllocator#newSpace should be called with ISO 8601 basic format: {}", subdirectoryPrefix);
        }

        // It is originally intended to support multiple files/directories, but the reasons are missing.
        // https://github.com/embulk/embulk/commit/a7643573ecb39e6dd71a08edce77c8e64dc70a77
        // https://github.com/embulk/embulk/commit/5a78270a4fc20e3c113c68e4c0f6c66c1bd45886

        // UNIX/Linux cannot include '/' as file name.
        // Windows cannot include ':' as file name.
        try {
            return TempFileSpaceImpl.with(
                    this.tempDirectoryBase, "embulk" + subdirectoryPrefix.replace('/', '-').replace(':', '-'));
        } catch (final IOException ex) {
            throw new UncheckedIOException(ex);
        }
    }
@Test
    public void testNewSpaceWithNonIso8601Basic() {
        // TODO: Make it fail from the v0.10 series.
        final TempFileSpaceAllocator allocator = new SimpleTempFileSpaceAllocator();
        allocator.newSpace("2019-10-31 12:34:56 UTC");
    }