Index: trunk/CrossPare/src/de/ugoe/cs/cpdp/Runner.java
===================================================================
--- trunk/CrossPare/src/de/ugoe/cs/cpdp/Runner.java	(revision 73)
+++ trunk/CrossPare/src/de/ugoe/cs/cpdp/Runner.java	(revision 74)
@@ -52,5 +52,5 @@
                 createConfig(threadPool, file.getAbsolutePath());
             }
-            else if (file.isDirectory()) {
+            else if (file.isDirectory() && file.listFiles()!=null ) {
                 for (File subfile : file.listFiles()) {
                     if (subfile.isFile()) {
Index: trunk/CrossPare/src/de/ugoe/cs/cpdp/dataselection/MahalanobisOutlierRemoval.java
===================================================================
--- trunk/CrossPare/src/de/ugoe/cs/cpdp/dataselection/MahalanobisOutlierRemoval.java	(revision 73)
+++ trunk/CrossPare/src/de/ugoe/cs/cpdp/dataselection/MahalanobisOutlierRemoval.java	(revision 74)
@@ -48,5 +48,5 @@
     @Override
     public void setParameter(String parameters) {
-        if (parameters != null && parameters != "") {
+        if (parameters != null && parameters.isEmpty()) {
             epsilon = Double.parseDouble(parameters);
         }
Index: trunk/CrossPare/src/de/ugoe/cs/cpdp/loader/AbstractFolderLoader.java
===================================================================
--- trunk/CrossPare/src/de/ugoe/cs/cpdp/loader/AbstractFolderLoader.java	(revision 73)
+++ trunk/CrossPare/src/de/ugoe/cs/cpdp/loader/AbstractFolderLoader.java	(revision 74)
@@ -53,15 +53,19 @@
         final File dataDir = new File(path);
         final SingleVersionLoader instancesLoader = getSingleLoader();
-
+        if (dataDir.listFiles() == null) {
+            return versions;
+        }
         for (File projectDir : dataDir.listFiles()) {
             if (projectDir.isDirectory()) {
                 String projectName = projectDir.getName();
-                for (File versionFile : projectDir.listFiles()) {
-                    if (versionFile.isFile() &&
-                        instancesLoader.filenameFilter(versionFile.getName()))
-                    {
-                        String versionName = versionFile.getName();
-                        Instances data = instancesLoader.load(versionFile);
-                        versions.add(new SoftwareVersion(projectName, versionName, data));
+                if (projectDir.listFiles() != null) {
+                    for (File versionFile : projectDir.listFiles()) {
+                        if (versionFile.isFile() &&
+                            instancesLoader.filenameFilter(versionFile.getName()))
+                        {
+                            String versionName = versionFile.getName();
+                            Instances data = instancesLoader.load(versionFile);
+                            versions.add(new SoftwareVersion(projectName, versionName, data));
+                        }
                     }
                 }
Index: trunk/CrossPare/src/de/ugoe/cs/cpdp/loader/DecentDataLoader.java
===================================================================
--- trunk/CrossPare/src/de/ugoe/cs/cpdp/loader/DecentDataLoader.java	(revision 73)
+++ trunk/CrossPare/src/de/ugoe/cs/cpdp/loader/DecentDataLoader.java	(revision 74)
@@ -163,9 +163,9 @@
             catch (FileNotFoundException e) {
                 Console.printerrln("File with path: " + arffLocation + " was not found.");
-                e.printStackTrace();
+                throw new RuntimeException(e);
             }
             catch (IOException e) {
                 Console.printerrln("File with path: " + arffLocation + " cannot be read.");
-                e.printStackTrace();
+                throw new RuntimeException(e);
             }
 
@@ -445,5 +445,6 @@
         }
         else {
-
+            Console.printerrln("Could not determine model type, file should end with either .etl or .eol");
+            return null;
         }
 
@@ -453,5 +454,5 @@
             Console.printerrln("Parse error occured...");
             for (ParseProblem problem : module.getParseProblems()) {
-                System.err.println(problem.toString());
+                Console.printerrln(problem.toString());
             }
             // System.exit(-1);
Index: trunk/CrossPare/src/de/ugoe/cs/cpdp/loader/DecentFolderLoader.java
===================================================================
--- trunk/CrossPare/src/de/ugoe/cs/cpdp/loader/DecentFolderLoader.java	(revision 73)
+++ trunk/CrossPare/src/de/ugoe/cs/cpdp/loader/DecentFolderLoader.java	(revision 74)
@@ -64,9 +64,14 @@
          * and searches for "model.decent" files.
          */
+        if (dataDir.listFiles() == null) {
+            return versions;
+        }
         for (File projectDir : dataDir.listFiles()) {
             if (projectDir.isDirectory()) {
                 projectName = projectDir.getName();
-                for (File versionFile : projectDir.listFiles()) {
-                    loadDataFromFile(versionFile, instancesLoader, projectName, versions);
+                if (projectDir.listFiles() != null) {
+                    for (File versionFile : projectDir.listFiles()) {
+                        loadDataFromFile(versionFile, instancesLoader, projectName, versions);
+                    }
                 }
             }
Index: trunk/CrossPare/src/de/ugoe/cs/cpdp/training/WekaLASERTraining.java
===================================================================
--- trunk/CrossPare/src/de/ugoe/cs/cpdp/training/WekaLASERTraining.java	(revision 73)
+++ trunk/CrossPare/src/de/ugoe/cs/cpdp/training/WekaLASERTraining.java	(revision 74)
@@ -110,5 +110,5 @@
                     boolean allEqual = true;
                     for( Integer index : closestToTrainingInstance ) {
-                        if( label == Double.NaN ) {
+                        if( Double.isNaN(label) ) {
                             label = traindata.get(closestToTrainingInstance.get(index)).classValue();
                         }
@@ -129,5 +129,5 @@
                 boolean allEqual = true;
                 for( Integer index : closestInstances ) {
-                    if( label == Double.NaN ) {
+                    if( Double.isNaN(label) ) {
                         label = traindata.get(closestInstances.get(index)).classValue();
                     }
Index: trunk/CrossPare/src/de/ugoe/cs/cpdp/training/WekaLocalFQTraining.java
===================================================================
--- trunk/CrossPare/src/de/ugoe/cs/cpdp/training/WekaLocalFQTraining.java	(revision 73)
+++ trunk/CrossPare/src/de/ugoe/cs/cpdp/training/WekaLocalFQTraining.java	(revision 74)
@@ -399,6 +399,4 @@
 
             double[][] X = FMAP.getX();
-            distmat = new double[0][0];
-            System.gc();
 
             // quadtree payload generation
Index: trunk/CrossPare/src/de/ugoe/cs/cpdp/training/WekaTraining.java
===================================================================
--- trunk/CrossPare/src/de/ugoe/cs/cpdp/training/WekaTraining.java	(revision 73)
+++ trunk/CrossPare/src/de/ugoe/cs/cpdp/training/WekaTraining.java	(revision 74)
@@ -48,4 +48,8 @@
     public void apply(Instances traindata) {
         classifier = setupClassifier();
+        if( classifier==null ) {
+            Console.printerr("classifier of WekaTraining is null");
+            throw new RuntimeException("classifier of WekaTraining is null");
+        }
         PrintStream errStr = System.err;
         System.setErr(new PrintStream(new NullOutputStream()));
