]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/editor2/SCLAnnotationModel.java
Fixed NPE when disposing uninitialized SCL module editor
[simantics/platform.git] / bundles / org.simantics.scl.ui / src / org / simantics / scl / ui / editor2 / SCLAnnotationModel.java
index b8010ef828a23868ba0b24b7820c53be38ef2dfa..cbc6d9a0c2ec6fe4e8d923161ff1d93ab715be8c 100644 (file)
@@ -14,7 +14,6 @@ import org.simantics.scl.compiler.errors.ErrorSeverity;
 import org.simantics.scl.compiler.errors.Failable;
 import org.simantics.scl.compiler.errors.Failure;
 import org.simantics.scl.compiler.errors.Locations;
-import org.simantics.scl.compiler.errors.Success;
 import org.simantics.scl.compiler.module.Module;
 import org.simantics.scl.compiler.module.repository.ModuleRepository;
 import org.simantics.scl.compiler.module.repository.UpdateListener;
@@ -55,12 +54,16 @@ public class SCLAnnotationModel extends AnnotationModel {
             removeAllAnnotations();
             for(CompilationError error : errors) {
                 Annotation annotation = new Annotation(
-                        error.severity == ErrorSeverity.ERROR ?
+                        error.severity == ErrorSeverity.ERROR || error.severity == ErrorSeverity.IMPORT_ERROR ?
                                 "org.eclipse.ui.workbench.texteditor.error" :
                                     "org.eclipse.ui.workbench.texteditor.warning",
                                     true, error.description);
                 int begin = Locations.beginOf(error.location);
                 int end = Locations.endOf(error.location);
+                if(begin < 0 || end < begin) {
+                    begin = 0;
+                    end = 1;
+                }
                 Position position = new Position(begin, end - begin);
                 addAnnotation(annotation, position);
             }