aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/Call.java14
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/jdisc/messagebus/MbusRequestContext.java24
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/jdisc/messagebus/ProcessingFactory.java30
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/proxy/ProxyDocument.java2
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/proxy/ProxyDocumentUpdate.java4
-rw-r--r--document/src/main/java/com/yahoo/document/ExtendedField.java4
-rw-r--r--document/src/main/java/com/yahoo/document/datatypes/LongFieldValue.java4
-rw-r--r--document/src/main/java/com/yahoo/document/datatypes/MapFieldValue.java2
-rw-r--r--document/src/test/java/com/yahoo/document/DocumentTestCase.java69
9 files changed, 63 insertions, 90 deletions
diff --git a/docproc/src/main/java/com/yahoo/docproc/Call.java b/docproc/src/main/java/com/yahoo/docproc/Call.java
index 3840de63e13..40ca4845d63 100644
--- a/docproc/src/main/java/com/yahoo/docproc/Call.java
+++ b/docproc/src/main/java/com/yahoo/docproc/Call.java
@@ -126,17 +126,11 @@ public class Call implements Cloneable {
private void unwrapSchemaMapping(Processing processing) {
- final List<DocumentOperation> documentOperations = processing.getDocumentOperations();
-
+ List<DocumentOperation> documentOperations = processing.getDocumentOperations();
for (int i = 0; i < documentOperations.size(); i++) {
- DocumentOperation documentOperation = documentOperations.get(i);
-
- if (documentOperation instanceof DocumentPut) {
- DocumentPut putOperation = (DocumentPut) documentOperation;
-
- if (putOperation.getDocument() instanceof DocumentOperationWrapper) {
- DocumentOperationWrapper proxy = (DocumentOperationWrapper) putOperation.getDocument();
- documentOperations.set(i, new DocumentPut(putOperation, ((DocumentPut)proxy.getWrappedDocumentOperation()).getDocument()));
+ if (documentOperations.get(i) instanceof DocumentPut putOperation) {
+ if (putOperation.getDocument() instanceof DocumentOperationWrapper proxy) {
+ documentOperations.set(i, new DocumentPut(putOperation, ((DocumentPut) proxy.getWrappedDocumentOperation()).getDocument()));
}
}
}
diff --git a/docproc/src/main/java/com/yahoo/docproc/jdisc/messagebus/MbusRequestContext.java b/docproc/src/main/java/com/yahoo/docproc/jdisc/messagebus/MbusRequestContext.java
index caaff318cdd..e1e6164206f 100644
--- a/docproc/src/main/java/com/yahoo/docproc/jdisc/messagebus/MbusRequestContext.java
+++ b/docproc/src/main/java/com/yahoo/docproc/jdisc/messagebus/MbusRequestContext.java
@@ -32,6 +32,8 @@ import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.logging.Logger;
+import static java.util.logging.Level.WARNING;
+
/**
* @author Einar M R Rosenvinge
*/
@@ -68,7 +70,7 @@ public class MbusRequestContext implements RequestContext, ResponseHandler {
@Override
public List<Processing> getProcessings() {
if (deserialized.getAndSet(true)) {
- return Collections.emptyList();
+ return List.of();
}
return processingFactory.fromMessage(requestMsg);
}
@@ -143,19 +145,17 @@ public class MbusRequestContext implements RequestContext, ResponseHandler {
@Override
public String getServiceName() {
String path = getUri().getPath();
- return path.substring(7, path.length());
+ return path.substring(7);
}
@Override
public boolean isProcessable() {
- Message msg = requestMsg;
- switch (msg.getType()) {
- case DocumentProtocol.MESSAGE_PUTDOCUMENT:
- case DocumentProtocol.MESSAGE_UPDATEDOCUMENT:
- case DocumentProtocol.MESSAGE_REMOVEDOCUMENT:
- return true;
- }
- return false;
+ return switch (requestMsg.getType()) {
+ case DocumentProtocol.MESSAGE_PUTDOCUMENT,
+ DocumentProtocol.MESSAGE_UPDATEDOCUMENT,
+ DocumentProtocol.MESSAGE_REMOVEDOCUMENT -> true;
+ default -> false;
+ };
}
@Override
@@ -180,14 +180,12 @@ public class MbusRequestContext implements RequestContext, ResponseHandler {
private void dispatchRequest(Message msg, String uriPath, ResponseHandler handler) {
try {
new RequestDispatch() {
-
@Override
protected Request newRequest() {
return new MbusRequest(request,
uriCache.computeIfAbsent(uriPath, __ -> URI.create("mbus://remotehost" + uriPath)),
msg);
}
-
@Override
public ContentChannel handleResponse(Response response) {
return handler.handleResponse(response);
@@ -195,7 +193,7 @@ public class MbusRequestContext implements RequestContext, ResponseHandler {
}.dispatch();
} catch (Exception e) {
dispatchResponse(Response.Status.INTERNAL_SERVER_ERROR);
- e.printStackTrace();
+ log.log(WARNING, "Failed to dispatch request", e);
}
}
diff --git a/docproc/src/main/java/com/yahoo/docproc/jdisc/messagebus/ProcessingFactory.java b/docproc/src/main/java/com/yahoo/docproc/jdisc/messagebus/ProcessingFactory.java
index 0a7836ff6d3..aac22af1d11 100644
--- a/docproc/src/main/java/com/yahoo/docproc/jdisc/messagebus/ProcessingFactory.java
+++ b/docproc/src/main/java/com/yahoo/docproc/jdisc/messagebus/ProcessingFactory.java
@@ -1,10 +1,6 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.docproc.jdisc.messagebus;
-import java.time.Instant;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.logging.Logger;
import com.yahoo.component.ComponentId;
import com.yahoo.component.provider.ComponentRegistry;
import com.yahoo.concurrent.SystemTimer;
@@ -22,6 +18,10 @@ import com.yahoo.documentapi.messagebus.protocol.RemoveDocumentMessage;
import com.yahoo.documentapi.messagebus.protocol.UpdateDocumentMessage;
import com.yahoo.messagebus.Message;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Logger;
+
/**
* @author Simon Thoresen Hult
*/
@@ -41,32 +41,28 @@ class ProcessingFactory {
}
public List<Processing> fromMessage(Message message) {
- List<Processing> processings = new ArrayList<>();
- switch (message.getType()) {
- case DocumentProtocol.MESSAGE_PUTDOCUMENT: {
+ return switch (message.getType()) {
+ case DocumentProtocol.MESSAGE_PUTDOCUMENT -> {
PutDocumentMessage putMessage = (PutDocumentMessage) message;
DocumentPut putOperation = new DocumentPut(createPutDocument(putMessage));
putOperation.setCondition(putMessage.getCondition());
putOperation.setCreateIfNonExistent(putMessage.getCreateIfNonExistent());
- processings.add(createProcessing(putOperation, message));
- break;
+ yield List.of(createProcessing(putOperation, message));
}
- case DocumentProtocol.MESSAGE_UPDATEDOCUMENT: {
+ case DocumentProtocol.MESSAGE_UPDATEDOCUMENT -> {
UpdateDocumentMessage updateMessage = (UpdateDocumentMessage) message;
DocumentUpdate updateOperation = updateMessage.getDocumentUpdate();
updateOperation.setCondition(updateMessage.getCondition());
- processings.add(createProcessing(updateOperation, message));
- break;
+ yield List.of(createProcessing(updateOperation, message));
}
- case DocumentProtocol.MESSAGE_REMOVEDOCUMENT: {
+ case DocumentProtocol.MESSAGE_REMOVEDOCUMENT -> {
RemoveDocumentMessage removeMessage = (RemoveDocumentMessage) message;
DocumentRemove removeOperation = new DocumentRemove(removeMessage.getDocumentId());
removeOperation.setCondition(removeMessage.getCondition());
- processings.add(createProcessing(removeOperation, message));
- break;
+ yield List.of(createProcessing(removeOperation, message));
}
- }
- return processings;
+ default -> List.of();
+ };
}
private Document createPutDocument(PutDocumentMessage msg) {
diff --git a/docproc/src/main/java/com/yahoo/docproc/proxy/ProxyDocument.java b/docproc/src/main/java/com/yahoo/docproc/proxy/ProxyDocument.java
index 5ef97afec55..f72fb691852 100644
--- a/docproc/src/main/java/com/yahoo/docproc/proxy/ProxyDocument.java
+++ b/docproc/src/main/java/com/yahoo/docproc/proxy/ProxyDocument.java
@@ -46,7 +46,7 @@ public class ProxyDocument extends Document implements DocumentOperationWrapper
private final Map<String, String> fieldMap;
private final Set<String> fieldsAllowed = new HashSet<>();
private final String docProcName;
- private Document doc;
+ private final Document doc;
public ProxyDocument(DocumentProcessor docProc, Document doc, Map<String, String> fieldMap) {
super(doc);
diff --git a/docproc/src/main/java/com/yahoo/docproc/proxy/ProxyDocumentUpdate.java b/docproc/src/main/java/com/yahoo/docproc/proxy/ProxyDocumentUpdate.java
index 642ae216687..56aaf7e3f56 100644
--- a/docproc/src/main/java/com/yahoo/docproc/proxy/ProxyDocumentUpdate.java
+++ b/docproc/src/main/java/com/yahoo/docproc/proxy/ProxyDocumentUpdate.java
@@ -20,13 +20,13 @@ import java.util.Map;
*/
public class ProxyDocumentUpdate extends DocumentUpdate implements DocumentOperationWrapper {
- private DocumentUpdate docU;
+ private final DocumentUpdate docU;
/**
* The field name map for schema mapping. The key is the field name that the docproc uses.
* The value is the actual name of the field in the document.
*/
- private Map<String, String> fieldMap;
+ private final Map<String, String> fieldMap;
public ProxyDocumentUpdate(DocumentUpdate docUpd, Map<String, String> fieldMap) {
super(docUpd.getType(), docUpd.getId().toString()+"-schemamappedupdate");
diff --git a/document/src/main/java/com/yahoo/document/ExtendedField.java b/document/src/main/java/com/yahoo/document/ExtendedField.java
index 7b897bd9845..7fc79527448 100644
--- a/document/src/main/java/com/yahoo/document/ExtendedField.java
+++ b/document/src/main/java/com/yahoo/document/ExtendedField.java
@@ -5,12 +5,12 @@ import com.yahoo.document.datatypes.FieldValue;
import com.yahoo.document.datatypes.StructuredFieldValue;
/**
- * This adds an Extractor to the Field that can be used to get access the backed value
+ * This adds an Extractor to the Field that can be used to access the backed value
* used in the concrete document types.
* @author baldersheim
*/
public class ExtendedField extends Field {
- public static interface Extract {
+ public interface Extract {
Object get(StructuredFieldValue doc);
void set(StructuredFieldValue doc, Object value);
}
diff --git a/document/src/main/java/com/yahoo/document/datatypes/LongFieldValue.java b/document/src/main/java/com/yahoo/document/datatypes/LongFieldValue.java
index 0dedfa72fc4..2f021632aef 100644
--- a/document/src/main/java/com/yahoo/document/datatypes/LongFieldValue.java
+++ b/document/src/main/java/com/yahoo/document/datatypes/LongFieldValue.java
@@ -26,7 +26,7 @@ public final class LongFieldValue extends NumericFieldValue {
private long value;
public LongFieldValue() {
- this(0l);
+ this(0L);
}
public LongFieldValue(long value) {
@@ -50,7 +50,7 @@ public final class LongFieldValue extends NumericFieldValue {
@Override
public void clear() {
- value = 0l;
+ value = 0L;
}
@Override
diff --git a/document/src/main/java/com/yahoo/document/datatypes/MapFieldValue.java b/document/src/main/java/com/yahoo/document/datatypes/MapFieldValue.java
index 01cd092bf57..18041ad1fab 100644
--- a/document/src/main/java/com/yahoo/document/datatypes/MapFieldValue.java
+++ b/document/src/main/java/com/yahoo/document/datatypes/MapFieldValue.java
@@ -22,7 +22,7 @@ import java.util.HashSet;
/**
- * Vespa map. Backed by and and parametrized by FieldValue
+ * Vespa map. Backed by and parametrized by FieldValue
*
* @author vegardh
*/
diff --git a/document/src/test/java/com/yahoo/document/DocumentTestCase.java b/document/src/test/java/com/yahoo/document/DocumentTestCase.java
index e5f6453c581..d63ac7c194e 100644
--- a/document/src/test/java/com/yahoo/document/DocumentTestCase.java
+++ b/document/src/test/java/com/yahoo/document/DocumentTestCase.java
@@ -30,12 +30,15 @@ import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
+import java.util.List;
import java.util.Map;
+import java.util.Set;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertThrows;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -550,8 +553,8 @@ public class DocumentTestCase extends DocumentTestCaseBase {
doc.iterateNested(path, 0, handler);
FieldValue fv = doc.getRecursiveValue("l1s1.ss.iarray");
- assertTrue(((Array)fv).contains(new IntegerFieldValue(32)));
- assertEquals(4, ((Array)fv).size());
+ assertTrue(((Array<?>)fv).contains(new IntegerFieldValue(32)));
+ assertEquals(4, ((Array<?>)fv).size());
}
{
@@ -561,8 +564,8 @@ public class DocumentTestCase extends DocumentTestCaseBase {
FieldValue fv = doc.getRecursiveValue("l1s1.ss.iarray");
- assertFalse(((Array)fv).contains(Integer.valueOf(12)));
- assertEquals(3, ((Array)fv).size());
+ assertFalse(((Array<?>)fv).contains(12));
+ assertEquals(3, ((Array<?>)fv).size());
}
{
@@ -571,7 +574,7 @@ public class DocumentTestCase extends DocumentTestCaseBase {
doc.iterateNested(path, 0, handler);
FieldValue fv = doc.getRecursiveValue("l1s1.ss.iarray");
- assertEquals(0, ((Array)fv).size());
+ assertEquals(0, ((Array<?>)fv).size());
}
{
@@ -580,7 +583,7 @@ public class DocumentTestCase extends DocumentTestCaseBase {
doc.iterateNested(path, 0, handler);
FieldValue fv = doc.getRecursiveValue("l1s1.structmap.value.smap");
- assertFalse(((MapFieldValue)fv).contains(new StringFieldValue("leonardo")));
+ assertFalse(((MapFieldValue<?, ?>)fv).contains(new StringFieldValue("leonardo")));
}
{
@@ -589,7 +592,7 @@ public class DocumentTestCase extends DocumentTestCaseBase {
doc.iterateNested(path, 0, handler);
FieldValue fv = doc.getRecursiveValue("l1s1.wset");
- assertFalse(((WeightedSet)fv).contains(new StringFieldValue("foo")));
+ assertFalse(((WeightedSet<?>)fv).contains(new StringFieldValue("foo")));
}
}
@@ -648,7 +651,7 @@ public class DocumentTestCase extends DocumentTestCaseBase {
public void validateCppDoc(Document doc) {
validateCppDocNotMap(doc);
- MapFieldValue map = (MapFieldValue)doc.getFieldValue("mapfield");
+ MapFieldValue<?, ?> map = (MapFieldValue<?, ?>)doc.getFieldValue("mapfield");
assertEquals(map.get(new StringFieldValue("foo1")), new StringFieldValue("bar1"));
assertEquals(map.get(new StringFieldValue("foo2")), new StringFieldValue("bar2"));
}
@@ -734,7 +737,7 @@ public class DocumentTestCase extends DocumentTestCaseBase {
}
@Test
- public void testSerializeDeserialize() {
+ public void testSerializeDeserialize() throws IOException {
setUpSertestDocType();
Document doc = getSertestDocument();
@@ -746,11 +749,8 @@ public class DocumentTestCase extends DocumentTestCaseBase {
data.flip();
- try {
- FileOutputStream fos = new FileOutputStream("src/test/files/testser.dat");
+ try (FileOutputStream fos = new FileOutputStream("src/test/files/testser.dat")) {
fos.write(data.array(), 0, data.remaining());
- fos.close();
- } catch (Exception e) {
}
Document doc2 = docMan.createDocument(data);
@@ -965,12 +965,11 @@ public class DocumentTestCase extends DocumentTestCaseBase {
assertEquals(parsed.get("id"), "id:ns:sertest::foobar");
assertTrue(parsed.get("fields") instanceof Map);
Object fieldMap = parsed.get("fields");
- if (fieldMap instanceof Map) {
- Map<?, ?> fields = (Map<?, ?>) fieldMap;
+ if (fieldMap instanceof Map<?, ?> fields) {
assertEquals(fields.get("mailid"), "emailfromalicetobob");
assertEquals(fields.get("date"), -2013512400);
assertTrue(fields.get("docindoc") instanceof Map);
- assertTrue(fields.keySet().containsAll(Arrays.asList("mailid", "date", "attachmentcount", "rawfield", "weightedfield", "docindoc", "mapfield", "myboolfield")));
+ assertTrue(fields.keySet().containsAll(List.of("mailid", "date", "attachmentcount", "rawfield", "weightedfield", "docindoc", "mapfield", "myboolfield")));
}
}
@@ -1095,24 +1094,15 @@ public class DocumentTestCase extends DocumentTestCaseBase {
@Test
public void testRequireThatDocumentWithIdSchemaIdChecksType() {
DocumentType docType = new DocumentType("mytype");
- try {
- new Document(docType, "id:namespace:mytype::foo");
- } catch (Exception e) {
- fail();
- }
-
- try {
- new Document(docType, "id:namespace:wrong-type::foo");
- fail();
- } catch (IllegalArgumentException e) {
- }
+ new Document(docType, "id:namespace:mytype::foo");
+ assertThrows(IllegalArgumentException.class,
+ () -> new Document(docType, "id:namespace:wrong-type::foo"));
}
- private class MyDocumentReader implements DocumentReader {
+ private static class MyDocumentReader implements DocumentReader {
@Override
- public void read(Document document) {
- }
+ public void read(Document document) { }
@Override
public DocumentId readDocumentId() {
@@ -1129,22 +1119,17 @@ public class DocumentTestCase extends DocumentTestCaseBase {
@Test
public void testRequireThatChangingDocumentTypeChecksId() {
MyDocumentReader reader = new MyDocumentReader();
+
Document doc = new Document(reader);
doc.setId(new DocumentId("id:namespace:mytype::foo"));
DocumentType docType = new DocumentType("mytype");
- try {
- doc.setDataType(docType);
- } catch (Exception e) {
- fail();
- }
- doc = new Document(reader);
- doc.setId(new DocumentId("id:namespace:mytype::foo"));
+ doc.setDataType(docType);
+
+ Document notOkDoc = new Document(reader);
+ notOkDoc.setId(new DocumentId("id:namespace:mytype::foo"));
DocumentType wrongType = new DocumentType("wrongtype");
- try {
- doc.setDataType(wrongType);
- fail();
- } catch (IllegalArgumentException e) {
- }
+ assertThrows(IllegalArgumentException.class,
+ () -> notOkDoc.setDataType(wrongType));
}
@Test