private void updateProperties(Topic topic, ForumActivityContext ctx) { PropertyChangeSupport newPcs = new PropertyChangeSupport(topic); PropertyChangeSupport pcs = topic.getPcs(); // Topic.TOPIC_NAME if (pcs.hasPropertyName(Topic.TOPIC_NAME)) { newPcs.addPropertyChange(pcs.getPropertyChange(Topic.TOPIC_NAME)); } // Topic.TOPIC_CONTENT if (pcs.hasPropertyName(Topic.TOPIC_CONTENT)) { newPcs.addPropertyChange(pcs.getPropertyChange(Topic.TOPIC_CONTENT)); } if (newPcs.getChangeEvents().length > 1) { ctx.setPcs(newPcs); // 1. executes task TopicActivityTask task = TopicActivityTask.UPDATE_TOPIC_PROPERTIES; ctx = ForumActivityUtils.processBBCode(ctx); ActivityExecutor.execute(task, ctx); // 2. remove events pcs.removePropertyChange(Topic.TOPIC_NAME); pcs.removePropertyChange(Topic.TOPIC_CONTENT); } }