@Override @Transactional( readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Exception.class) public CollectionItem createQuestion(String collectionId, String data, User user) { Collection collection = getCollectionDao().getCollectionByType(collectionId, COLLECTION_TYPES); rejectIfNull(collection, GL0056, 404, COLLECTION); AssessmentQuestion question = getQuestionService().createQuestion(data, user); CollectionItem collectionItem = new CollectionItem(); collectionItem.setItemType(ADDED); collectionItem = createCollectionItem(collectionItem, collection, question, user); getCollectionEventLog() .collectionItemEventLog( collectionId, collectionItem, user.getPartyUid(), QUESTION, data, ADD); collectionItem.setQuestion(question); collectionItem.setTitle(question.getTitle()); updateCollectionMetaDataSummary(collection.getContentId(), QUESTION, ADD); Map<String, Object> metaData = generateQuestionMetaData(question, question, user); createContentMeta(question, metaData); return collectionItem; }