destinationObjectInfo.setBucketName(destinationBucket);
destinationObjectInfo.setObjectKey(destinationKey);
destinationObjectInfo.addGrants(userId, grantInfos, accessControlList);
destinationObjectInfo.setGrants(grantInfos);
destinationObjectInfo.setObjectName(destinationKey.replaceAll("/", "-") + Hashes.getRandom(4));
<BUG>dbObject.add(destinationObjectInfo);
} else {</BUG>
if (destinationObjectInfo.canWriteACP(userId)) {
List<GrantInfo> grantInfos = new ArrayList<GrantInfo>();
destinationObjectInfo.addGrants(userId, grantInfos, accessControlList);

destinationObjectInfo.setBucketName(destinationBucket);
destinationObjectInfo.setObjectKey(destinationKey);
destinationObjectInfo.addGrants(userId, grantInfos, accessControlList);
destinationObjectInfo.setGrants(grantInfos);
destinationObjectInfo.setObjectName(destinationKey.replaceAll("/", "-") + Hashes.getRandom(4));
addNew = true;
} else {
if (destinationObjectInfo.canWriteACP(userId)) {
List<GrantInfo> grantInfos = new ArrayList<GrantInfo>();
destinationObjectInfo.addGrants(userId, grantInfos, accessControlList);
