Fix NPE in StudyCheckTask for study project with no user
authorValentina Kiryushkina <valentina.kiryushkina@jetbrains.com>
Wed, 22 Jun 2016 12:57:27 +0000 (15:57 +0300)
committerValentina Kiryushkina <valentina.kiryushkina@jetbrains.com>
Wed, 22 Jun 2016 13:01:36 +0000 (16:01 +0300)
python/educational-core/student/src/com/jetbrains/edu/learning/StudyTaskManager.java
python/educational-core/student/src/com/jetbrains/edu/learning/courseGeneration/StudyProjectGenerator.java

index 3dccfa46c3b36a92d708497a1ae55d3dcecfcdd3..8213a2bc47287644bf55595682786ef943c05199 100644 (file)
@@ -36,7 +36,7 @@ import java.util.Map;
 public class StudyTaskManager implements PersistentStateComponent<Element>, DumbAware {
   private static final Logger LOG = Logger.getInstance(StudyTaskManager.class);
   public static final int CURRENT_VERSION = 3;
-  private StepicUser myUser;
+  private StepicUser myUser = new StepicUser();
   private Course myCourse;
   public int VERSION = 3;
 
@@ -193,12 +193,13 @@ public class StudyTaskManager implements PersistentStateComponent<Element>, Dumb
   public void setTurnEditingMode(boolean turnEditingMode) {
     myTurnEditingMode = turnEditingMode;
   }
-
+  
+  @NotNull
   public StepicUser getUser() {
     return myUser;
   }
 
-  public void setUser(StepicUser user) {
+  public void setUser(@NotNull final StepicUser user) {
     myUser = user;
   }
 }
index 5f86fc96212c4acf5f260fceda0381dfecb9828d..9a6c848f2329d1033f52b1bef83a5d5b0d8ea7a2 100644 (file)
@@ -58,7 +58,7 @@ public class StudyProjectGenerator {
   private static final String COURSE_DESCRIPTION = "description";
   private static final String CACHE_NAME = "courseNames.txt";
   private final List<SettingsListener> myListeners = ContainerUtil.newArrayList();
-  public StepicUser myUser;
+  @Nullable public StepicUser myUser;
   private List<CourseInfo> myCourses = new ArrayList<>();
   private List<Integer> myEnrolledCoursesIds = new ArrayList<>();
   protected CourseInfo mySelectedCourseInfo;
@@ -85,7 +85,9 @@ public class StudyProjectGenerator {
   }
 
   public void generateProject(@NotNull final Project project, @NotNull final VirtualFile baseDir) {
-    StudyTaskManager.getInstance(project).setUser(myUser);
+    if (myUser != null) {
+      StudyTaskManager.getInstance(project).setUser(myUser);
+    }
     final Course course = getCourse(project);
     if (course == null) {
       LOG.warn("Course is null");