From: Jan Hajnar Date: Wed, 22 Apr 2015 14:11:32 +0000 (+0200) Subject: Bug 2983 - Throws ResultAlreadySet instead of IllegalStateException X-Git-Tag: release/lithium~101^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=17b956ec07f0a2ad5e908cd103bcc379ef395c24;p=yangtools.git Bug 2983 - Throws ResultAlreadySet instead of IllegalStateException * added custom exception when trying to set NormalizedNodeResult * added more descriptive error when getting NormalizedNodeResult already set exception Change-Id: I35beffc79a4951134ba64c07ad1ed627b431031b Signed-off-by: Jan Hajnar (cherry picked from commit 7974d0f2bc2e3182cc521bbab543450dbdb7af83) --- diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/NormalizedNodeResult.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/NormalizedNodeResult.java index 76b28e93aa..47723fd788 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/NormalizedNodeResult.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/NormalizedNodeResult.java @@ -7,7 +7,6 @@ */ package org.opendaylight.yangtools.yang.data.impl.schema; -import com.google.common.base.Preconditions; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; /** @@ -33,7 +32,9 @@ public class NormalizedNodeResult { } void setResult(final NormalizedNode result) { - Preconditions.checkState(!this.finished, "Result was already set."); + if (finished) { + throw new ResultAlreadySetException("Normalized Node result was already set.", this.result); + } this.finished = true; this.result = result; } diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/ResultAlreadySetException.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/ResultAlreadySetException.java new file mode 100644 index 0000000000..f73c31584b --- /dev/null +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/ResultAlreadySetException.java @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.yangtools.yang.data.impl.schema; + +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; + +public class ResultAlreadySetException extends IllegalStateException { + private final NormalizedNode resultData; + + public ResultAlreadySetException(String message, NormalizedNode resultData) { + this(message, resultData, null); + } + + public ResultAlreadySetException(String message, NormalizedNode resultData, Throwable cause) { + super(message, cause); + this.resultData = resultData; + } + + public NormalizedNode getResultData() { + return resultData; + } +}