@Override public void rename(final String source, final String dest) throws IOException { ofy().execute(TxnType.REQUIRES_NEW, (Work<Void>) () -> { Segment sourceSegment = ofy().load().key(newSegmentKey(source)).now(); Segment destSegment = copySegment(sourceSegment); destSegment.name = dest; Key<Segment> destSegmentKey = ofy().save().entity(destSegment).now(); final long hunkCount = sourceSegment.hunkCount; for (int i = 0; i < hunkCount; i++) { SegmentHunk hunk = sourceSegment.getHunk(i); SegmentHunk destHunk = copySegmentHunk(hunk); destHunk.segment = destSegmentKey; ofy().save().entity(destHunk); } deleteFile(source); return null; }); } /*