summaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/fs4
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-09-13 10:01:11 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2019-09-13 10:01:11 +0200
commit5f56dbef4aaf4a2212fcd44bc8ce4a60f1cf2904 (patch)
tree0e66181f21526b934e0a47ddeb7cd3b57848b0ba /container-search/src/main/java/com/yahoo/fs4
parent04694f5e9157f350af5bdbe4f39e272118a7eacb (diff)
Avoid wrapping the 12 bytes in yet another object.
Diffstat (limited to 'container-search/src/main/java/com/yahoo/fs4')
-rw-r--r--container-search/src/main/java/com/yahoo/fs4/DocumentInfo.java21
-rw-r--r--container-search/src/main/java/com/yahoo/fs4/GetDocSumsPacket.java2
2 files changed, 9 insertions, 14 deletions
diff --git a/container-search/src/main/java/com/yahoo/fs4/DocumentInfo.java b/container-search/src/main/java/com/yahoo/fs4/DocumentInfo.java
index dd5a4fff584..8294ae5796d 100644
--- a/container-search/src/main/java/com/yahoo/fs4/DocumentInfo.java
+++ b/container-search/src/main/java/com/yahoo/fs4/DocumentInfo.java
@@ -13,20 +13,15 @@ import java.nio.ByteBuffer;
*/
public class DocumentInfo implements Cloneable {
- private final GlobalId globalId;
+ private final byte [] globalId;
private final double metric;
private final int partId;
private final int distributionKey;
private final byte[] sortData;
- DocumentInfo(ByteBuffer buffer, QueryResultPacket owner) {
- this(buffer, owner, null);
- }
-
DocumentInfo(ByteBuffer buffer, QueryResultPacket owner, byte[] sortData) {
- byte[] rawGid = new byte[GlobalId.LENGTH];
- buffer.get(rawGid);
- globalId = new GlobalId(rawGid);
+ globalId = new byte[GlobalId.LENGTH];
+ buffer.get(globalId);
metric = decodeMetric(buffer);
partId = owner.getMldFeature() ? buffer.getInt() : 0;
distributionKey = owner.getMldFeature() ? buffer.getInt() : 0;
@@ -34,7 +29,7 @@ public class DocumentInfo implements Cloneable {
}
public DocumentInfo(GlobalId globalId, int metric, int partId, int distributionKey) {
- this.globalId = globalId;
+ this.globalId = globalId.getRawId();
this.metric = metric;
this.partId = partId;
this.distributionKey = distributionKey;
@@ -45,7 +40,8 @@ public class DocumentInfo implements Cloneable {
return buffer.getDouble();
}
- public GlobalId getGlobalId() { return globalId; }
+ public GlobalId getGlobalId() { return new GlobalId(globalId); }
+ public byte [] getRawGlobalId() { return globalId; }
/** Raw rank score */
public double getMetric() { return metric; }
@@ -61,7 +57,7 @@ public class DocumentInfo implements Cloneable {
}
public String toString() {
- return "document info [globalId=" + globalId + ", metric=" + metric + "]";
+ return "document info [globalId=" + new GlobalId(globalId).toString() + ", metric=" + metric + "]";
}
/**
@@ -69,8 +65,7 @@ public class DocumentInfo implements Cloneable {
*/
public Object clone() {
try {
- DocumentInfo docInfo=(DocumentInfo) super.clone();
- return docInfo;
+ return super.clone();
}
catch (CloneNotSupportedException e) {
throw new RuntimeException("Someone inserted a nonclonable superclass");
diff --git a/container-search/src/main/java/com/yahoo/fs4/GetDocSumsPacket.java b/container-search/src/main/java/com/yahoo/fs4/GetDocSumsPacket.java
index 941bce67d16..7353d0730a4 100644
--- a/container-search/src/main/java/com/yahoo/fs4/GetDocSumsPacket.java
+++ b/container-search/src/main/java/com/yahoo/fs4/GetDocSumsPacket.java
@@ -178,7 +178,7 @@ public class GetDocSumsPacket extends Packet {
Hit hit = i.next();
if (hit instanceof FastHit && !hit.isFilled(summaryClass)) {
FastHit fastHit = (FastHit)hit;
- buffer.put(fastHit.getGlobalId() != null ? fastHit.getGlobalId().getRawId() : emptyGid);
+ buffer.put(fastHit.getGlobalId() != null ? fastHit.getRawGlobalId() : emptyGid);
buffer.putInt(fastHit.getPartId());
buffer.putInt(0); //Unused, was docstamp
}