Index: lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java =================================================================== diff -u -r7132eb1ddde7a0b43e940678735cfd3eed63f60c -rd7ecd4ec0bd29174cd2385a51e3d276db8a3f7e9 --- lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java (.../ObjectExtractor.java) (revision 7132eb1ddde7a0b43e940678735cfd3eed63f60c) +++ lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java (.../ObjectExtractor.java) (revision d7ecd4ec0bd29174cd2385a51e3d276db8a3f7e9) @@ -1233,10 +1233,12 @@ private void buildScheduleGateActivity(ScheduleGateActivity activity, ObjectNode activityDetails) { activity.setGateStartTimeOffset(JsonUtil.optLong(activityDetails, AuthoringJsonTags.GATE_START_OFFSET)); activity.setGateEndTimeOffset(JsonUtil.optLong(activityDetails, AuthoringJsonTags.GATE_END_OFFSET)); - activity.setGateActivityCompletionBased( - JsonUtil.optBoolean(activityDetails, AuthoringJsonTags.GATE_ACTIVITY_COMPLETION_BASED)); - SystemTool systemTool = getSystemTool(SystemTool.SCHEDULE_GATE); - activity.setSystemTool(systemTool); + activity.setSystemTool(getSystemTool(SystemTool.SCHEDULE_GATE)); + + Boolean isGateActivityCompletionBased = JsonUtil.optBoolean(activityDetails, AuthoringJsonTags.GATE_ACTIVITY_COMPLETION_BASED); + //check the previous activity is available as well + isGateActivityCompletionBased &= activity.getTransitionTo() != null; + activity.setGateActivityCompletionBased(isGateActivityCompletionBased); } private void createLessonClass(LessonClass lessonClass, ObjectNode groupingDetails) { Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/strategy/ScheduleGateActivityStrategy.java =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -rd7ecd4ec0bd29174cd2385a51e3d276db8a3f7e9 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/strategy/ScheduleGateActivityStrategy.java (.../ScheduleGateActivityStrategy.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/strategy/ScheduleGateActivityStrategy.java (.../ScheduleGateActivityStrategy.java) (revision d7ecd4ec0bd29174cd2385a51e3d276db8a3f7e9) @@ -39,11 +39,10 @@ * will be overiding the methods that defined in the abstract level. * * @author Jacky Fang - * @since 2005-4-6 - * @version 1.1 - * */ public class ScheduleGateActivityStrategy extends GateActivityStrategy { + private static final long serialVersionUID = -6702911163273937832L; + public ScheduleGateActivityStrategy(GateActivity gateActivity) { super(gateActivity); } @@ -91,7 +90,6 @@ return super.shouldOpenGateFor(learner, expectedLearnerCount, waitingLearnerCount); } - @SuppressWarnings({ "unchecked" }) public static Date getPreviousActivityCompletionDate(ScheduleGateActivity scheduleGate, User learner) { Activity previousActivity = scheduleGate.getTransitionTo().getFromActivity(); if (previousActivity != null) {