tests and bean loader hot fix
diff --git a/src/main/java/de/ids_mannheim/korap/resource/rewrite/DocMatchRewrite.java b/src/main/java/de/ids_mannheim/korap/resource/rewrite/DocMatchRewrite.java
index 649f58d..5c8e568 100644
--- a/src/main/java/de/ids_mannheim/korap/resource/rewrite/DocMatchRewrite.java
+++ b/src/main/java/de/ids_mannheim/korap/resource/rewrite/DocMatchRewrite.java
@@ -4,12 +4,12 @@
 import de.ids_mannheim.korap.config.*;
 import de.ids_mannheim.korap.exceptions.KustvaktException;
 import de.ids_mannheim.korap.handlers.DocumentDao;
+import de.ids_mannheim.korap.interfaces.db.ResourceOperationIface;
 import de.ids_mannheim.korap.resources.Document;
 import de.ids_mannheim.korap.user.User;
 import net.sf.ehcache.Cache;
 import net.sf.ehcache.CacheManager;
 import net.sf.ehcache.Element;
-import org.w3c.dom.Attr;
 
 /**
  * @author hanl
@@ -19,7 +19,7 @@
 public class DocMatchRewrite implements RewriteTask.IterableRewritePath,
         BeanInjectable {
 
-    private DocumentDao docDao;
+    private ResourceOperationIface<Document> docDao;
     private Cache cache;
 
 
@@ -30,8 +30,8 @@
 
     @Override
     public void insertBeans (ContextHolder beans) {
-        this.docDao = BeansFactory.getTypeFactory().getTypedBean(
-                beans.getResourceProvider(), Document.class);
+        this.docDao = BeansFactory.getTypeFactory().getTypeInterfaceBean(
+                beans.getResourceProviders(), Document.class);
     }
 
 
diff --git a/src/main/java/de/ids_mannheim/korap/resource/rewrite/FoundryInject.java b/src/main/java/de/ids_mannheim/korap/resource/rewrite/FoundryInject.java
index 9c3762b..923e7a2 100644
--- a/src/main/java/de/ids_mannheim/korap/resource/rewrite/FoundryInject.java
+++ b/src/main/java/de/ids_mannheim/korap/resource/rewrite/FoundryInject.java
@@ -35,8 +35,8 @@
         LayerMapper mapper;
 
         if (user != null && !userdaos.isEmpty()) {
-            UserDataDbIface dao = BeansFactory.getTypeFactory().getTypedBean(
-                    userdaos, UserSettings.class);
+            UserDataDbIface dao = BeansFactory.getTypeFactory()
+                    .getTypeInterfaceBean(userdaos, UserSettings.class);
             mapper = new LayerMapper(config, dao.get(user));
         }
         else
@@ -69,6 +69,6 @@
 
     @Override
     public <T extends ContextHolder> void insertBeans (T beans) {
-        this.userdaos = beans.getUserDataDaos();
+        this.userdaos = beans.getUserDataProviders();
     }
 }
diff --git a/src/main/java/de/ids_mannheim/korap/resource/rewrite/PublicCollection.java b/src/main/java/de/ids_mannheim/korap/resource/rewrite/PublicCollection.java
index 6bd59a5..d7e32ee 100644
--- a/src/main/java/de/ids_mannheim/korap/resource/rewrite/PublicCollection.java
+++ b/src/main/java/de/ids_mannheim/korap/resource/rewrite/PublicCollection.java
@@ -29,7 +29,7 @@
 
     @Override
     public JsonNode rewriteQuery (KoralNode node, KustvaktConfiguration config,
-            User user) {
+            User user) throws KustvaktException {
         JsonNode subnode = node.rawNode();
 
         if (!subnode.at("/collection").findValuesAsText("key")
@@ -38,32 +38,28 @@
             if (subnode.has("collection"))
                 b.setBaseQuery(JsonUtils.toJSON(subnode));
 
-            try {
-                Set resources = ResourceFinder.search(user, Corpus.class);
-                ArrayList<KustvaktResource> list = new ArrayList(resources);
+            Set resources = ResourceFinder.search(user, Corpus.class);
+            ArrayList<KustvaktResource> list = new ArrayList(resources);
 
-                if (list.isEmpty())
-                    throw new KustvaktException(StatusCodes.PERMISSION_DENIED,
-                            "No resources found for user", user.getUsername());
+            if (list.isEmpty())
+                throw new KustvaktException(
+                        StatusCodes.ACCESS_DENIED_NO_RESOURCES,
+                        "Resources could not be loaded for user ",
+                        user.getUsername());
 
-                Set ids = new HashSet(resources.size());
-                for (int i = 0; i < list.size(); i++) {
-                    if (i > 0)
-                        b.or();
-                    b.with(Attributes.CORPUS_SIGLE + "="
-                            + list.get(i).getPersistentID());
-                    ids.add(list.get(i).getPersistentID());
-                }
-                JsonNode rewritten = JsonUtils.readTree(b.toJSON());
-                node.set("collection", rewritten.at("/collection"),
-                        new KoralNode.RewriteIdentifier(
-                                Attributes.CORPUS_SIGLE, ids));
-                node.at("/collection");
+            Set ids = new HashSet(resources.size());
+            for (int i = 0; i < list.size(); i++) {
+                if (i > 0)
+                    b.or();
+                b.with(Attributes.CORPUS_SIGLE + "="
+                        + list.get(i).getPersistentID());
+                ids.add(list.get(i).getPersistentID());
             }
-            catch (KustvaktException e) {
-                e.printStackTrace();
-                // todo:
-            }
+            JsonNode rewritten = JsonUtils.readTree(b.toJSON());
+            node.set("collection", rewritten.at("/collection"),
+                    new KoralNode.RewriteIdentifier(Attributes.CORPUS_SIGLE,
+                            ids));
+            node.at("/collection");
         }
 
         return node.rawNode();
diff --git a/src/main/java/de/ids_mannheim/korap/resource/rewrite/RewriteHandler.java b/src/main/java/de/ids_mannheim/korap/resource/rewrite/RewriteHandler.java
index 468fa9e..94875f4 100644
--- a/src/main/java/de/ids_mannheim/korap/resource/rewrite/RewriteHandler.java
+++ b/src/main/java/de/ids_mannheim/korap/resource/rewrite/RewriteHandler.java
@@ -115,24 +115,28 @@
 
 
 
-    public String processQuery (JsonNode root, User user) {
+    public String processQuery (JsonNode root, User user)
+            throws KustvaktException {
         RewriteProcess process = new RewriteProcess(root, user);
         JsonNode pre = process.start(false);
         return JsonUtils.toJSON(pre);
     }
 
 
-    public String processQuery (String json, User user) {
+    public String processQuery (String json, User user)
+            throws KustvaktException {
         return processQuery(JsonUtils.readTree(json), user);
     }
 
 
-    public String processResult (String json, User user) {
+    public String processResult (String json, User user)
+            throws KustvaktException {
         return processResult(JsonUtils.readTree(json), user);
     }
 
 
-    public String processResult (JsonNode node, User user) {
+    public String processResult (JsonNode node, User user)
+            throws KustvaktException {
         RewriteProcess process = new RewriteProcess(node, user);
         JsonNode pre = process.start(true);
         return JsonUtils.toJSON(pre);
@@ -167,7 +171,7 @@
 
 
         private KoralNode processNode (String key, JsonNode value,
-                boolean result) {
+                boolean result) throws KustvaktException {
             KoralNode kroot = KoralNode.wrapNode(value);
             if (value.isObject()) {
                 if (value.has("operands")) {
@@ -204,7 +208,7 @@
         }
 
 
-        private JsonNode start (boolean result) {
+        private JsonNode start (boolean result) throws KustvaktException {
             jlog.debug("Running rewrite process on query {}", root);
             if (root != null) {
                 Iterator<Map.Entry<String, JsonNode>> it = root.fields();
@@ -227,7 +231,8 @@
          *         applies if parent is an array node
          */
         private KoralNode rewrite (String rootNode, KoralNode node,
-                Collection<? extends RewriteTask> tasks, boolean result) {
+                Collection<? extends RewriteTask> tasks, boolean result)
+                throws KustvaktException {
             if (RewriteHandler.this.config == null)
                 throw new RuntimeException("KustvaktConfiguration must be set!");
 
@@ -247,21 +252,14 @@
                         continue;
                     }
                 }
