From e96851f1e6cbabea3c9b25f1b98bf39813fc721a Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Sat, 11 Jan 2020 13:23:55 +0100
Subject: [PATCH] TST: fix tests

---
 src/main/java/caosdb/server/CaosDBServer.java | 88 +++++++++----------
 src/main/java/caosdb/server/FileSystem.java   | 24 ++---
 .../misc/AbstractContainerHelper.java         | 22 ++---
 .../misc/MultipartContainerConverter.java     | 60 ++++++++-----
 .../xml/EntityXMLConverterHelper.java         | 70 ++++++++-------
 .../server/converter/xml/XMLParser.java       | 88 +++++++++----------
 .../UnixFileSystemGetFileIterator.java        |  6 +-
 .../java/caosdb/server/entity/Entity.java     | 24 ++---
 .../caosdb/server/entity/EntityInterface.java |  8 +-
 .../entity/container/DeleteContainer.java     |  2 +-
 .../entity/container/InsertContainer.java     |  2 +-
 .../entity/container/RetrieveContainer.java   |  2 +-
 .../container/TransactionContainer.java       | 12 +--
 .../entity/container/UpdateContainer.java     |  2 +-
 .../entity/container/WritableContainer.java   |  2 +-
 .../server/entity/wrapper/EntityWrapper.java  | 14 +--
 src/main/java/caosdb/server/jobs/Job.java     | 23 ++---
 .../server/jobs/core/InsertFilesInDir.java    | 16 ++--
 .../AbstractCaosDBServerResource.java         | 13 +--
 .../resource/AuthenticationResource.java      | 24 +++--
 .../server/resource/DefaultResource.java      |  6 +-
 .../server/resource/EntityOwnerResource.java  |  5 +-
 .../server/resource/FileSystemResource.java   | 25 +++---
 .../caosdb/server/resource/InfoResource.java  | 10 +--
 .../server/resource/JdomRepresentation.java   |  2 -
 .../server/resource/LogoutResource.java       |  6 +-
 .../resource/PermissionRulesResource.java     | 18 ++--
 .../caosdb/server/resource/RolesResource.java | 70 +++++++--------
 .../server/resource/ScriptingResource.java    | 26 +++---
 .../server/resource/ServerLogsResource.java   |  8 +-
 .../resource/ServerPropertiesResource.java    |  8 +-
 .../server/resource/SharedFileResource.java   | 11 +--
 .../server/resource/ThumbnailsResource.java   |  7 +-
 .../caosdb/server/resource/UserResource.java  | 50 +++++------
 .../server/resource/UserRolesResource.java    | 16 ++--
 .../server/resource/XMLServerResource.java    | 53 ++++++-----
 .../transaction/AbstractEntityResource.java   | 75 ++++++++--------
 .../resource/transaction/EntityResource.java  | 20 ++---
 ...etrieveGlobalEntityPermissionsHandler.java |  3 +-
 .../handlers/SimpleGetRequestHandler.java     |  3 +-
 .../FileStorageConsistencyCheck.java          | 27 +++---
 .../caosdb/server/transaction/Insert.java     |  2 +-
 .../caosdb/server/transaction/Update.java     | 14 +--
 .../server/permissions/EntityACLTest.java     |  7 +-
 .../TestAbstractCaosDBServerResource.java     | 55 ++++++------
 .../resource/TestSharedFileResource.java      | 73 +++++----------
 46 files changed, 540 insertions(+), 562 deletions(-)

diff --git a/src/main/java/caosdb/server/CaosDBServer.java b/src/main/java/caosdb/server/CaosDBServer.java
index dd75071e..9ec790b2 100644
--- a/src/main/java/caosdb/server/CaosDBServer.java
+++ b/src/main/java/caosdb/server/CaosDBServer.java
@@ -19,49 +19,6 @@
  */
 package caosdb.server;
 
-import java.io.BufferedReader;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.time.ZoneId;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Properties;
-import java.util.TimeZone;
-import java.util.logging.Handler;
-import java.util.logging.Level;
-import java.util.logging.LogRecord;
-import org.apache.shiro.SecurityUtils;
-import org.apache.shiro.config.Ini;
-import org.apache.shiro.config.Ini.Section;
-import org.apache.shiro.config.IniSecurityManagerFactory;
-import org.apache.shiro.mgt.SecurityManager;
-import org.apache.shiro.subject.Subject;
-import org.apache.shiro.util.Factory;
-import org.apache.shiro.util.ThreadContext;
-import org.restlet.Application;
-import org.restlet.Component;
-import org.restlet.Context;
-import org.restlet.Request;
-import org.restlet.Response;
-import org.restlet.Restlet;
-import org.restlet.Server;
-import org.restlet.data.CookieSetting;
-import org.restlet.data.Parameter;
-import org.restlet.data.Protocol;
-import org.restlet.data.Reference;
-import org.restlet.data.ServerInfo;
-import org.restlet.data.Status;
-import org.restlet.engine.Engine;
-import org.restlet.routing.Route;
-import org.restlet.routing.Router;
-import org.restlet.routing.Template;
-import org.restlet.routing.TemplateRoute;
-import org.restlet.routing.Variable;
-import org.restlet.util.Series;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import caosdb.server.accessControl.AnonymousRealm;
 import caosdb.server.accessControl.AuthenticationUtils;
 import caosdb.server.accessControl.CaosDBAuthorizingRealm;
@@ -108,6 +65,49 @@ import caosdb.server.utils.FileUtils;
 import caosdb.server.utils.Initialization;
 import caosdb.server.utils.NullPrintStream;
 import caosdb.server.utils.Utils;
