// [C] Re-assemble the object from its uploaded file parts
try {
// explicit transaction control to avoid holding transaction during long file concatenation process
PersistContext.commitTransaction();
Tuple<String, Long> result = bucketAdapter.concatentateObjects( tupleBucketHost.getSecond(), bucket.getName(), itemFileName, ServiceProvider.getInstance().getMultipartDir(), parts, os );
response.setETag(result.getFirst());
response.setLastModified(DateHelper.toCalendar( tupleObjectItem.getSecond().getLastModifiedTime()));
SObjectItemDao itemDao = new SObjectItemDao();
SObjectItem item = itemDao.get( tupleObjectItem.getSecond().getId());