Search on a protected resource returns one result with a URL reference
and a non-surrogate Diagnostics Nr. 3 covering all records.
Alternatively, Diagnostics N.68 can be used to set diagnostics within a
record (surrogate).
Change-Id: Id9109b7c05753f9ebcd1d106904e5c4ec45cffaf
diff --git a/src/main/java/de/ids_mannheim/korap/sru/KorapClient.java b/src/main/java/de/ids_mannheim/korap/sru/KorapClient.java
index 5f42f03..f843df9 100644
--- a/src/main/java/de/ids_mannheim/korap/sru/KorapClient.java
+++ b/src/main/java/de/ids_mannheim/korap/sru/KorapClient.java
@@ -233,6 +233,7 @@
// remove matches for public search metadata response
if (!freeAccess) {
result.getMatches().clear();
+ result.getMatches().add(new KorapMatch());
}
return result;
}
diff --git a/src/main/java/de/ids_mannheim/korap/sru/KorapSRUSearchResultSet.java b/src/main/java/de/ids_mannheim/korap/sru/KorapSRUSearchResultSet.java
index b4406d9..4c876c9 100644
--- a/src/main/java/de/ids_mannheim/korap/sru/KorapSRUSearchResultSet.java
+++ b/src/main/java/de/ids_mannheim/korap/sru/KorapSRUSearchResultSet.java
@@ -113,18 +113,20 @@
@Override
public void writeRecord(XMLStreamWriter writer) throws XMLStreamException {
- KorapMatch match = korapResult.getMatch(i);
- match.parseMatchId();
XMLStreamWriterHelper.writeStartResource(writer, null,
reference);
- XMLStreamWriterHelper.writeStartResourceFragment(writer, null, null);
-
- List<AnnotationLayer> annotationLayers;
- annotationLayers = parseAnnotations(match);
-
- writeAdvancedDataView(writer, annotationLayers);
-
- XMLStreamWriterHelper.writeEndResourceFragment(writer);
+ KorapMatch match = korapResult.getMatch(i);
+ if (match.getMatchId() != null) {
+ match.parseMatchId();
+
+ XMLStreamWriterHelper.writeStartResourceFragment(writer, null, null);
+
+ List<AnnotationLayer> annotationLayers;
+ annotationLayers = parseAnnotations(match);
+ writeAdvancedDataView(writer, annotationLayers);
+
+ XMLStreamWriterHelper.writeEndResourceFragment(writer);
+ }
XMLStreamWriterHelper.writeEndResource(writer);
}
@@ -164,7 +166,7 @@
if (match == null) {
throw new NullPointerException("KorapMatch is null.");
}
-
+
try {
String annotationSnippet = korapClient.retrieveAnnotations(
match.getCorpusId(), match.getDocId(), match.getTextId(),