From 0e2979ac0f26af69e58b0716bd000271c137620f Mon Sep 17 00:00:00 2001
From: Thorsten Vitt <thorsten.vitt@uni-wuerzburg.de>
Date: Mon, 12 Aug 2013 16:58:32 +0000
Subject: [PATCH] Fix: TEIHeaderStack used public TG-search even for non-public
 data

git-svn-id: https://develop.sub.uni-goettingen.de/repos/textgrid/trunk/services/aggregator@14358 7c539038-3410-0410-b1ec-0f2a7bf1c452
---
 .../teicorpus/TEICorpusSerializer.java          | 17 ++++-------------
 .../aggregator/teicorpus/TEIHeaderStack.java    |  8 ++++----
 .../teicorpus/TEIHeaderStackTest.java           |  2 +-
 3 files changed, 9 insertions(+), 18 deletions(-)

diff --git a/src/main/java/info/textgrid/services/aggregator/teicorpus/TEICorpusSerializer.java b/src/main/java/info/textgrid/services/aggregator/teicorpus/TEICorpusSerializer.java
index ab45686..e4a131f 100644
--- a/src/main/java/info/textgrid/services/aggregator/teicorpus/TEICorpusSerializer.java
+++ b/src/main/java/info/textgrid/services/aggregator/teicorpus/TEICorpusSerializer.java
@@ -34,6 +34,7 @@
 import javax.xml.ws.Holder;
 
 import com.google.common.base.Joiner;
+import com.google.common.base.Throwables;
 import com.google.common.collect.Sets;
 
 public class TEICorpusSerializer extends AggregationTreeWalker implements
@@ -123,19 +124,9 @@ protected void walkAggregation(final ObjectType object, final boolean again) {
 		level++;
 		if (stack == null)
 			try {
-				stack = new TEIHeaderStack(object);
-			} catch (ObjectNotFoundFault e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			} catch (MetadataParseFault e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			} catch (IoFault e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			} catch (AuthFault e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
+				stack = new TEIHeaderStack(object, getSearchClient(isPublic(object)));
+			} catch (Exception e) {
+				throw Throwables.propagate(e);
 			}
 		else
 			stack.push(object);
diff --git a/src/main/java/info/textgrid/services/aggregator/teicorpus/TEIHeaderStack.java b/src/main/java/info/textgrid/services/aggregator/teicorpus/TEIHeaderStack.java
index dcb2a95..e947d9f 100644
--- a/src/main/java/info/textgrid/services/aggregator/teicorpus/TEIHeaderStack.java
+++ b/src/main/java/info/textgrid/services/aggregator/teicorpus/TEIHeaderStack.java
@@ -1,5 +1,6 @@
 package info.textgrid.services.aggregator.teicorpus;
 
+import info.textgrid.middleware.tgsearch.client.SearchClient;
 import info.textgrid.namespaces.metadata.core._2010.MetadataContainerType;
 import info.textgrid.namespaces.metadata.core._2010.ObjectType;
 import info.textgrid.namespaces.middleware.tgcrud.services.tgcrudservice.AuthFault;
@@ -54,18 +55,17 @@ public class TEIHeaderStack {
 	private final ITextGridRep repository = TextGridRepProvider.getInstance();
 	private Templates stylesheet;
 
-	public TEIHeaderStack(final ObjectType object) throws ObjectNotFoundFault,
+	public TEIHeaderStack(final ObjectType object, SearchClient searchClient) throws ObjectNotFoundFault,
 	MetadataParseFault, IoFault, AuthFault {
 		final String uri = object.getGeneric().getGenerated().getTextgridUri()
 				.getValue();
 		parents.add(object);
-		final PathResponse pathResponse = repository.getPublicSearchClient().getPath(
-				uri);
+		final PathResponse pathResponse = searchClient.getPath(uri);
 		for (final PathGroupType pathGroup : pathResponse.getPathGroup()) {
 			for (final PathType path : pathGroup.getPath()) {
 				for (final EntryType entry : path.getEntry())
 					if (!entry.getTextgridUri().equals(uri)) {
-						final MetadataContainerType container = repository.getCRUDService().readMetadata(null, "", entry.getTextgridUri());
+						final MetadataContainerType container = repository.getCRUDService().readMetadata(searchClient.getSid(), null, entry.getTextgridUri());
 						parents.add(0, container.getObject());
 					}
 			}
diff --git a/src/test/java/info/textgrid/services/aggregator/teicorpus/TEIHeaderStackTest.java b/src/test/java/info/textgrid/services/aggregator/teicorpus/TEIHeaderStackTest.java
index a9de321..441c906 100644
--- a/src/test/java/info/textgrid/services/aggregator/teicorpus/TEIHeaderStackTest.java
+++ b/src/test/java/info/textgrid/services/aggregator/teicorpus/TEIHeaderStackTest.java
@@ -38,7 +38,7 @@ public void extracted() throws ObjectNotFoundFault, MetadataParseFault,
 			IoFault, AuthFault {
 		final ObjectType rootObject = repository.getCRUDService()
 				.readMetadata("", "", "textgrid:jfsn.0").getObject();
-		stack = new TEIHeaderStack(rootObject);
+		stack = new TEIHeaderStack(rootObject, repository.getPublicSearchClient());
 	}
 
 	@Test
-- 
GitLab