aboutsummaryrefslogtreecommitdiffstats
path: root/document/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'document/src/main/java')
-rw-r--r--document/src/main/java/com/yahoo/document/idstring/IdIdString.java8
-rw-r--r--document/src/main/java/com/yahoo/document/idstring/IdString.java1
2 files changed, 6 insertions, 3 deletions
diff --git a/document/src/main/java/com/yahoo/document/idstring/IdIdString.java b/document/src/main/java/com/yahoo/document/idstring/IdIdString.java
index 28573296370..9c75cf6828b 100644
--- a/document/src/main/java/com/yahoo/document/idstring/IdIdString.java
+++ b/document/src/main/java/com/yahoo/document/idstring/IdIdString.java
@@ -11,11 +11,13 @@ import com.yahoo.text.Utf8;
* Time: 11:02 AM
*/
public class IdIdString extends IdString {
- private String type;
+ private final String type;
private String group;
private long location;
private boolean hasGroup;
private boolean hasNumber;
+ private static final int SIZE_OF_ID_AND_3_COLONS = 2 + 3; // "id:::"
+ private static final int MAX_LENGTH = IdString.MAX_LENGTH_EXCEPT_NAMESPACE_SPECIFIC - SIZE_OF_ID_AND_3_COLONS;
public static String replaceType(String id, String typeName) {
int typeStartPos = id.indexOf(":", 3) + 1;
@@ -47,9 +49,9 @@ public class IdIdString extends IdString {
super(Scheme.id, namespace, localId);
this.type = type;
boolean hasSetLocation = false;
- if (namespace.length() + type.length() + keyValues.length() + 5 >= IdString.MAX_LENGTH_EXCEPT_NAMESPACE_SPECIFIC) {
+ if (namespace.length() + type.length() + keyValues.length() >= MAX_LENGTH) {
throw new IllegalArgumentException("Length of namespace(" + namespace.length() + ") + doctype(" + type.length() +
- ") + key/values(" + keyValues.length() +"), is longer than " + (MAX_LENGTH_EXCEPT_NAMESPACE_SPECIFIC - 5));
+ ") + key/values(" + keyValues.length() +"), is longer than " + MAX_LENGTH);
}
for(String pair : keyValues.split(",")) {
int pos = pair.indexOf('=');
diff --git a/document/src/main/java/com/yahoo/document/idstring/IdString.java b/document/src/main/java/com/yahoo/document/idstring/IdString.java
index d25c39f3b44..2114a480ec3 100644
--- a/document/src/main/java/com/yahoo/document/idstring/IdString.java
+++ b/document/src/main/java/com/yahoo/document/idstring/IdString.java
@@ -42,6 +42,7 @@ public abstract class IdString {
private final String namespace;
private final String namespaceSpecific;
private Utf8String cache;
+ // This max unsigned 16 bit integer - 1 as the offset will be length + 1
static final int MAX_LENGTH_EXCEPT_NAMESPACE_SPECIFIC = 0xfffe;
/**