// @Transactional(TransactionPropagationType.REQUIRED) // @TransactionAttribute(TransactionAttributeType.REQUIRED) public void updateTextContentItem(ContentItemI item, Document content) { ContentItem _item = item.getDelegate(); TextContent tc = new TextContent(_item); tc.setXmlDocument(content); // To check if the content has changed, check whether both contents produce the same output for // the editor if (_item.getTextContent() != null && _item.getTextContent().getXmlString(true).equals(tc.getXmlString(true))) { log.error("!!!!!!!!!!!!!!!!! renderingPipeline fails"); return; // throw new TextContentNotChangedException("Could not create TextContentUpdate for an // unchanged text content"); } entityManager.persist(tc); // TODO: check whether content has changed and create version UpdateTextContentService utcs = (UpdateTextContentService) Component.getInstance("updateTextContentService"); if (content != null) { utcs.updateTextContent(_item, tc); } _item.setTextContent(tc); Events.instance().raiseEvent(KiWiEvents.ACTIVITY_EDITCONTENTITEM, currentUser, _item); Events.instance().raiseTransactionSuccessEvent(KiWiEvents.CONTENT_UPDATED, _item); }