]> gerrit.simantics Code Review - simantics/platform.git/commitdiff
Prevent NPE if the path to the module source cannot be found 26/1826/1 release/1.34.0
authorHannu Niemistö <hannu.niemisto@semantum.fi>
Fri, 8 Jun 2018 11:10:30 +0000 (14:10 +0300)
committerTuukka Lehtonen <tuukka.lehtonen@semantum.fi>
Mon, 11 Jun 2018 07:10:15 +0000 (07:10 +0000)
gitlab #18

Change-Id: Iac92cfae81f8caffa5c8dfba129e3e9868801e82
(cherry picked from commit c52bf8a84f74dd22f49ca1c6e5443720c2d0ac3a)

bundles/org.simantics.scl.osgi/src/org/simantics/scl/osgi/internal/BundleModuleSource.java
bundles/org.simantics.scl.runtime/scl/Prelude.scl

index af6af0872163a8e3ec6be21461becc5c90199c68..fc9799de706d6625e401d47dd3320aa7a900cc91 100644 (file)
@@ -146,7 +146,10 @@ public class BundleModuleSource extends EncodedTextualModuleSource implements Up
     @Override
     public boolean isUpdateable() {
         try {
-            return Files.exists(getPath());
+            Path path = getPath();
+            if(path == null)
+                return false;
+            return Files.exists(path);
         } catch (IOException e) {
             return false;
         }
@@ -156,6 +159,8 @@ public class BundleModuleSource extends EncodedTextualModuleSource implements Up
     public void update(String newSourceText) {
         try {
             Path path = getPath();
+            if(path == null)
+                return;
             Files.write(path, newSourceText.getBytes(Charset.forName("UTF-8")));
         } catch(IOException e) {
             e.printStackTrace();
index 4a51875b2be4595c056e725f734aaee8cd26cfab..751294a11bb44ea03df62391d7120c83bf9a1a0c 100644 (file)
@@ -1999,7 +1999,7 @@ importJava "org.simantics.scl.runtime.Lists" where
     unique :: [a] -> [a]
     
     "Like `unique`, but uses the given function for finding the key values used for uniqueness testing."
-    uniqueBy :: (a -> b) -> [a] -> [a]
+    uniqueBy :: (a -> <e> b) -> [a] -> <e> [a]
 
     "Works like `unique` but uses the given function for equality tests."
     uniqueWith :: (a -> a -> Boolean) -> [a] -> [a]