diff --git a/image_readers/source/java/ch/systemsx/cisd/imagereaders/ImageReaderFactory.java b/image_readers/source/java/ch/systemsx/cisd/imagereaders/ImageReaderFactory.java
index f3cf229eeee3ae78796f15f6be7f99df9de4f655..5f15f0acffa11b18ae2d11f614f1cc7e4d232202 100644
--- a/image_readers/source/java/ch/systemsx/cisd/imagereaders/ImageReaderFactory.java
+++ b/image_readers/source/java/ch/systemsx/cisd/imagereaders/ImageReaderFactory.java
@@ -43,6 +43,11 @@ public class ImageReaderFactory
     private static List<IImageReaderLibrary> libraries;
 
     static
+    {
+        libraries = getAvailableReaders();
+    }
+
+    private static List<IImageReaderLibrary> getAvailableReaders()
     {
         Iterator<IImageReaderLibrary> librariesIterator;
         try
@@ -52,33 +57,37 @@ public class ImageReaderFactory
         {
             operationLog.warn("Image reader plugins not available (JRE < 1.6), "
                     + "fallback to built-in readers.", ex);
-            IImageReaderLibrary reader;
+            librariesIterator = getBuiltInReaders();
+        }
+        return CollectionUtils.asList(librariesIterator);
+    }
 
-            List<IImageReaderLibrary> readers = new ArrayList<IImageReaderLibrary>();
-            reader = tryCreateReader("ch.systemsx.cisd.imagereaders.imageio.ImageIOReaderLibrary");
-            if (reader != null)
-            {
-                readers.add(reader);
-            }
-            reader = tryCreateReader("ch.systemsx.cisd.imagereaders.ij.ImageJReaderLibrary");
-            if (reader != null)
-            {
-                readers.add(reader);
-            }
-            reader = tryCreateReader("ch.systemsx.cisd.imagereaders.jai.JAIReaderLibrary");
-            if (reader != null)
-            {
-                readers.add(reader);
-            }
-            reader =
-                    tryCreateReader("ch.systemsx.cisd.imagereaders.bioformats.BioFormatsReaderLibrary");
-            if (reader != null)
-            {
-                readers.add(reader);
-            }
-            librariesIterator = readers.iterator();
+    private static Iterator<IImageReaderLibrary> getBuiltInReaders()
+    {
+        IImageReaderLibrary reader;
+        List<IImageReaderLibrary> readers = new ArrayList<IImageReaderLibrary>();
+        reader = tryCreateReader("ch.systemsx.cisd.imagereaders.imageio.ImageIOReaderLibrary");
+        if (reader != null)
+        {
+            readers.add(reader);
+        }
+        reader = tryCreateReader("ch.systemsx.cisd.imagereaders.ij.ImageJReaderLibrary");
+        if (reader != null)
+        {
+            readers.add(reader);
+        }
+        reader = tryCreateReader("ch.systemsx.cisd.imagereaders.jai.JAIReaderLibrary");
+        if (reader != null)
+        {
+            readers.add(reader);
+        }
+        reader =
+                tryCreateReader("ch.systemsx.cisd.imagereaders.bioformats.BioFormatsReaderLibrary");
+        if (reader != null)
+        {
+            readers.add(reader);
         }
-        libraries = CollectionUtils.asList(librariesIterator);
+        return readers.iterator();
     }
 
     private static IImageReaderLibrary tryCreateReader(String className)