From ae892750ae54ac8eaf3a1e5593473c0ab9e81fba Mon Sep 17 00:00:00 2001
From: Dominique Marcadet <Dominique.Marcadet@centralesupelec.fr>
Date: Fri, 10 May 2019 18:56:07 +0200
Subject: [PATCH] Fatal exception if no SCL root element

---
 .../edf/riseclipse/iec61850/scl/util/SclUtilities.java      | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/util/SclUtilities.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/util/SclUtilities.java
index 8dfd3fd..02a7a87 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/util/SclUtilities.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/util/SclUtilities.java
@@ -33,14 +33,18 @@ import fr.centralesupelec.edf.riseclipse.iec61850.scl.LN;
 import fr.centralesupelec.edf.riseclipse.iec61850.scl.SCL;
 import fr.centralesupelec.edf.riseclipse.iec61850.scl.SclObject;
 import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole;
+import fr.centralesupelec.edf.riseclipse.util.RiseClipseFatalException;
 
 public class SclUtilities {
 
-    public static SCL getSCL( SclObject object ) {
+    public static @NonNull SCL getSCL( SclObject object ) {
         EObject scl = object;
         while(( scl != null ) && ! ( scl instanceof SCL )) {
             scl = scl.eContainer();
         }
+        if( scl == null ) {
+            throw new RiseClipseFatalException( "root container is not SCL", null );
+        }
         return ( SCL ) scl;
     }
 
-- 
GitLab