Index: lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java =================================================================== diff -u -ra025faab3c749cdf984d23d3ff43af98cfa68118 -r6f8b165d9fc95cce1c4365c2e7e46d7b93a3e3f4 --- lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java (.../AuthoringService.java) (revision a025faab3c749cdf984d23d3ff43af98cfa68118) +++ lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java (.../AuthoringService.java) (revision 6f8b165d9fc95cce1c4365c2e7e46d7b93a3e3f4) @@ -967,6 +967,15 @@ } newLearningDesign.getActivities().addAll(activities); + // On very rare occasions, we've had Hibernate try to save the branching entries before saving the branching activity + // which throws an exception as the branch_activity_id is null. So force any branching activities to save first. + // And yes, this IS a hack. (See LDEV-1786) + for ( Activity activity : activities) { + if ( activity.isBranchingActivity() ) { + activityDAO.insert(activity); + } + } + return newActivities; }