From: Robert Varga Date: Sun, 1 Nov 2015 13:54:35 +0000 (+0100) Subject: Share Integer.MAX_VALUE X-Git-Tag: release/beryllium~172 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=705d82b82fe88401d30cd8249e571ee4770e17cc;p=yangtools.git Share Integer.MAX_VALUE As it turns out Integer.MAX_VALUE is not usually cached for boxing. Add an explicit cache to eliminate ~160K Integers wasting 2.5MB on a simple SchemaContext. Change-Id: I47b5b00358d5726eddc8baf675bda1f850823362 Signed-off-by: Robert Varga --- diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/EffectiveConstraintDefinitionImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/EffectiveConstraintDefinitionImpl.java index 1c4032cebc..a91f518ab0 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/EffectiveConstraintDefinitionImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/EffectiveConstraintDefinitionImpl.java @@ -16,6 +16,8 @@ import org.opendaylight.yangtools.yang.model.api.MustDefinition; import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath; public final class EffectiveConstraintDefinitionImpl implements ConstraintDefinition { + private static final Integer UNBOUNDED_INT = Integer.MAX_VALUE; + private static final String UNBOUNDED_STR = "unbounded"; private final RevisionAwareXPath whenCondition; private final Set mustConstraints; private final Boolean mandatory; @@ -33,9 +35,9 @@ public final class EffectiveConstraintDefinitionImpl implements ConstraintDefini MaxElementsEffectiveStatementImpl firstMaxElementsStmt = parent .firstEffective(MaxElementsEffectiveStatementImpl.class); - String maxElementsArg = (firstMaxElementsStmt == null) ? "unbounded" : firstMaxElementsStmt.argument(); - if (maxElementsArg.equals("unbounded")) { - this.maxElements = Integer.MAX_VALUE; + String maxElementsArg = (firstMaxElementsStmt == null) ? UNBOUNDED_STR : firstMaxElementsStmt.argument(); + if (UNBOUNDED_STR.equals(maxElementsArg)) { + this.maxElements = UNBOUNDED_INT; } else { this.maxElements = Integer.valueOf(maxElementsArg); }