-                try {
-                    if (!result && task instanceof RewriteTask.RewriteQuery) {
-                        ((RewriteTask.RewriteQuery) task).rewriteQuery(node,
-                                RewriteHandler.this.config, this.user);
-                    }
-                    else if (task instanceof RewriteTask.RewriteResult) {
-                        ((RewriteTask.RewriteResult) task).rewriteResult(node);
-                    }
+                if (!result && task instanceof RewriteTask.RewriteQuery) {
+                    ((RewriteTask.RewriteQuery) task).rewriteQuery(node,
+                            RewriteHandler.this.config, this.user);
                 }
-                catch (KustvaktException e) {
-                    jlog.error("Error in rewrite processor {} for node {}",
-                            task.getClass().getSimpleName(), node.rawNode()
-                                    .toString());
-                    e.printStackTrace();
+                else if (task instanceof RewriteTask.RewriteResult) {
+                    ((RewriteTask.RewriteResult) task).rewriteResult(node);
                 }
+
                 if (node.isRemove()) {
                     node.buildRewrites(this.root.at("/" + rootNode));
                     break;
@@ -275,7 +273,8 @@
 
         // fixme: merge with processNode!
         private void processFixedNode (JsonNode node,
-                Collection<RewriteTask> tasks, boolean post) {
+                Collection<RewriteTask> tasks, boolean post)
+                throws KustvaktException {
             for (RewriteTask task : tasks) {
                 KoralNode next = KoralNode.wrapNode(node);
                 if (task instanceof RewriteTask.RewriteNodeAt) {
@@ -284,19 +283,13 @@
                         next = next.at(rwa.at());
                 }
 
-                try {
-                    if (!post & task instanceof RewriteTask.RewriteQuery)
-                        ((RewriteTask.RewriteQuery) task).rewriteQuery(next,
-                                RewriteHandler.this.config, user);
-                    else if (task instanceof RewriteTask.RewriteResult)
-                        ((RewriteTask.RewriteResult) task).rewriteResult(next);
-                    next.buildRewrites();
-                }
-                catch (KustvaktException e) {
-                    jlog.error("Error in rewrite processor {} for node {}",
-                            task.getClass().getSimpleName(), next.toString());
-                    e.printStackTrace();
-                }
+                if (!post & task instanceof RewriteTask.RewriteQuery)
+                    ((RewriteTask.RewriteQuery) task).rewriteQuery(next,
+                            RewriteHandler.this.config, user);
+                else if (task instanceof RewriteTask.RewriteResult)
+                    ((RewriteTask.RewriteResult) task).rewriteResult(next);
+                next.buildRewrites();
+
             }
         }