+import java.io.BufferedReader;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.time.ZoneId;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Properties;
+import java.util.TimeZone;
+import java.util.logging.Handler;
+import java.util.logging.Level;
+import java.util.logging.LogRecord;
+import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.config.Ini;
+import org.apache.shiro.config.Ini.Section;
+import org.apache.shiro.config.IniSecurityManagerFactory;
+import org.apache.shiro.mgt.SecurityManager;
+import org.apache.shiro.subject.Subject;
+import org.apache.shiro.util.Factory;
+import org.apache.shiro.util.ThreadContext;
+import org.restlet.Application;
+import org.restlet.Component;
+import org.restlet.Context;
+import org.restlet.Request;
+import org.restlet.Response;
+import org.restlet.Restlet;
+import org.restlet.Server;
+import org.restlet.data.CookieSetting;
+import org.restlet.data.Parameter;
+import org.restlet.data.Protocol;
+import org.restlet.data.Reference;
+import org.restlet.data.ServerInfo;
+import org.restlet.data.Status;
+import org.restlet.engine.Engine;
+import org.restlet.routing.Route;
+import org.restlet.routing.Router;
+import org.restlet.routing.Template;
+import org.restlet.routing.TemplateRoute;
+import org.restlet.routing.Variable;
+import org.restlet.util.Series;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class CaosDBServer extends Application {
 
@@ -344,7 +344,7 @@ public class CaosDBServer extends Application {
           Integer.parseInt(getServerProperty(ServerProperties.KEY_MAX_CONNECTIONS));
 
       init.release();
-      
+
       Engine.getInstance().getRegisteredConverters().add(new EntityXMLConverterHelper());
       Engine.getInstance().getRegisteredConverters().add(new MultipartContainerConverter());
 
diff --git a/src/main/java/caosdb/server/FileSystem.java b/src/main/java/caosdb/server/FileSystem.java
index 799ef5c1..f9df6e50 100644
--- a/src/main/java/caosdb/server/FileSystem.java
+++ b/src/main/java/caosdb/server/FileSystem.java
@@ -24,17 +24,6 @@
 
 package caosdb.server;
 
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.nio.file.Path;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.util.regex.Pattern;
-import org.apache.commons.fileupload.FileItemStream;
-import com.google.common.io.Files;
 import caosdb.server.database.access.Access;
 import caosdb.server.database.backend.transaction.GetFileRecordByPath;
 import caosdb.server.database.exceptions.EntityDoesNotExistException;
@@ -45,6 +34,17 @@ import caosdb.server.entity.Message;
 import caosdb.server.utils.FileUtils;
 import caosdb.server.utils.ServerMessages;
 import caosdb.server.utils.Utils;
+import com.google.common.io.Files;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.file.Path;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.regex.Pattern;
+import org.apache.commons.fileupload.FileItemStream;
 
 public class FileSystem {
   private static String filesystem = null;
@@ -321,7 +321,7 @@ public class FileSystem {
       if (file.getFile() != null && file.getFile().equals(target)) {
         return true;
       } else if (target.isDirectory()) {
-          throw ServerMessages.TARGET_PATH_EXISTS;
+        throw ServerMessages.TARGET_PATH_EXISTS;
       } else {
         final GetFileRecordByPath t = new GetFileRecordByPath(file.getPath());
         t.setAccess(access);
diff --git a/src/main/java/caosdb/server/converter/misc/AbstractContainerHelper.java b/src/main/java/caosdb/server/converter/misc/AbstractContainerHelper.java
index 6c352211..01afb30b 100644
--- a/src/main/java/caosdb/server/converter/misc/AbstractContainerHelper.java
+++ b/src/main/java/caosdb/server/converter/misc/AbstractContainerHelper.java
@@ -1,7 +1,6 @@
 package caosdb.server.converter.misc;
 
-
-
+import caosdb.server.entity.container.TransactionContainer;
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.Collections;
@@ -13,7 +12,6 @@ import org.restlet.engine.resource.VariantInfo;
 import org.restlet.representation.Representation;
 import org.restlet.representation.Variant;
 import org.restlet.resource.Resource;
-import caosdb.server.entity.container.TransactionContainer;
 
 public abstract class AbstractContainerHelper extends ConverterHelper {
 
@@ -26,8 +24,8 @@ public abstract class AbstractContainerHelper extends ConverterHelper {
   }
 
   public final boolean isCompatibleSource(Variant source) {
-    for(VariantInfo v : variants) {
-      if(v.isCompatible(source)) {
+    for (VariantInfo v : variants) {
+      if (v.isCompatible(source)) {
         return true;
       }
     }
@@ -38,11 +36,11 @@ public abstract class AbstractContainerHelper extends ConverterHelper {
     final String sRID = resource.getRequestAttributes().get("SRID").toString();
     final long timestamp = resource.getRequest().getDate().getTime();
     final Subject owner = SecurityUtils.getSubject();
-  
+
     final TransactionContainer result = new TransactionContainer(owner, timestamp, sRID);
     return result;
   }
- 
+
   @Override
   public final List<Class<?>> getObjectClasses(Variant source) {
     if (isCompatibleSource(source)) {
@@ -50,12 +48,11 @@ public abstract class AbstractContainerHelper extends ConverterHelper {
     }
     return null;
   }
-  
+
   @Override
   public final <T> float score(Representation source, Class<T> target, Resource resource) {
     // this class only converts from multipart/form-data to Containers.
-    if (TransactionContainer.class.isAssignableFrom(target)
-        && isCompatibleSource(source)) {
+    if (TransactionContainer.class.isAssignableFrom(target) && isCompatibleSource(source)) {
       return 2.0F;
     }
     return -1.0F;
@@ -66,10 +63,7 @@ public abstract class AbstractContainerHelper extends ConverterHelper {
     if (source != null && TransactionContainer.class.isAssignableFrom(source)) {
       return variants;
     }
-  
+
     return null;
   }
-  
-
-
 }
diff --git a/src/main/java/caosdb/server/converter/misc/MultipartContainerConverter.java b/src/main/java/caosdb/server/converter/misc/MultipartContainerConverter.java
index 596eb6ac..7a336295 100644
--- a/src/main/java/caosdb/server/converter/misc/MultipartContainerConverter.java
+++ b/src/main/java/caosdb/server/converter/misc/MultipartContainerConverter.java
@@ -1,5 +1,8 @@
 package caosdb.server.converter.misc;
 
+import caosdb.server.FileSystem;
+import caosdb.server.entity.FileProperties;
+import caosdb.server.entity.container.TransactionContainer;
 import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
 import org.apache.commons.fileupload.FileItemIterator;
@@ -17,25 +20,21 @@ import org.restlet.representation.Representation;
 import org.restlet.representation.Variant;
 import org.restlet.resource.Resource;
 import org.restlet.resource.ResourceException;
-import caosdb.server.FileSystem;
-import caosdb.server.entity.FileProperties;
-import caosdb.server.entity.container.TransactionContainer;
 
 /**
  * Convert HTTP entities with media type "multipart/form-data" into Containers.
- * 
- * The reverse conversion is not implemented.
- * 
- * This conversion is mainly used for the FileUpload.
- * 
- * @author Timm Fitschen (t.fitschen@indiscale.com)
  *
+ * <p>The reverse conversion is not implemented.
+ *
+ * <p>This conversion is mainly used for the FileUpload.
+ *
+ * @author Timm Fitschen (t.fitschen@indiscale.com)
  */
 public class MultipartContainerConverter extends AbstractContainerHelper {
 
   private static final VariantInfo VARIANT_MULTIPART_FORMDATA =
       new VariantInfo(MediaType.MULTIPART_FORM_DATA);
-  
+
   public MultipartContainerConverter() {
     super(VARIANT_MULTIPART_FORMDATA);
   }
@@ -52,8 +51,7 @@ public class MultipartContainerConverter extends AbstractContainerHelper {
     T result = toContainer(source, target, resource);
     return result;
   }
-  
-  
+
   @SuppressWarnings("unchecked")
   public <T> T toContainer(Representation source, Class<T> target, Resource resource) {
     TransactionContainer result = null;
@@ -63,33 +61,50 @@ public class MultipartContainerConverter extends AbstractContainerHelper {
     try {
       FileItemIterator iter = upload.getItemIterator(source);
       FileItemStream item = iter.next();
-      
+
       // First part of the multi-part form data entity must be the container
       // Name of the form field: FileRepresentation
       if (item.isFormField()) {
         if (item.getFieldName().equals("FileRepresentation")) {
           MediaType mediaType = MediaType.valueOf(item.getContentType());
-          if(mediaType.equals(MediaType.TEXT_PLAIN, true)) {
+          if (mediaType.equals(MediaType.TEXT_PLAIN, true)) {
             mediaType = MediaType.TEXT_XML;
           }
           Representation entities = new InputRepresentation(item.openStream(), mediaType);
           ConverterHelper helper = ConverterUtils.getBestHelper(entities, target, resource);
           if (helper == null) {
-            throw new ResourceException(new Status(Status.CLIENT_ERROR_BAD_REQUEST, "Could not parse the FileRepresentation field. Probably it has an unsupported media type."), resource.getRequest(), resource.getResponse());
+            throw new ResourceException(
+                new Status(
+                    Status.CLIENT_ERROR_BAD_REQUEST,
+                    "Could not parse the FileRepresentation field. Probably it has an unsupported media type."),
+                resource.getRequest(),
+                resource.getResponse());
           }
           try {
             result = (TransactionContainer) helper.toObject(entities, target, resource);
           } catch (IOException e) {
             e.printStackTrace();
-            throw new ResourceException(new Status(Status.CLIENT_ERROR_BAD_REQUEST, "Could not parse the FileRepresentation field. Probably it has an unsupported media type."), e, resource.getRequest(), resource.getResponse());
+            throw new ResourceException(
+                new Status(
+                    Status.CLIENT_ERROR_BAD_REQUEST,
+                    "Could not parse the FileRepresentation field. Probably it has an unsupported media type."),
+                e,
+                resource.getRequest(),
+                resource.getResponse());
           }
         } else {
-          throw new ResourceException(new Status(Status.CLIENT_ERROR_BAD_REQUEST, "No entities submitted."), resource.getRequest(), resource.getResponse());
+          throw new ResourceException(
+              new Status(Status.CLIENT_ERROR_BAD_REQUEST, "No entities submitted."),
+              resource.getRequest(),
+              resource.getResponse());
         }
       } else {
-        throw new ResourceException(new Status(Status.CLIENT_ERROR_BAD_REQUEST, "Form contains unexpected content."), resource.getRequest(), resource.getResponse());
+        throw new ResourceException(
+            new Status(Status.CLIENT_ERROR_BAD_REQUEST, "Form contains unexpected content."),
+            resource.getRequest(),
+            resource.getResponse());
       }
-      
+
       // Get files, store to tmp dir.
       while (iter.hasNext()) {
         item = iter.next();
@@ -97,7 +112,11 @@ public class MultipartContainerConverter extends AbstractContainerHelper {
         result.addFile(item.getName(), file);
       }
     } catch (FileUploadException | IOException | NoSuchAlgorithmException e) {
-      throw new ResourceException(new Status(Status.SERVER_ERROR_INTERNAL, "The file upload failed."), e, resource.getRequest(), resource.getResponse());
+      throw new ResourceException(
+          new Status(Status.SERVER_ERROR_INTERNAL, "The file upload failed."),
+          e,
+          resource.getRequest(),
+          resource.getResponse());
     }
     return (T) result;
   }
@@ -107,5 +126,4 @@ public class MultipartContainerConverter extends AbstractContainerHelper {
       throws IOException {
     return null;
   }
-
 }
diff --git a/src/main/java/caosdb/server/converter/xml/EntityXMLConverterHelper.java b/src/main/java/caosdb/server/converter/xml/EntityXMLConverterHelper.java
index 9abfd274..b3ac16f5 100644
--- a/src/main/java/caosdb/server/converter/xml/EntityXMLConverterHelper.java
+++ b/src/main/java/caosdb/server/converter/xml/EntityXMLConverterHelper.java
@@ -1,5 +1,14 @@
 package caosdb.server.converter.xml;
 
+import caosdb.server.accessControl.AuthenticationUtils;
+import caosdb.server.accessControl.Principal;
+import caosdb.server.accessControl.UserSources;
+import caosdb.server.converter.misc.AbstractContainerHelper;
+import caosdb.server.entity.Entity;
+import caosdb.server.entity.EntityInterface;
+import caosdb.server.entity.container.Container;
+import caosdb.server.entity.container.TransactionContainer;
+import caosdb.server.resource.JdomRepresentation;
 import java.io.IOException;
 import java.util.Collection;
 import org.apache.shiro.subject.Subject;
@@ -14,26 +23,18 @@ import org.restlet.representation.Representation;
 import org.restlet.representation.Variant;
 import org.restlet.resource.Resource;
 import org.restlet.resource.ResourceException;
-import caosdb.server.accessControl.AuthenticationUtils;
-import caosdb.server.accessControl.Principal;
-import caosdb.server.accessControl.UserSources;
-import caosdb.server.converter.misc.AbstractContainerHelper;
-import caosdb.server.entity.Entity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.container.Container;
-import caosdb.server.entity.container.TransactionContainer;
-import caosdb.server.resource.JdomRepresentation;
 
 public class EntityXMLConverterHelper extends AbstractContainerHelper {
-  
+
   public static final VariantInfo VARIANT_TEXT_XML = new VariantInfo(MediaType.TEXT_XML);
-  public static final VariantInfo VARIANT_APPLICATION_XML = new VariantInfo(MediaType.APPLICATION_XML);
+  public static final VariantInfo VARIANT_APPLICATION_XML =
+      new VariantInfo(MediaType.APPLICATION_XML);
   private static final XMLParser xmlParser = new XMLParser();
-  
+
   public EntityXMLConverterHelper() {
     super(VARIANT_APPLICATION_XML, VARIANT_TEXT_XML);
   }
-  
+
   @SuppressWarnings("unchecked")
   @Override
   public <T> T toObject(Representation source, Class<T> target, Resource resource)
@@ -42,7 +43,11 @@ public class EntityXMLConverterHelper extends AbstractContainerHelper {
     try {
       xml = xmlParser.parse(source.getStream());
     } catch (JDOMException e) {
-      throw new ResourceException(new Status(Status.CLIENT_ERROR_BAD_REQUEST, "Could not parse XML."), e, resource.getRequest(), resource.getResponse());
+      throw new ResourceException(
+          new Status(Status.CLIENT_ERROR_BAD_REQUEST, "Could not parse XML."),
+          e,
+          resource.getRequest(),
+          resource.getResponse());
     }
     return (T) createContainer(xml, resource);
   }
@@ -58,28 +63,28 @@ public class EntityXMLConverterHelper extends AbstractContainerHelper {
   @Override
   public Representation toRepresentation(Object source, Variant target, Resource resource)
       throws IOException {
-    
+
     return toJdomRepresentation((TransactionContainer) source, resource);
   }
-  
+
   private Representation toJdomRepresentation(TransactionContainer container, Resource resource) {
     Document doc = toDocument(container, resource);
-    
+
     String xsl = resource.getAttribute("xsl");
-    if(xsl != null) {
+    if (xsl != null) {
       addStyleSheet(doc, xsl);
     }
 
     return new JdomRepresentation(doc, "  ");
   }
-  
+
   /** adds the xslt processing instruction to the document. */
   private void addStyleSheet(Document document, String xslPath) {
     final ProcessingInstruction pi =
         new ProcessingInstruction("xml-stylesheet", "type=\"text/xsl\" href=\"" + xslPath + "\" ");
     document.getContent().add(0, pi);
   }
-  
+
   /**
    * Creates the XML root.
    *
@@ -95,14 +100,14 @@ public class EntityXMLConverterHelper extends AbstractContainerHelper {
    */
   protected Document toDocument(TransactionContainer container, Resource resource) {
     final Element root = new Element("Response");
-    
+
     addUserInfo(root, container.getOwner());
     root.setAttribute("srid", container.getRequestId());
     root.setAttribute("timestamp", container.getTimestamp().toString());
     root.setAttribute("baseuri", resource.getRootRef().toString());
-    
+
     container.addToElement(root);
-    
+
     return new Document(root);
   }
 
@@ -162,32 +167,33 @@ public class EntityXMLConverterHelper extends AbstractContainerHelper {
    **********************************************************************
    * The following function is stolen from {@link
    * org.restlet.engine.converter.StatusInfoHtmlConverter} and adapted.
-   * 
+   *
    * Licensed under Apache 2.0.
-   * 
+   *
    * Author: Manuel Boillod.
    * Copyright 2005-2019 Talend
    * ********************************************************************
    */
   /**
    * Indicates if the given variant is compatible with the media types supported by this converter.
-   * 
+   *
    * @param variant The variant.
    * @return True if the given variant is compatible with the media types supported by this
-   *         converter.
+   *     converter.
    */
   protected boolean isCompatible(Variant variant) {
-    return (variant != null) && (VARIANT_TEXT_XML.isCompatible(variant)
-        || VARIANT_APPLICATION_XML.isCompatible(variant));
+    return (variant != null)
+        && (VARIANT_TEXT_XML.isCompatible(variant)
+            || VARIANT_APPLICATION_XML.isCompatible(variant));
   }
 
   /*
    **********************************************************************
    * The following function is stolen from {@link
    * org.restlet.engine.converter.StatusInfoHtmlConverter} and adapted.
-   * 
+   *
    * Licensed under Apache 2.0.
-   * 
+   *
    * Author: Manuel Boillod.
    * Copyright 2005-2019 Talend
    * ********************************************************************
@@ -202,6 +208,4 @@ public class EntityXMLConverterHelper extends AbstractContainerHelper {
 
     return result;
   }
-
-
 }
diff --git a/src/main/java/caosdb/server/converter/xml/XMLParser.java b/src/main/java/caosdb/server/converter/xml/XMLParser.java
index 1353ec9e..f2499e52 100644
--- a/src/main/java/caosdb/server/converter/xml/XMLParser.java
+++ b/src/main/java/caosdb/server/converter/xml/XMLParser.java
@@ -9,59 +9,59 @@ import org.jdom2.JDOMException;
 import org.jdom2.input.SAXBuilder;
 
 public class XMLParser {
-  
-    private static final LinkedList<SAXBuilder> pool = new LinkedList<SAXBuilder>();
-    private static final int max = 25;
-    private static final int init = 5;
-    private static final int min = 5;
 
-    private SAXBuilder getSAXBuilder() {
-      try {
-        synchronized (pool) {
-          return pool.removeFirst();
-        }
-      } catch (final NoSuchElementException e) {
-      }
-      preLoad(min);
-      return new SAXBuilder();
-    }
+  private static final LinkedList<SAXBuilder> pool = new LinkedList<SAXBuilder>();
+  private static final int max = 25;
+  private static final int init = 5;
+  private static final int min = 5;
 
-    private int release(final SAXBuilder sb) {
+  private SAXBuilder getSAXBuilder() {
+    try {
       synchronized (pool) {
-        if (pool.size() <= max) {
-          pool.add(sb);
-        }
-        return pool.size();
+        return pool.removeFirst();
       }
+    } catch (final NoSuchElementException e) {
     }
+    preLoad(min);
+    return new SAXBuilder();
+  }
 
-    public XMLParser() {
-      preLoad(init);
+  private int release(final SAXBuilder sb) {
+    synchronized (pool) {
+      if (pool.size() <= max) {
+        pool.add(sb);
+      }
+      return pool.size();
     }
+  }
 
-    public Document parse(final InputStream is) throws JDOMException, IOException {
-      final SAXBuilder sb = getSAXBuilder();
-      Document ret;
-      try {
-        ret = sb.build(is);
-      } finally {
-        release(sb);
-      }
-      return ret;
+  public XMLParser() {
+    preLoad(init);
+  }
+
+  public Document parse(final InputStream is) throws JDOMException, IOException {
+    final SAXBuilder sb = getSAXBuilder();
+    Document ret;
+    try {
+      ret = sb.build(is);
+    } finally {
+      release(sb);
     }
+    return ret;
+  }
 
-    public void preLoad(final int i) {
-      final Thread t =
-          new Thread() {
-            @Override
-            public void run() {
-              int j = 0;
-              while (j < i) {
-                final SAXBuilder sb = new SAXBuilder();
-                j = release(sb);
-              }
+  public void preLoad(final int i) {
+    final Thread t =
+        new Thread() {
+          @Override
+          public void run() {
+            int j = 0;
+            while (j < i) {
+              final SAXBuilder sb = new SAXBuilder();
+              j = release(sb);
             }
-          };
-      t.start();
-    }
+          }
+        };
+    t.start();
   }
+}
diff --git a/src/main/java/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemGetFileIterator.java b/src/main/java/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemGetFileIterator.java
index 78fcac09..5bd6cd56 100644
--- a/src/main/java/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemGetFileIterator.java
+++ b/src/main/java/caosdb/server/database/backend/implementation/UnixFileSystem/UnixFileSystemGetFileIterator.java
@@ -22,14 +22,14 @@
  */
 package caosdb.server.database.backend.implementation.UnixFileSystem;
 
-import java.io.File;
-import java.util.Arrays;
-import java.util.Iterator;
 import caosdb.server.FileSystem;
 import caosdb.server.database.access.Access;
 import caosdb.server.database.backend.interfaces.GetFileIteratorImpl;
 import caosdb.server.database.exceptions.TransactionException;
 import caosdb.server.entity.Message;
+import java.io.File;
+import java.util.Arrays;
+import java.util.Iterator;
 
 public class UnixFileSystemGetFileIterator extends UnixFileSystemTransaction
     implements GetFileIteratorImpl {
diff --git a/src/main/java/caosdb/server/entity/Entity.java b/src/main/java/caosdb/server/entity/Entity.java
index 20e84bbf..5c74dda1 100644
--- a/src/main/java/caosdb/server/entity/Entity.java
+++ b/src/main/java/caosdb/server/entity/Entity.java
@@ -22,17 +22,6 @@
  */
 package caosdb.server.entity;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-import org.apache.shiro.SecurityUtils;
-import org.apache.shiro.authz.AuthorizationException;
-import org.apache.shiro.authz.Permission;
-import org.apache.shiro.subject.Subject;
-import org.jdom2.Element;
 import caosdb.server.CaosDBException;
 import caosdb.server.database.proto.SparseEntity;
 import caosdb.server.database.proto.VerySparseEntity;
@@ -58,6 +47,17 @@ import caosdb.server.utils.EntityStatus;
 import caosdb.server.utils.ServerMessages;
 import caosdb.server.utils.TransactionLogMessage;
 import caosdb.unit.Unit;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.authz.AuthorizationException;
+import org.apache.shiro.authz.Permission;
+import org.apache.shiro.subject.Subject;
+import org.jdom2.Element;
 
 public class Entity extends AbstractObservable implements EntityInterface {
 
@@ -1097,7 +1097,7 @@ public class Entity extends AbstractObservable implements EntityInterface {
   public boolean skipJob() {
     return skipOn != null && skipOn != getEntityStatus();
   }
-  
+
   @Override
   public void setSkip(EntityStatus e) {
     this.skipOn = e;
diff --git a/src/main/java/caosdb/server/entity/EntityInterface.java b/src/main/java/caosdb/server/entity/EntityInterface.java
index aba56548..5106da3f 100644
--- a/src/main/java/caosdb/server/entity/EntityInterface.java
+++ b/src/main/java/caosdb/server/entity/EntityInterface.java
@@ -22,9 +22,6 @@
  */
 package caosdb.server.entity;
 
-import java.util.List;
-import org.apache.shiro.authz.Permission;
-import org.apache.shiro.subject.Subject;
 import caosdb.server.database.proto.SparseEntity;
 import caosdb.server.database.proto.VerySparseEntity;
 import caosdb.server.datatype.AbstractDatatype;
@@ -41,6 +38,9 @@ import caosdb.server.utils.EntityStatus;
 import caosdb.server.utils.Observable;
 import caosdb.server.utils.TransactionLogMessage;
 import caosdb.unit.Unit;
+import java.util.List;
+import org.apache.shiro.authz.Permission;
+import org.apache.shiro.subject.Subject;
 
 public interface EntityInterface
     extends JobTarget, Observable, ToElementable, WriteEntity, TransactionEntity {
@@ -177,6 +177,6 @@ public interface EntityInterface
   public abstract String getQueryTemplateDefinition();
 
   public abstract void setQueryTemplateDefinition(String query);
-  
+
   public abstract void setSkip(EntityStatus e);
 }
diff --git a/src/main/java/caosdb/server/entity/container/DeleteContainer.java b/src/main/java/caosdb/server/entity/container/DeleteContainer.java
index 907e6930..2dc46910 100644
--- a/src/main/java/caosdb/server/entity/container/DeleteContainer.java
+++ b/src/main/java/caosdb/server/entity/container/DeleteContainer.java
@@ -22,9 +22,9 @@
  */
 package caosdb.server.entity.container;
 
+import caosdb.server.entity.DeleteEntity;
 import java.util.Map;
 import org.apache.shiro.subject.Subject;
-import caosdb.server.entity.DeleteEntity;
 
 public class DeleteContainer extends EntityByIdContainer {
 
diff --git a/src/main/java/caosdb/server/entity/container/InsertContainer.java b/src/main/java/caosdb/server/entity/container/InsertContainer.java
index 2d7bd2a2..a2b5751d 100644
--- a/src/main/java/caosdb/server/entity/container/InsertContainer.java
+++ b/src/main/java/caosdb/server/entity/container/InsertContainer.java
@@ -22,10 +22,10 @@
  */
 package caosdb.server.entity.container;
 
+import caosdb.server.entity.InsertEntity;
 import java.util.Map;
 import org.apache.shiro.subject.Subject;
 import org.jdom2.Element;
-import caosdb.server.entity.InsertEntity;
 
 public class InsertContainer extends WritableContainer {
 
diff --git a/src/main/java/caosdb/server/entity/container/RetrieveContainer.java b/src/main/java/caosdb/server/entity/container/RetrieveContainer.java
index 04e67d1d..2a8a18d4 100644
--- a/src/main/java/caosdb/server/entity/container/RetrieveContainer.java
+++ b/src/main/java/caosdb/server/entity/container/RetrieveContainer.java
@@ -22,9 +22,9 @@
  */
 package caosdb.server.entity.container;
 
+import caosdb.server.entity.RetrieveEntity;
 import java.util.Map;
 import org.apache.shiro.subject.Subject;
-import caosdb.server.entity.RetrieveEntity;
 
 public class RetrieveContainer extends EntityByIdContainer {
 
diff --git a/src/main/java/caosdb/server/entity/container/TransactionContainer.java b/src/main/java/caosdb/server/entity/container/TransactionContainer.java
index 31143759..82b581be 100644
--- a/src/main/java/caosdb/server/entity/container/TransactionContainer.java
+++ b/src/main/java/caosdb/server/entity/container/TransactionContainer.java
@@ -22,12 +22,6 @@
  */
 package caosdb.server.entity.container;
 
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import org.apache.shiro.subject.Subject;
-import org.jdom2.Element;
 import caosdb.server.CaosDBServer;
 import caosdb.server.database.misc.TransactionBenchmark;
 import caosdb.server.entity.Entity;
@@ -36,6 +30,12 @@ import caosdb.server.entity.FileProperties;
 import caosdb.server.entity.xml.ToElementable;
 import caosdb.server.jobs.JobTarget;
 import caosdb.server.utils.EntityStatus;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import org.apache.shiro.subject.Subject;
+import org.jdom2.Element;
 
 public class TransactionContainer extends Container<Entity> implements ToElementable, JobTarget {
 
diff --git a/src/main/java/caosdb/server/entity/container/UpdateContainer.java b/src/main/java/caosdb/server/entity/container/UpdateContainer.java
index f09159a2..cf903763 100644
--- a/src/main/java/caosdb/server/entity/container/UpdateContainer.java
+++ b/src/main/java/caosdb/server/entity/container/UpdateContainer.java
@@ -22,10 +22,10 @@
  */
 package caosdb.server.entity.container;
 
+import caosdb.server.entity.UpdateEntity;
 import java.util.Map;
 import org.apache.shiro.subject.Subject;
 import org.jdom2.Element;
-import caosdb.server.entity.UpdateEntity;
 
 public class UpdateContainer extends WritableContainer {
 
diff --git a/src/main/java/caosdb/server/entity/container/WritableContainer.java b/src/main/java/caosdb/server/entity/container/WritableContainer.java
index e1a95a6d..b5989da5 100644
--- a/src/main/java/caosdb/server/entity/container/WritableContainer.java
+++ b/src/main/java/caosdb/server/entity/container/WritableContainer.java
@@ -22,10 +22,10 @@
  */
 package caosdb.server.entity.container;
 
+import caosdb.server.entity.FileProperties;
 import java.util.Map;
 import org.apache.shiro.subject.Subject;
 import org.jdom2.Element;
-import caosdb.server.entity.FileProperties;
 
 @Deprecated
 public abstract class WritableContainer extends TransactionContainer {
diff --git a/src/main/java/caosdb/server/entity/wrapper/EntityWrapper.java b/src/main/java/caosdb/server/entity/wrapper/EntityWrapper.java
index 4bdc78fb..a15c1e51 100644
--- a/src/main/java/caosdb/server/entity/wrapper/EntityWrapper.java
+++ b/src/main/java/caosdb/server/entity/wrapper/EntityWrapper.java
@@ -22,12 +22,6 @@
  */
 package caosdb.server.entity.wrapper;
 
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import org.apache.shiro.authz.Permission;
-import org.apache.shiro.subject.Subject;
-import org.jdom2.Element;
 import caosdb.server.database.proto.SparseEntity;
 import caosdb.server.database.proto.VerySparseEntity;
 import caosdb.server.datatype.AbstractDatatype;
@@ -47,6 +41,12 @@ import caosdb.server.utils.EntityStatus;
 import caosdb.server.utils.Observer;
 import caosdb.server.utils.TransactionLogMessage;
 import caosdb.unit.Unit;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import org.apache.shiro.authz.Permission;
+import org.apache.shiro.subject.Subject;
+import org.jdom2.Element;
 
 public class EntityWrapper implements EntityInterface {
 
@@ -541,7 +541,7 @@ public class EntityWrapper implements EntityInterface {
   public boolean skipJob() {
     return this.entity.skipJob();
   }
-  
+
   @Override
   public void setSkip(EntityStatus e) {
     this.entity.setSkip(e);
diff --git a/src/main/java/caosdb/server/jobs/Job.java b/src/main/java/caosdb/server/jobs/Job.java
index f22c92e1..da586470 100644
--- a/src/main/java/caosdb/server/jobs/Job.java
+++ b/src/main/java/caosdb/server/jobs/Job.java
@@ -22,15 +22,6 @@
  */
 package caosdb.server.jobs;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-import org.apache.shiro.SecurityUtils;
-import org.apache.shiro.authz.Permission;
-import org.apache.shiro.subject.Subject;
-import org.reflections.Reflections;
 import caosdb.server.CaosDBException;
 import caosdb.server.database.BackendTransaction;
 import caosdb.server.database.backend.transaction.GetIDByName;
@@ -53,6 +44,15 @@ import caosdb.server.utils.EntityStatus;
 import caosdb.server.utils.Observable;
 import caosdb.server.utils.Observer;
 import caosdb.server.utils.ServerMessages;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.authz.Permission;
+import org.apache.shiro.subject.Subject;
+import org.reflections.Reflections;
 
 public abstract class Job extends AbstractObservable implements Observer {
   private Transaction<? extends TransactionContainer> transaction = null;
@@ -141,9 +141,10 @@ public abstract class Job extends AbstractObservable implements Observer {
   TransactionContainer getContainer() {
     return getTransaction().getContainer();
   }
-  
+
   protected final boolean cache() {
-    return getContainer().getFlags() == null || !"false".equals(getContainer().getFlags().get("cache"));
+    return getContainer().getFlags() == null
+        || !"false".equals(getContainer().getFlags().get("cache"));
   }
 
   protected final boolean isValidSubType(final int child, final int parent) {
diff --git a/src/main/java/caosdb/server/jobs/core/InsertFilesInDir.java b/src/main/java/caosdb/server/jobs/core/InsertFilesInDir.java
index 7e0517b0..6b3144eb 100644
--- a/src/main/java/caosdb/server/jobs/core/InsertFilesInDir.java
+++ b/src/main/java/caosdb/server/jobs/core/InsertFilesInDir.java
@@ -22,12 +22,6 @@
  */
 package caosdb.server.jobs.core;
 
-import java.io.File;
-import java.io.IOException;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
 import caosdb.server.CaosDBException;
 import caosdb.server.CaosDBServer;
 import caosdb.server.FileSystem;
@@ -48,6 +42,12 @@ import caosdb.server.utils.EntityStatus;
 import caosdb.server.utils.FileUtils;
 import caosdb.server.utils.Undoable;
 import caosdb.server.utils.Utils;
+import java.io.File;
+import java.io.IOException;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 @JobAnnotation(
     flag = "InsertFilesInDir",
@@ -276,9 +276,7 @@ public class InsertFilesInDir extends FlagJob {
         getContainer()
             .addMessage(
                 new Message(
-                    MessageType.Warning,
-                    2,
-                    "Explicitly excluded file: " + sub.getCanonicalPath()));
+                    MessageType.Warning, 2, "Explicitly excluded file: " + sub.getCanonicalPath()));
         return false;
       }
     }
diff --git a/src/main/java/caosdb/server/resource/AbstractCaosDBServerResource.java b/src/main/java/caosdb/server/resource/AbstractCaosDBServerResource.java
index b72f9fc5..c947bf81 100644
--- a/src/main/java/caosdb/server/resource/AbstractCaosDBServerResource.java
+++ b/src/main/java/caosdb/server/resource/AbstractCaosDBServerResource.java
@@ -23,13 +23,11 @@
  */
 package caosdb.server.resource;
 
+import caosdb.server.utils.WebinterfaceUtils;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.subject.Subject;
-import org.restlet.data.Header;
 import org.restlet.data.MediaType;
 import org.restlet.resource.ServerResource;
-import org.restlet.util.Series;
-import caosdb.server.utils.WebinterfaceUtils;
 
 /**
  * Base class for all CaosDB Server Resources.
@@ -60,7 +58,7 @@ public abstract class AbstractCaosDBServerResource extends ServerResource {
    */
   @Override
   protected void doInit() {
-    
+
     // wrap the request entity into an entity with proper logging
     if (getRequestEntity().isTransient() && !getRequestEntity().isEmpty()) {
       final ReReadableRepresentation r = new ReReadableRepresentation(getRequestEntity());
@@ -72,10 +70,8 @@ public abstract class AbstractCaosDBServerResource extends ServerResource {
     this.setAttribute("xsl", getXSLScript());
 
     MediaType mediaType = getRequest().getEntity().getMediaType();
-    
-    Series<Header> headers = getRequest().getHeaders();
-    
-    if(mediaType == null) {
+
+    if (mediaType == null) {
       getRequest().getEntity().setMediaType(MediaType.TEXT_XML);
     }
   }
@@ -90,5 +86,4 @@ public abstract class AbstractCaosDBServerResource extends ServerResource {
   public final String getSRID() {
     return getRequest().getAttributes().get("SRID").toString();
   }
-
 }
diff --git a/src/main/java/caosdb/server/resource/AuthenticationResource.java b/src/main/java/caosdb/server/resource/AuthenticationResource.java
index 870ad5c2..556763b2 100644
--- a/src/main/java/caosdb/server/resource/AuthenticationResource.java
+++ b/src/main/java/caosdb/server/resource/AuthenticationResource.java
@@ -22,6 +22,11 @@
  */
 package caosdb.server.resource;
 
+import caosdb.server.CaosDBException;
+import caosdb.server.accessControl.AuthenticationUtils;
+import caosdb.server.accessControl.RealmUsernamePasswordToken;
+import caosdb.server.accessControl.UserSources;
+import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
 import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
 import java.sql.SQLException;
@@ -37,11 +42,6 @@ import org.restlet.representation.Representation;
 import org.restlet.resource.Delete;
 import org.restlet.resource.Post;
 import org.restlet.resource.ResourceException;
-import caosdb.server.CaosDBException;
-import caosdb.server.accessControl.AuthenticationUtils;
-import caosdb.server.accessControl.RealmUsernamePasswordToken;
-import caosdb.server.accessControl.UserSources;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
 
 public class AuthenticationResource extends AbstractCaosDBServerResource {
 
@@ -91,11 +91,19 @@ public class AuthenticationResource extends AbstractCaosDBServerResource {
 
       } catch (final AuthenticationException e) {
         getLogger().log(Level.INFO, "LOGIN_FAILED", e);
-        throw new ResourceException(new Status(Status.CLIENT_ERROR_UNAUTHORIZED, "Login failed."), e, getRequest(), getResponse());
+        throw new ResourceException(
+            new Status(Status.CLIENT_ERROR_UNAUTHORIZED, "Login failed."),
+            e,
+            getRequest(),
+            getResponse());
       }
     } else {
-      throw new ResourceException(new Status(Status.CLIENT_ERROR_UNAUTHORIZED, "Login failed. Please provide a user name and a password."), getRequest(), getResponse());
+      throw new ResourceException(
+          new Status(
+              Status.CLIENT_ERROR_UNAUTHORIZED,
+              "Login failed. Please provide a user name and a password."),
+          getRequest(),
+          getResponse());
     }
   }
-  
 }
diff --git a/src/main/java/caosdb/server/resource/DefaultResource.java b/src/main/java/caosdb/server/resource/DefaultResource.java
index a199f986..4c076675 100644
--- a/src/main/java/caosdb/server/resource/DefaultResource.java
+++ b/src/main/java/caosdb/server/resource/DefaultResource.java
@@ -22,16 +22,16 @@
  */
 package caosdb.server.resource;
 
+import caosdb.server.CaosDBException;
+import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
 import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
 import java.sql.SQLException;
 import org.jdom2.Document;
 import org.jdom2.Element;
 import org.restlet.representation.Representation;
-import caosdb.server.CaosDBException;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
 
-public class DefaultResource extends  XMLServerResource {
+public class DefaultResource extends XMLServerResource {
 
   private Element responseBody = null;
 
diff --git a/src/main/java/caosdb/server/resource/EntityOwnerResource.java b/src/main/java/caosdb/server/resource/EntityOwnerResource.java
index 2754760a..b5485ed0 100644
--- a/src/main/java/caosdb/server/resource/EntityOwnerResource.java
+++ b/src/main/java/caosdb/server/resource/EntityOwnerResource.java
@@ -22,16 +22,15 @@
  */
 package caosdb.server.resource;
 
-import java.util.Map;
 import caosdb.server.resource.transaction.AbstractEntityResource;
+import java.util.Map;
 
 public class EntityOwnerResource extends AbstractEntityResource {
-  
+
   @Override
   public Map<String, String> getFlags() {
     Map<String, String> result = super.getFlags();
     result.put("owner", null);
     return result;
   }
-
 }
diff --git a/src/main/java/caosdb/server/resource/FileSystemResource.java b/src/main/java/caosdb/server/resource/FileSystemResource.java
index 8b78d617..cc8d8df7 100644
--- a/src/main/java/caosdb/server/resource/FileSystemResource.java
+++ b/src/main/java/caosdb/server/resource/FileSystemResource.java
@@ -24,17 +24,7 @@ package caosdb.server.resource;
 
 import static caosdb.server.FileSystem.getFromFileSystem;
 import static java.net.URLDecoder.decode;
-import java.io.File;
-import java.io.IOException;
-import org.jdom2.Attribute;
-import org.jdom2.Document;
-import org.jdom2.Element;
-import org.jdom2.JDOMException;
-import org.restlet.data.Disposition;
-import org.restlet.data.MediaType;
-import org.restlet.data.Status;
-import org.restlet.representation.FileRepresentation;
-import org.restlet.representation.Representation;
+
 import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
 import caosdb.server.database.exceptions.EntityDoesNotExistException;
 import caosdb.server.database.misc.TransactionBenchmark;
@@ -49,6 +39,17 @@ import caosdb.server.transaction.RetrieveSparseEntityByPath;
 import caosdb.server.transaction.Transaction;
 import caosdb.server.utils.FileUtils;
 import caosdb.server.utils.ServerMessages;
+import java.io.File;
+import java.io.IOException;
+import org.jdom2.Attribute;
+import org.jdom2.Document;
+import org.jdom2.Element;
+import org.jdom2.JDOMException;
+import org.restlet.data.Disposition;
+import org.restlet.data.MediaType;
+import org.restlet.data.Status;
+import org.restlet.representation.FileRepresentation;
+import org.restlet.representation.Representation;
 
 /**
  * Download files via GET method from the file system directly without making the detour through the
@@ -56,7 +57,7 @@ import caosdb.server.utils.ServerMessages;
  *
  * @author Timm Fitschen
  */
-public class FileSystemResource extends  XMLServerResource {
+public class FileSystemResource extends XMLServerResource {
 
   public static Message ORPHANED_FILE_WARNING =
       new Message(
diff --git a/src/main/java/caosdb/server/resource/InfoResource.java b/src/main/java/caosdb/server/resource/InfoResource.java
index d706e9c6..a03dfe29 100644
--- a/src/main/java/caosdb/server/resource/InfoResource.java
+++ b/src/main/java/caosdb/server/resource/InfoResource.java
@@ -22,17 +22,17 @@
  */
 package caosdb.server.resource;
 
-import org.jdom2.Document;
-import org.jdom2.Element;
-import org.jdom2.JDOMException;
-import org.restlet.representation.Representation;
 import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
 import caosdb.server.database.misc.TransactionBenchmark;
 import caosdb.server.utils.FlagInfo;
 import caosdb.server.utils.Info;
+import org.jdom2.Document;
+import org.jdom2.Element;
+import org.jdom2.JDOMException;
+import org.restlet.representation.Representation;
 
 /** This class represents the information retrieved by /Info requests (only GET) to CaosDB. */
-public class InfoResource extends  XMLServerResource {
+public class InfoResource extends XMLServerResource {
 
   /**
    * The response to the HTTP GET request is generated here.
diff --git a/src/main/java/caosdb/server/resource/JdomRepresentation.java b/src/main/java/caosdb/server/resource/JdomRepresentation.java
index 984bcc71..1eef69e6 100644
--- a/src/main/java/caosdb/server/resource/JdomRepresentation.java
+++ b/src/main/java/caosdb/server/resource/JdomRepresentation.java
@@ -66,8 +66,6 @@ public class JdomRepresentation extends WriterRepresentation {
     this.document = document;
   }
 
-  
-
   @Override
   public void write(final Writer writer) throws IOException {
     if (this.document != null && this.document.hasRootElement()) {
diff --git a/src/main/java/caosdb/server/resource/LogoutResource.java b/src/main/java/caosdb/server/resource/LogoutResource.java
index 6c734d45..266d48a0 100644
--- a/src/main/java/caosdb/server/resource/LogoutResource.java
+++ b/src/main/java/caosdb/server/resource/LogoutResource.java
@@ -22,14 +22,14 @@
  */
 package caosdb.server.resource;
 
+import caosdb.server.CaosDBException;
+import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
 import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
 import java.sql.SQLException;
 import org.restlet.representation.Representation;
-import caosdb.server.CaosDBException;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
 
-public class LogoutResource extends  XMLServerResource {
+public class LogoutResource extends XMLServerResource {
 
   @Override
   protected Representation httpGetInChildClass()
diff --git a/src/main/java/caosdb/server/resource/PermissionRulesResource.java b/src/main/java/caosdb/server/resource/PermissionRulesResource.java
index 98841db6..9a4a32c5 100644
--- a/src/main/java/caosdb/server/resource/PermissionRulesResource.java
+++ b/src/main/java/caosdb/server/resource/PermissionRulesResource.java
@@ -22,6 +22,14 @@
  */
 package caosdb.server.resource;
 
+import caosdb.server.CaosDBException;
+import caosdb.server.accessControl.ACMPermissions;
+import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
+import caosdb.server.entity.Message;
+import caosdb.server.permissions.PermissionRule;
+import caosdb.server.transaction.RetrievePermissionRulesTransaction;
+import caosdb.server.transaction.UpdatePermissionRulesTransaction;
+import caosdb.server.utils.ServerMessages;
 import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
 import java.sql.SQLException;
@@ -31,16 +39,8 @@ import org.jdom2.Element;
 import org.restlet.data.Status;
 import org.restlet.representation.Representation;
 import org.restlet.representation.StringRepresentation;
-import caosdb.server.CaosDBException;
-import caosdb.server.accessControl.ACMPermissions;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
-import caosdb.server.entity.Message;
-import caosdb.server.permissions.PermissionRule;
-import caosdb.server.transaction.RetrievePermissionRulesTransaction;
-import caosdb.server.transaction.UpdatePermissionRulesTransaction;
-import caosdb.server.utils.ServerMessages;
 
-public class PermissionRulesResource extends  XMLServerResource {
+public class PermissionRulesResource extends XMLServerResource {
 
   @Override
   protected Representation httpGetInChildClass()
diff --git a/src/main/java/caosdb/server/resource/RolesResource.java b/src/main/java/caosdb/server/resource/RolesResource.java
index 09fb48da..d6415eff 100644
--- a/src/main/java/caosdb/server/resource/RolesResource.java
+++ b/src/main/java/caosdb/server/resource/RolesResource.java
@@ -22,16 +22,6 @@
  */
 package caosdb.server.resource;
 
-import java.io.IOException;
-import java.security.NoSuchAlgorithmException;
-import java.sql.SQLException;
-import org.jdom2.Document;
-import org.jdom2.Element;
-import org.jdom2.JDOMException;
-import org.restlet.data.Form;
-import org.restlet.data.Status;
-import org.restlet.representation.Representation;
-import org.restlet.representation.StringRepresentation;
 import caosdb.server.CaosDBException;
 import caosdb.server.accessControl.ACMPermissions;
 import caosdb.server.accessControl.Role;
@@ -42,8 +32,18 @@ import caosdb.server.transaction.InsertRoleTransaction;
 import caosdb.server.transaction.RetrieveRoleTransaction;
 import caosdb.server.transaction.UpdateRoleTransaction;
 import caosdb.server.utils.ServerMessages;
+import java.io.IOException;
+import java.security.NoSuchAlgorithmException;
+import java.sql.SQLException;
+import org.jdom2.Document;
+import org.jdom2.Element;
+import org.jdom2.JDOMException;
+import org.restlet.data.Form;
+import org.restlet.data.Status;
+import org.restlet.representation.Representation;
+import org.restlet.representation.StringRepresentation;
 
-public class RolesResource extends  XMLServerResource {
+public class RolesResource extends XMLServerResource {
 
   @Override
   protected Representation httpGetInChildClass()
@@ -52,21 +52,21 @@ public class RolesResource extends  XMLServerResource {
     final Element root = generateRootElement();
     final Document document = new Document();
 
-      final String name = getSpecifier();
-      if (name != null) {
-        getUser().checkPermission(ACMPermissions.PERMISSION_RETRIEVE_ROLE_DESCRIPTION(name));
-        final RetrieveRoleTransaction t = new RetrieveRoleTransaction(name);
-        try {
-          t.execute();
-          root.addContent(t.getRole().toElement());
-        } catch (final Message m) {
-          if (m == ServerMessages.ROLE_DOES_NOT_EXIST) {
-            return error(m, Status.CLIENT_ERROR_NOT_FOUND);
-          } else {
-            throw m;
-          }
+    final String name = getSpecifier();
+    if (name != null) {
+      getUser().checkPermission(ACMPermissions.PERMISSION_RETRIEVE_ROLE_DESCRIPTION(name));
+      final RetrieveRoleTransaction t = new RetrieveRoleTransaction(name);
+      try {
+        t.execute();
+        root.addContent(t.getRole().toElement());
+      } catch (final Message m) {
+        if (m == ServerMessages.ROLE_DOES_NOT_EXIST) {
+          return error(m, Status.CLIENT_ERROR_NOT_FOUND);
+        } else {
+          throw m;
         }
       }
+    }
 
     document.setRootElement(root);
     return ok(document);
@@ -76,19 +76,19 @@ public class RolesResource extends  XMLServerResource {
   protected Representation httpDeleteInChildClass()
       throws ConnectionException, SQLException, CaosDBException, IOException,
           NoSuchAlgorithmException, Exception {
-      final String name = getSpecifier();
-      if (name != null) {
-        final DeleteRoleTransaction t = new DeleteRoleTransaction(name);
-        try {
-          t.execute();
-        } catch (final Message m) {
-          if (m == ServerMessages.ROLE_DOES_NOT_EXIST) {
-            return error(m, Status.CLIENT_ERROR_NOT_FOUND);
-          } else {
-            throw m;
-          }
+    final String name = getSpecifier();
+    if (name != null) {
+      final DeleteRoleTransaction t = new DeleteRoleTransaction(name);
+      try {
+        t.execute();
+      } catch (final Message m) {
+        if (m == ServerMessages.ROLE_DOES_NOT_EXIST) {
+          return error(m, Status.CLIENT_ERROR_NOT_FOUND);
+        } else {
+          throw m;
         }
       }
+    }
 
     return new StringRepresentation("ok");
   }
diff --git a/src/main/java/caosdb/server/resource/ScriptingResource.java b/src/main/java/caosdb/server/resource/ScriptingResource.java
index 45e13f2b..e2db54db 100644
--- a/src/main/java/caosdb/server/resource/ScriptingResource.java
+++ b/src/main/java/caosdb/server/resource/ScriptingResource.java
@@ -24,6 +24,18 @@
 
 package caosdb.server.resource;
 
+import caosdb.server.FileSystem;
+import caosdb.server.accessControl.Principal;
+import caosdb.server.accessControl.SessionToken;
+import caosdb.server.accessControl.UserSources;
+import caosdb.server.entity.FileProperties;
+import caosdb.server.entity.Message;
+import caosdb.server.scripting.CallerSerializer;
+import caosdb.server.scripting.ServerSideScriptingCaller;
+import caosdb.server.utils.Serializer;
+import caosdb.server.utils.ServerMessages;
+import caosdb.server.utils.Utils;
+import com.ibm.icu.text.Collator;
 import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
@@ -45,20 +57,8 @@ import org.restlet.data.Status;
 import org.restlet.engine.header.ContentType;
 import org.restlet.ext.fileupload.RestletFileUpload;
 import org.restlet.representation.Representation;
-import com.ibm.icu.text.Collator;
-import caosdb.server.FileSystem;
-import caosdb.server.accessControl.Principal;
-import caosdb.server.accessControl.SessionToken;
-import caosdb.server.accessControl.UserSources;
-import caosdb.server.entity.FileProperties;
-import caosdb.server.entity.Message;
-import caosdb.server.scripting.CallerSerializer;
-import caosdb.server.scripting.ServerSideScriptingCaller;
-import caosdb.server.utils.Serializer;
-import caosdb.server.utils.ServerMessages;
-import caosdb.server.utils.Utils;
 
-public class ScriptingResource extends  XMLServerResource {
+public class ScriptingResource extends XMLServerResource {
 
   private ServerSideScriptingCaller caller;
   private Collection<FileProperties> deleteFiles = new LinkedList<>();
diff --git a/src/main/java/caosdb/server/resource/ServerLogsResource.java b/src/main/java/caosdb/server/resource/ServerLogsResource.java
index b9e72b63..f97aa4af 100644
--- a/src/main/java/caosdb/server/resource/ServerLogsResource.java
+++ b/src/main/java/caosdb/server/resource/ServerLogsResource.java
@@ -22,6 +22,9 @@
  */
 package caosdb.server.resource;
 
+import caosdb.server.CaosDBException;
+import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
+import caosdb.server.transaction.RetrieveLogRecordTransaction;
 import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
 import java.sql.SQLException;
@@ -33,11 +36,8 @@ import org.restlet.data.Form;
 import org.restlet.data.MediaType;
 import org.restlet.representation.Representation;
 import org.restlet.representation.StringRepresentation;
-import caosdb.server.CaosDBException;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
-import caosdb.server.transaction.RetrieveLogRecordTransaction;
 
-public class ServerLogsResource extends  XMLServerResource {
+public class ServerLogsResource extends XMLServerResource {
 
   @Override
   protected Representation httpGetInChildClass()
diff --git a/src/main/java/caosdb/server/resource/ServerPropertiesResource.java b/src/main/java/caosdb/server/resource/ServerPropertiesResource.java
index d69a0668..71644c20 100644
--- a/src/main/java/caosdb/server/resource/ServerPropertiesResource.java
+++ b/src/main/java/caosdb/server/resource/ServerPropertiesResource.java
@@ -1,14 +1,14 @@
 package caosdb.server.resource;
 
+import caosdb.server.CaosDBServer;
+import caosdb.server.ServerPropertiesSerializer;
+import caosdb.server.accessControl.ACMPermissions;
 import org.restlet.data.Form;
 import org.restlet.data.Parameter;
 import org.restlet.data.Status;
 import org.restlet.representation.Representation;
-import caosdb.server.CaosDBServer;
-import caosdb.server.ServerPropertiesSerializer;
-import caosdb.server.accessControl.ACMPermissions;
 
-public class ServerPropertiesResource extends  XMLServerResource {
+public class ServerPropertiesResource extends XMLServerResource {
 
   @Override
   protected void doInit() {
diff --git a/src/main/java/caosdb/server/resource/SharedFileResource.java b/src/main/java/caosdb/server/resource/SharedFileResource.java
index bded689b..b10f072b 100644
--- a/src/main/java/caosdb/server/resource/SharedFileResource.java
+++ b/src/main/java/caosdb/server/resource/SharedFileResource.java
@@ -25,6 +25,11 @@
 package caosdb.server.resource;
 
 import static java.net.URLDecoder.decode;
+
+import caosdb.server.FileSystem;
+import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
+import caosdb.server.utils.FileUtils;
+import caosdb.server.utils.ServerMessages;
 import java.io.File;
 import java.io.IOException;
 import org.jdom2.JDOMException;
@@ -33,17 +38,13 @@ import org.restlet.data.MediaType;
 import org.restlet.data.Status;
 import org.restlet.representation.FileRepresentation;
 import org.restlet.representation.Representation;
-import caosdb.server.FileSystem;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
-import caosdb.server.utils.FileUtils;
-import caosdb.server.utils.ServerMessages;
 
 /**
  * Download temporary files via GET method only.
  *
  * @author Daniel Hornung
  */
-public class SharedFileResource extends  XMLServerResource {
+public class SharedFileResource extends XMLServerResource {
 
   /**
    * Download a File from the tempfiles folder. Only one File per Request.
diff --git a/src/main/java/caosdb/server/resource/ThumbnailsResource.java b/src/main/java/caosdb/server/resource/ThumbnailsResource.java
index cde3b9f0..5694868e 100644
--- a/src/main/java/caosdb/server/resource/ThumbnailsResource.java
+++ b/src/main/java/caosdb/server/resource/ThumbnailsResource.java
@@ -23,6 +23,9 @@
 package caosdb.server.resource;
 
 import static caosdb.server.FileSystem.getFromFileSystem;
+
+import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
+import caosdb.server.utils.ServerMessages;
 import java.io.File;
 import java.io.IOException;
 import org.jdom2.JDOMException;
@@ -31,10 +34,8 @@ import org.restlet.data.MediaType;
 import org.restlet.data.Status;
 import org.restlet.representation.FileRepresentation;
 import org.restlet.representation.Representation;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
-import caosdb.server.utils.ServerMessages;
 
-public class ThumbnailsResource extends  XMLServerResource {
+public class ThumbnailsResource extends XMLServerResource {
 
   /**
    * Download a File from the CaosDBFileSystem. Only one File per Request.
diff --git a/src/main/java/caosdb/server/resource/UserResource.java b/src/main/java/caosdb/server/resource/UserResource.java
index 51bf19b4..60e2293c 100644
--- a/src/main/java/caosdb/server/resource/UserResource.java
+++ b/src/main/java/caosdb/server/resource/UserResource.java
@@ -22,15 +22,6 @@
  */
 package caosdb.server.resource;
 
-import java.io.IOException;
-import java.security.NoSuchAlgorithmException;
-import java.sql.SQLException;
-import org.jdom2.Document;
-import org.jdom2.Element;
-import org.jdom2.JDOMException;
-import org.restlet.data.Form;
-import org.restlet.data.Status;
-import org.restlet.representation.Representation;
 import caosdb.server.CaosDBException;
 import caosdb.server.CaosDBServer;
 import caosdb.server.ServerProperties;
@@ -44,13 +35,22 @@ import caosdb.server.transaction.InsertUserTransaction;
 import caosdb.server.transaction.RetrieveUserTransaction;
 import caosdb.server.transaction.UpdateUserTransaction;
 import caosdb.server.utils.ServerMessages;
+import java.io.IOException;
+import java.security.NoSuchAlgorithmException;
+import java.sql.SQLException;
+import org.jdom2.Document;
+import org.jdom2.Element;
+import org.jdom2.JDOMException;
+import org.restlet.data.Form;
+import org.restlet.data.Status;
+import org.restlet.representation.Representation;
 
 /**
  * This class handles requests for Users.
  *
  * @author Timm Fitschen
  */
-public class UserResource extends  XMLServerResource {
+public class UserResource extends XMLServerResource {
 
   @Override
   protected Representation httpGetInChildClass()
@@ -60,25 +60,25 @@ public class UserResource extends  XMLServerResource {
     final Document doc = new Document();
     final Element rootElem = generateRootElement();
 
-      try {
-        final String username = getSpecifier();
-        final String realm =
-            (getRequestAttributes().containsKey("realm")
-                ? (String) getRequestAttributes().get("realm")
-                : UserSources.guessRealm(username, UserSources.getDefaultRealm()));
+    try {
+      final String username = getSpecifier();
+      final String realm =
+          (getRequestAttributes().containsKey("realm")
+              ? (String) getRequestAttributes().get("realm")
+              : UserSources.guessRealm(username, UserSources.getDefaultRealm()));
 
-        getUser().checkPermission(ACMPermissions.PERMISSION_RETRIEVE_USER_INFO(realm, username));
+      getUser().checkPermission(ACMPermissions.PERMISSION_RETRIEVE_USER_INFO(realm, username));
 
-        final RetrieveUserTransaction t = new RetrieveUserTransaction(realm, username);
-        t.execute();
+      final RetrieveUserTransaction t = new RetrieveUserTransaction(realm, username);
+      t.execute();
 
-        rootElem.addContent(t.getUserElement());
-      } catch (final Message m) {
-        if (m == ServerMessages.ACCOUNT_DOES_NOT_EXIST) {
-          return error(ServerMessages.ACCOUNT_DOES_NOT_EXIST, Status.CLIENT_ERROR_NOT_FOUND);
-        }
-        throw m;
+      rootElem.addContent(t.getUserElement());
+    } catch (final Message m) {
+      if (m == ServerMessages.ACCOUNT_DOES_NOT_EXIST) {
+        return error(ServerMessages.ACCOUNT_DOES_NOT_EXIST, Status.CLIENT_ERROR_NOT_FOUND);
       }
+      throw m;
+    }
 
     doc.setRootElement(rootElem);
     return ok(doc);
diff --git a/src/main/java/caosdb/server/resource/UserRolesResource.java b/src/main/java/caosdb/server/resource/UserRolesResource.java
index 7a85e4ad..8de1a952 100644
--- a/src/main/java/caosdb/server/resource/UserRolesResource.java
+++ b/src/main/java/caosdb/server/resource/UserRolesResource.java
@@ -22,6 +22,14 @@
  */
 package caosdb.server.resource;
 
+import caosdb.server.CaosDBException;
+import caosdb.server.accessControl.ACMPermissions;
+import caosdb.server.accessControl.UserSources;
+import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
+import caosdb.server.entity.Message;
+import caosdb.server.transaction.RetrieveUserRolesTransaction;
+import caosdb.server.transaction.UpdateUserRolesTransaction;
+import caosdb.server.utils.ServerMessages;
 import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
 import java.sql.SQLException;
@@ -32,14 +40,6 @@ import org.jdom2.Element;
 import org.jdom2.JDOMException;
 import org.restlet.data.Status;
 import org.restlet.representation.Representation;
-import caosdb.server.CaosDBException;
-import caosdb.server.accessControl.ACMPermissions;
-import caosdb.server.accessControl.UserSources;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
-import caosdb.server.entity.Message;
-import caosdb.server.transaction.RetrieveUserRolesTransaction;
-import caosdb.server.transaction.UpdateUserRolesTransaction;
-import caosdb.server.utils.ServerMessages;
 
 public class UserRolesResource extends XMLServerResource {
 
diff --git a/src/main/java/caosdb/server/resource/XMLServerResource.java b/src/main/java/caosdb/server/resource/XMLServerResource.java
index 05b3e247..2650660a 100644
--- a/src/main/java/caosdb/server/resource/XMLServerResource.java
+++ b/src/main/java/caosdb/server/resource/XMLServerResource.java
@@ -19,6 +19,14 @@
  */
 package caosdb.server.resource;
 
+import caosdb.server.CaosDBException;
+import caosdb.server.accessControl.AuthenticationUtils;
+import caosdb.server.accessControl.Principal;
+import caosdb.server.accessControl.UserSources;
+import caosdb.server.converter.xml.XMLParser;
+import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
+import caosdb.server.entity.Message;
+import caosdb.server.utils.ServerMessages;
 import java.io.IOException;
 import java.io.InputStream;
 import java.security.NoSuchAlgorithmException;
@@ -38,19 +46,11 @@ import org.restlet.resource.Delete;
 import org.restlet.resource.Get;
 import org.restlet.resource.Post;
 import org.restlet.resource.Put;
-import caosdb.server.CaosDBException;
-import caosdb.server.accessControl.AuthenticationUtils;
-import caosdb.server.accessControl.Principal;
-import caosdb.server.accessControl.UserSources;
-import caosdb.server.converter.xml.XMLParser;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
-import caosdb.server.entity.Message;
-import caosdb.server.utils.ServerMessages;
 
 /**
  * This is a temporary bridge class. It contains all code which is necessary for any resources that
  * are hard-coded to deliver XML representations.
- * 
+ *
  * @author Timm Fitschen
  */
 @Deprecated
@@ -72,16 +72,15 @@ public abstract class XMLServerResource extends AbstractCaosDBServerResource {
   /**
    * Creates the XML root.
    *
-   * <p>
-   * The XML root node contains:
+   * <p>The XML root node contains:
    *
    * <p>
    *
    * <ul>
-   * <li>User info as per addUserInfo
-   * <li>The sRID (server-side request ID)
-   * <li>A timestamp
-   * <li>The URI to this resource.
+   *   <li>User info as per addUserInfo
+   *   <li>The sRID (server-side request ID)
+   *   <li>A timestamp
+   *   <li>The URI to this resource.
    */
   protected Element generateRootElement() {
     final Element retRoot = new Element("Response");
@@ -125,8 +124,7 @@ public abstract class XMLServerResource extends AbstractCaosDBServerResource {
    */
   private void addRoles(Element userInfo, Subject user) {
     Collection<String> roles = UserSources.resolve(user.getPrincipals());
-    if (roles == null)
-      return;
+    if (roles == null) return;
     Element rs = new Element("Roles");
     for (String role : roles) {
       Element r = new Element("Role");
@@ -155,8 +153,9 @@ public abstract class XMLServerResource extends AbstractCaosDBServerResource {
     }
   }
 
-  protected abstract Representation httpGetInChildClass() throws ConnectionException, IOException,
-      SQLException, CaosDBException, NoSuchAlgorithmException, Exception;
+  protected abstract Representation httpGetInChildClass()
+      throws ConnectionException, IOException, SQLException, CaosDBException,
+          NoSuchAlgorithmException, Exception;
 
   @Post
   public Representation httpPost(final Representation entity) {
@@ -187,8 +186,9 @@ public abstract class XMLServerResource extends AbstractCaosDBServerResource {
     return null;
   }
 
-  protected Representation httpDeleteInChildClass() throws ConnectionException, SQLException,
-      CaosDBException, IOException, NoSuchAlgorithmException, Exception {
+  protected Representation httpDeleteInChildClass()
+      throws ConnectionException, SQLException, CaosDBException, IOException,
+          NoSuchAlgorithmException, Exception {
     getResponse().setStatus(Status.CLIENT_ERROR_METHOD_NOT_ALLOWED);
     return null;
   }
@@ -204,7 +204,7 @@ public abstract class XMLServerResource extends AbstractCaosDBServerResource {
 
   protected Representation httpPostInChildClass(final Representation entity)
       throws ConnectionException, SQLException, CaosDBException, IOException,
-      NoSuchAlgorithmException, xmlNotWellFormedException, JDOMException, Exception {
+          NoSuchAlgorithmException, xmlNotWellFormedException, JDOMException, Exception {
     getResponse().setStatus(Status.CLIENT_ERROR_METHOD_NOT_ALLOWED);
     return null;
   }
@@ -237,8 +237,8 @@ public abstract class XMLServerResource extends AbstractCaosDBServerResource {
   }
 
   /**
-   * Return a Representation containing the error message and set the {@link Response}'s
-   * {@link Status}.
+   * Return a Representation containing the error message and set the {@link Response}'s {@link
+   * Status}.
    *
    * @param m - the error message.
    * @param status - the response status
@@ -266,8 +266,8 @@ public abstract class XMLServerResource extends AbstractCaosDBServerResource {
   }
 
   /**
-   * Return a Representation containing the warning message but leave the {@link Response}'s
-   * {@link Status} where it is - which is usually 200 - OK when this method happens to be called.
+   * Return a Representation containing the warning message but leave the {@link Response}'s {@link
+   * Status} where it is - which is usually 200 - OK when this method happens to be called.
    *
    * @param m - the warning message.
    * @return A Representation of the warning.
@@ -325,5 +325,4 @@ public abstract class XMLServerResource extends AbstractCaosDBServerResource {
     }
     return root;
   }
-
 }
diff --git a/src/main/java/caosdb/server/resource/transaction/AbstractEntityResource.java b/src/main/java/caosdb/server/resource/transaction/AbstractEntityResource.java
index d1f7a590..a1f07281 100644
--- a/src/main/java/caosdb/server/resource/transaction/AbstractEntityResource.java
+++ b/src/main/java/caosdb/server/resource/transaction/AbstractEntityResource.java
@@ -1,9 +1,16 @@
 package caosdb.server.resource.transaction;
 
-
-
 import static caosdb.server.utils.Utils.isNonNullInteger;
 import static java.net.URLDecoder.decode;
+
+import caosdb.server.CaosDBException;
+import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
+import caosdb.server.entity.container.RetrieveContainer;
+import caosdb.server.entity.container.TransactionContainer;
+import caosdb.server.resource.AbstractCaosDBServerResource;
+import caosdb.server.resource.transaction.handlers.RequestHandler;
+import caosdb.server.resource.transaction.handlers.SimpleGetRequestHandler;
+import caosdb.server.transaction.Retrieve;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.security.NoSuchAlgorithmException;
@@ -14,21 +21,12 @@ import java.util.Map;
 import org.restlet.data.Form;
 import org.restlet.data.Parameter;
 import org.restlet.resource.Get;
-import caosdb.server.CaosDBException;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
-import caosdb.server.entity.container.RetrieveContainer;
-import caosdb.server.entity.container.TransactionContainer;
-import caosdb.server.resource.AbstractCaosDBServerResource;
-import caosdb.server.resource.transaction.handlers.RequestHandler;
-import caosdb.server.resource.transaction.handlers.SimpleGetRequestHandler;
-import caosdb.server.transaction.Retrieve;
 
 public abstract class AbstractEntityResource extends AbstractCaosDBServerResource {
-  
+
   private ArrayList<Integer> requestedIDs = new ArrayList<Integer>();
   private ArrayList<String> requestedNames = new ArrayList<String>();
 
-
   public final ArrayList<Integer> getRequestedIDs() {
     return this.requestedIDs;
   }
@@ -36,41 +34,40 @@ public abstract class AbstractEntityResource extends AbstractCaosDBServerResourc
   public final ArrayList<String> getRequestedNames() {
     return this.requestedNames;
   }
-  
+
   protected RequestHandler<RetrieveContainer> getGetRequestHandler() {
     return new SimpleGetRequestHandler();
   }
 
   @Get
-  public final TransactionContainer httpGetInChildClass() throws ConnectionException, IOException,
-      SQLException, CaosDBException, NoSuchAlgorithmException, Exception {
-      
-        final long t1 = System.currentTimeMillis();
-
-        final RetrieveContainer entityContainer =
-            new RetrieveContainer(getUser(), getTimestamp(), getSRID(), getFlags());
-      
-        getGetRequestHandler().handle(this, entityContainer);
-      
-        final Retrieve retrieve = new Retrieve(entityContainer);
-        retrieve.execute();
-      
-        final long t2 = System.currentTimeMillis();
-        entityContainer
-            .getTransactionBenchmark()
-            .addMeasurement(getClass().getSimpleName() + ".httpGetInChildClass", t2 - t1);
-        return entityContainer;
-      }
+  public final TransactionContainer httpGetInChildClass()
+      throws ConnectionException, IOException, SQLException, CaosDBException,
+          NoSuchAlgorithmException, Exception {
+
+    final long t1 = System.currentTimeMillis();
+
+    final RetrieveContainer entityContainer =
+        new RetrieveContainer(getUser(), getTimestamp(), getSRID(), getFlags());
+
+    getGetRequestHandler().handle(this, entityContainer);
+
+    final Retrieve retrieve = new Retrieve(entityContainer);
+    retrieve.execute();
+
+    final long t2 = System.currentTimeMillis();
+    entityContainer
+        .getTransactionBenchmark()
+        .addMeasurement(getClass().getSimpleName() + ".httpGetInChildClass", t2 - t1);
+    return entityContainer;
+  }
 
   public Map<String, String> getFlags() {
     final Form queryAsForm = getRequest().getResourceRef().getQueryAsForm(true);
     final Map<String, String> result = new HashMap<>();
     if (queryAsForm != null) {
       for (final Parameter p : queryAsForm) {
-        result
-            .put(
-                p.getName(),
-                (p.getValue() == null || p.getValue().isEmpty() ? null : p.getValue()));
+        result.put(
+            p.getName(), (p.getValue() == null || p.getValue().isEmpty() ? null : p.getValue()));
       }
     }
     return result;
@@ -79,8 +76,7 @@ public abstract class AbstractEntityResource extends AbstractCaosDBServerResourc
   @Override
   public void doInit() {
     super.doInit();
-    
-    
+
     String specifier = (String) getRequestAttributes().get("specifier");
     if (specifier != null && !specifier.equals("")) {
       try {
@@ -90,7 +86,7 @@ public abstract class AbstractEntityResource extends AbstractCaosDBServerResourc
         e.printStackTrace();
         System.exit(1);
       }
-  
+
       String[] requestedItems = specifier.split("&");
       for (final String requestedItem : requestedItems) {
         if (isNonNullInteger(requestedItem)) {
@@ -109,5 +105,4 @@ public abstract class AbstractEntityResource extends AbstractCaosDBServerResourc
       }
     }
   }
-
 }
diff --git a/src/main/java/caosdb/server/resource/transaction/EntityResource.java b/src/main/java/caosdb/server/resource/transaction/EntityResource.java
index e31b748d..8d04e649 100644
--- a/src/main/java/caosdb/server/resource/transaction/EntityResource.java
+++ b/src/main/java/caosdb/server/resource/transaction/EntityResource.java
@@ -22,8 +22,6 @@
  */
 package caosdb.server.resource.transaction;
 
-import org.restlet.resource.Post;
-import org.restlet.resource.Put;
 import caosdb.server.entity.container.DeleteContainer;
 import caosdb.server.entity.container.TransactionContainer;
 import caosdb.server.resource.transaction.handlers.IDHandler;
@@ -31,15 +29,15 @@ import caosdb.server.resource.transaction.handlers.RequestHandler;
 import caosdb.server.transaction.Delete;
 import caosdb.server.transaction.Insert;
 import caosdb.server.transaction.Update;
+import org.restlet.resource.Post;
+import org.restlet.resource.Put;
 
 public class EntityResource extends AbstractEntityResource {
 
-
   protected RequestHandler<DeleteContainer> getDeleteRequestHandler() {
     return new IDHandler<DeleteContainer>();
   }
 
-
   @org.restlet.resource.Delete
   public final TransactionContainer httpDeleteInChildClass() throws Exception {
 
@@ -55,8 +53,8 @@ public class EntityResource extends AbstractEntityResource {
   }
 
   @Post
-  public final TransactionContainer httpPostInChildClass(final TransactionContainer entityContainer) throws Exception {
-
+  public final TransactionContainer httpPostInChildClass(final TransactionContainer entityContainer)
+      throws Exception {
 
     entityContainer.setFlags(getFlags());
     final Insert insert = new Insert(entityContainer);
@@ -66,14 +64,12 @@ public class EntityResource extends AbstractEntityResource {
   }
 
   @Put
-  public final TransactionContainer httpPutInChildClass(final TransactionContainer entityContainer) throws Exception
-     {
-
+  public final TransactionContainer httpPutInChildClass(final TransactionContainer entityContainer)
+      throws Exception {
 
     entityContainer.setFlags(getFlags());
     final Update update = new Update(entityContainer);
-      update.execute();
-      return entityContainer;
-
+    update.execute();
+    return entityContainer;
   }
 }
diff --git a/src/main/java/caosdb/server/resource/transaction/handlers/RetrieveGlobalEntityPermissionsHandler.java b/src/main/java/caosdb/server/resource/transaction/handlers/RetrieveGlobalEntityPermissionsHandler.java
index f6f0553d..e7b92f91 100644
--- a/src/main/java/caosdb/server/resource/transaction/handlers/RetrieveGlobalEntityPermissionsHandler.java
+++ b/src/main/java/caosdb/server/resource/transaction/handlers/RetrieveGlobalEntityPermissionsHandler.java
@@ -29,7 +29,8 @@ import caosdb.server.resource.transaction.AbstractEntityResource;
 public class RetrieveGlobalEntityPermissionsHandler extends SimpleGetRequestHandler {
 
   @Override
-  public void handle(final AbstractEntityResource t, final RetrieveContainer container) throws Exception {
+  public void handle(final AbstractEntityResource t, final RetrieveContainer container)
+      throws Exception {
     super.handle(t, container);
     container.addMessage(EntityPermission.getAllEntityPermissions());
   }
diff --git a/src/main/java/caosdb/server/resource/transaction/handlers/SimpleGetRequestHandler.java b/src/main/java/caosdb/server/resource/transaction/handlers/SimpleGetRequestHandler.java
index 3e712885..e8778396 100644
--- a/src/main/java/caosdb/server/resource/transaction/handlers/SimpleGetRequestHandler.java
+++ b/src/main/java/caosdb/server/resource/transaction/handlers/SimpleGetRequestHandler.java
@@ -28,7 +28,8 @@ import caosdb.server.resource.transaction.AbstractEntityResource;
 public class SimpleGetRequestHandler extends IDHandler<RetrieveContainer> {
 
   @Override
-  public void handle(final AbstractEntityResource t, final RetrieveContainer container) throws Exception {
+  public void handle(final AbstractEntityResource t, final RetrieveContainer container)
+      throws Exception {
     super.handle(t, container);
     for (final String name : t.getRequestedNames()) {
       container.add(name);
diff --git a/src/main/java/caosdb/server/transaction/FileStorageConsistencyCheck.java b/src/main/java/caosdb/server/transaction/FileStorageConsistencyCheck.java
index 01afe0fe..26cab30e 100644
--- a/src/main/java/caosdb/server/transaction/FileStorageConsistencyCheck.java
+++ b/src/main/java/caosdb/server/transaction/FileStorageConsistencyCheck.java
@@ -22,13 +22,6 @@
  */
 package caosdb.server.transaction;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map.Entry;
-import java.util.TimeZone;
-import org.jdom2.Element;
 import caosdb.datetime.UTCDateTime;
 import caosdb.server.database.DatabaseMonitor;
 import caosdb.server.database.access.Access;
@@ -42,6 +35,13 @@ import caosdb.server.database.proto.SparseEntity;
 import caosdb.server.entity.Message;
 import caosdb.server.entity.xml.ToElementable;
 import caosdb.server.utils.SHA512;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map.Entry;
+import java.util.TimeZone;
+import org.jdom2.Element;
 
 public class FileStorageConsistencyCheck extends Thread
     implements ToElementable, TransactionInterface {
@@ -91,10 +91,14 @@ public class FileStorageConsistencyCheck extends Thread
           final GetFileRecordByPath t = execute(new GetFileRecordByPath(path), this.access);
           final int result =
               execute(
-                  new FileConsistencyCheck(
-                      path, t.getSize(), t.getHash(), t.getLastConsistencyCheck(), new SHA512()),
-                  this.access)
-              .getResult();
+                      new FileConsistencyCheck(
+                          path,
+                          t.getSize(),
+                          t.getHash(),
+                          t.getLastConsistencyCheck(),
+                          new SHA512()),
+                      this.access)
+                  .getResult();
 
           if (result != FileConsistencyCheck.OK) {
             this.results.put(path, result);
@@ -105,7 +109,6 @@ public class FileStorageConsistencyCheck extends Thread
           this.results.put(path, FileConsistencyCheck.UNKNOWN_FILE);
           continue;
         }
-
       }
 
       // test all remaining file records
diff --git a/src/main/java/caosdb/server/transaction/Insert.java b/src/main/java/caosdb/server/transaction/Insert.java
index 36ebf012..760485d1 100644
--- a/src/main/java/caosdb/server/transaction/Insert.java
+++ b/src/main/java/caosdb/server/transaction/Insert.java
@@ -22,7 +22,6 @@
  */
 package caosdb.server.transaction;
 
-import org.apache.shiro.SecurityUtils;
 import caosdb.server.database.access.Access;
 import caosdb.server.database.backend.transaction.InsertEntity;
 import caosdb.server.entity.EntityInterface;
@@ -31,6 +30,7 @@ import caosdb.server.entity.container.TransactionContainer;
 import caosdb.server.permissions.EntityACL;
 import caosdb.server.utils.EntityStatus;
 import caosdb.server.utils.ServerMessages;
+import org.apache.shiro.SecurityUtils;
 
 public class Insert extends WriteTransaction<TransactionContainer> {
 
diff --git a/src/main/java/caosdb/server/transaction/Update.java b/src/main/java/caosdb/server/transaction/Update.java
index 0fc0e03c..83ba07ff 100644
--- a/src/main/java/caosdb/server/transaction/Update.java
+++ b/src/main/java/caosdb/server/transaction/Update.java
@@ -22,12 +22,6 @@
  */
 package caosdb.server.transaction;
 
-import java.io.IOException;
-import java.security.NoSuchAlgorithmException;
-import java.util.HashSet;
-import java.util.Set;
-import org.apache.shiro.authz.AuthorizationException;
-import com.google.common.base.Objects;
 import caosdb.server.CaosDBException;
 import caosdb.server.database.access.Access;
 import caosdb.server.database.backend.transaction.RetrieveFullEntity;
@@ -43,6 +37,12 @@ import caosdb.server.permissions.EntityPermission;
 import caosdb.server.permissions.Permission;
 import caosdb.server.utils.EntityStatus;
 import caosdb.server.utils.ServerMessages;
+import com.google.common.base.Objects;
+import java.io.IOException;
+import java.security.NoSuchAlgorithmException;
+import java.util.HashSet;
+import java.util.Set;
+import org.apache.shiro.authz.AuthorizationException;
 
 public class Update extends WriteTransaction<TransactionContainer> {
 
@@ -59,7 +59,7 @@ public class Update extends WriteTransaction<TransactionContainer> {
     final TransactionContainer oldContainer = new TransactionContainer();
     for (final Entity entity : getContainer()) {
       entity.setSkip(EntityStatus.QUALIFIED);
-      
+
       // entity has no id -> it cannot be updated.
       if (!entity.hasId()) {
         entity.addError(ServerMessages.ENTITY_HAS_NO_ID);
diff --git a/src/test/java/caosdb/server/permissions/EntityACLTest.java b/src/test/java/caosdb/server/permissions/EntityACLTest.java
index 53b15fe8..8d69d9b3 100644
--- a/src/test/java/caosdb/server/permissions/EntityACLTest.java
+++ b/src/test/java/caosdb/server/permissions/EntityACLTest.java
@@ -23,6 +23,10 @@
 package caosdb.server.permissions;
 
 import static org.junit.Assert.assertNotNull;
+
+import caosdb.server.CaosDBServer;
+import caosdb.server.converter.xml.XMLParser;
+import caosdb.server.utils.Utils;
 import java.io.IOException;
 import java.util.BitSet;
 import java.util.LinkedList;
@@ -31,9 +35,6 @@ import org.jdom2.JDOMException;
 import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
-import caosdb.server.CaosDBServer;
-import caosdb.server.converter.xml.XMLParser;
-import caosdb.server.utils.Utils;
 
 public class EntityACLTest {
 
diff --git a/src/test/java/caosdb/server/resource/TestAbstractCaosDBServerResource.java b/src/test/java/caosdb/server/resource/TestAbstractCaosDBServerResource.java
index 1ae724bb..5529449b 100644
--- a/src/test/java/caosdb/server/resource/TestAbstractCaosDBServerResource.java
+++ b/src/test/java/caosdb/server/resource/TestAbstractCaosDBServerResource.java
@@ -2,27 +2,30 @@ package caosdb.server.resource;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+
+import caosdb.server.CaosDBException;
+import caosdb.server.CaosDBServer;
+import caosdb.server.ServerProperties;
+import caosdb.server.accessControl.AnonymousAuthenticationToken;
+import caosdb.server.accessControl.AnonymousRealm;
+import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Paths;
 import java.security.NoSuchAlgorithmException;
 import java.sql.SQLException;
+import java.util.Date;
+import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.mgt.DefaultSecurityManager;
 import org.apache.shiro.subject.Subject;
-import org.apache.shiro.subject.support.DelegatingSubject;
 import org.jdom2.Element;
 import org.junit.BeforeClass;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
+import org.restlet.Request;
 import org.restlet.data.Reference;
 import org.restlet.representation.Representation;
-import caosdb.server.CaosDBException;
-import caosdb.server.CaosDBServer;
-import caosdb.server.ServerProperties;
-import caosdb.server.accessControl.AnonymousAuthenticationToken;
-import caosdb.server.accessControl.AnonymousRealm;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
 
 public class TestAbstractCaosDBServerResource {
 
@@ -35,10 +38,19 @@ public class TestAbstractCaosDBServerResource {
 
   @Test
   public void testReponseRootElement() throws IOException {
-    final Subject user = new DelegatingSubject(new DefaultSecurityManager(new AnonymousRealm()));
+    SecurityUtils.setSecurityManager(new DefaultSecurityManager(new AnonymousRealm()));
+    Subject user = SecurityUtils.getSubject();
     user.login(AnonymousAuthenticationToken.getInstance());
     XMLServerResource s =
-        new  XMLServerResource() {
+        new XMLServerResource() {
+
+          private Request requ = new Request();
+
+          @Override
+          protected void doInit() {
+            getRequest().getAttributes().put("SRID", "TEST-SRID");
+            getRequest().setDate(new Date(0));
+          }
 
           @Override
           protected Representation httpGetInChildClass()
@@ -48,41 +60,24 @@ public class TestAbstractCaosDBServerResource {
             return null;
           }
 
-          @Override
-          public String getSRID() {
-            return "TEST-SRID";
-          }
-
-          @Override
-          public String getCRID() {
-            return "TEST-CRID";
-          }
-
-          @Override
-          public Long getTimestamp() {
-            return 0L;
-          }
-
           @Override
           public Reference getRootRef() {
             return new Reference("https://example.com/root/");
           }
 
           @Override
-          public Subject getUser() {
-            // TODO Auto-generated method stub
-            return user;
+          public Request getRequest() {
+            return requ;
           }
         };
     provideUserSourcesFile();
+    s.doInit();
     Element response = s.generateRootElement();
     assertNotNull(response);
     assertEquals("TEST-SRID", response.getAttribute("srid").getValue());
-    assertEquals("TEST-CRID", response.getAttribute("crid").getValue());
     assertEquals("0", response.getAttribute("timestamp").getValue());
     assertEquals("https://example.com/root/", response.getAttributeValue("baseuri"));
-    Element userInfo = response.getChild("UserInfo");
-    assertNotNull(userInfo);
+    assertNotNull(response.getChild("UserInfo"));
   }
 
   /** Creates a dummy usersources.ini and injects it into the server properties. */
diff --git a/src/test/java/caosdb/server/resource/TestSharedFileResource.java b/src/test/java/caosdb/server/resource/TestSharedFileResource.java
index 41e134d2..ba54c859 100644
--- a/src/test/java/caosdb/server/resource/TestSharedFileResource.java
+++ b/src/test/java/caosdb/server/resource/TestSharedFileResource.java
@@ -1,21 +1,18 @@
 /*
- * ** header v3.0
- * This file is a part of the CaosDB Project.
+ * ** header v3.0 This file is a part of the CaosDB Project.
  *
  * Copyright (C) 2019 IndiScale GmbH
  *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
+ * This program is free software: you can redistribute it and/or modify it under the terms of the
+ * GNU Affero General Public License as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
  *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
+ * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Affero General Public License for more details.
  *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ * You should have received a copy of the GNU Affero General Public License along with this program.
+ * If not, see <https://www.gnu.org/licenses/>.
  *
  * ** end header
  */
@@ -26,17 +23,20 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
 
+import caosdb.server.CaosDBException;
 import caosdb.server.CaosDBServer;
 import caosdb.server.FileSystem;
 import caosdb.server.ServerProperties;
 import caosdb.server.accessControl.AnonymousAuthenticationToken;
 import caosdb.server.accessControl.AnonymousRealm;
+import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
 import java.io.File;
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Paths;
+import java.security.NoSuchAlgorithmException;
+import java.sql.SQLException;
 import java.util.concurrent.ConcurrentMap;
 import net.jcip.annotations.NotThreadSafe;
 import org.apache.shiro.mgt.DefaultSecurityManager;
@@ -53,7 +53,6 @@ import org.restlet.data.Disposition;
 import org.restlet.data.MediaType;
 import org.restlet.data.Method;
 import org.restlet.data.Reference;
-import org.restlet.data.Status;
 import org.restlet.representation.FileRepresentation;
 import org.restlet.representation.Representation;
 import org.restlet.representation.StringRepresentation;
@@ -125,27 +124,12 @@ public class TestSharedFileResource {
     user.login(AnonymousAuthenticationToken.getInstance());
     SharedFileResource resource =
         new SharedFileResource() {
-          // @Override
-          // protected Representation httpGetInChildClass()
-          //     throws ConnectionException, IOException, SQLException, CaosDBException,
-          //         NoSuchAlgorithmException, Exception {
-          //   // TODO Auto-generated method stub
-          //   return super.httpGetInChildClass();
-          // }
-
-          @Override
-          public String getSRID() {
-            return "TEST-SRID";
-          }
-
           @Override
-          public String getCRID() {
-            return "TEST-CRID";
-          }
-
-          @Override
-          public Long getTimestamp() {
-            return 0L;
+          protected Representation httpGetInChildClass()
+              throws ConnectionException, IOException, SQLException, CaosDBException,
+                  NoSuchAlgorithmException, Exception {
+            // TODO Auto-generated method stub
+            return super.httpGetInChildClass();
           }
 
           @Override
@@ -157,35 +141,20 @@ public class TestSharedFileResource {
           public Reference getReference() {
             return new Reference("https://example.com/");
           }
-
-          @Override
-          public Subject getUser() {
-            // TODO Auto-generated method stub
-            return user;
-          }
         };
 
     Representation entity = new StringRepresentation("lalala");
     entity.setMediaType(MediaType.TEXT_ALL);
     Request req = new Request(Method.GET, "../Shared/", entity);
+    req.setHostRef("https://example.com");
     ConcurrentMap<String, Object> attrs = req.getAttributes();
     attrs.put("path", legalFileStringComplete);
     req.setAttributes(attrs);
     resource.init(null, req, new Response(null));
     Representation repr = resource.handle();
     Response resp = resource.getResponse();
-    // No unit testing framework yet.
-    if (false) {
-      assertEquals(Status.SUCCESS_OK, resp.getStatus());
-    }
-    FileRepresentation frep;
-    try {
-      frep = (FileRepresentation) repr;
-    } catch (Exception e) {
-      fail("Rsssource did not produce a FileRepresentation.");
-      // This line won't be reached, but is necessary for the compiler.
-      frep = (FileRepresentation) repr;
-    }
+    assertTrue(resp.getStatus().isSuccess());
+    FileRepresentation frep = (FileRepresentation) repr;
     assertTrue(frep.getFile().toString().endsWith(legalFileStringComplete));
     assertEquals(Disposition.TYPE_ATTACHMENT, frep.getDisposition().getType());
   }
-- 
GitLab