X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fconfig%2Fconfig-manager-facade-xml%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Ffacade%2Fxml%2Ftransactions%2FTransactionProvider.java;h=716ed79f72423835b3d11b794ef8ea8c32611a0c;hp=743be1e257c8d436f851789929a6b6d6c0b6251f;hb=1bbdb10607c6c198cb80ec506cd5637098bb917d;hpb=aa9c756831b5392e1dec18a93b86cf9c28b73e8f diff --git a/opendaylight/config/config-manager-facade-xml/src/main/java/org/opendaylight/controller/config/facade/xml/transactions/TransactionProvider.java b/opendaylight/config/config-manager-facade-xml/src/main/java/org/opendaylight/controller/config/facade/xml/transactions/TransactionProvider.java index 743be1e257..716ed79f72 100644 --- a/opendaylight/config/config-manager-facade-xml/src/main/java/org/opendaylight/controller/config/facade/xml/transactions/TransactionProvider.java +++ b/opendaylight/config/config-manager-facade-xml/src/main/java/org/opendaylight/controller/config/facade/xml/transactions/TransactionProvider.java @@ -11,6 +11,7 @@ package org.opendaylight.controller.config.facade.xml.transactions; import com.google.common.base.Optional; import com.google.common.base.Preconditions; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Set; import javax.management.InstanceNotFoundException; @@ -18,10 +19,8 @@ import javax.management.ObjectName; import org.opendaylight.controller.config.api.ConflictingVersionException; import org.opendaylight.controller.config.api.ValidationException; import org.opendaylight.controller.config.api.jmx.CommitStatus; -import org.opendaylight.controller.config.facade.xml.exception.NoTransactionFoundException; import org.opendaylight.controller.config.util.ConfigRegistryClient; import org.opendaylight.controller.config.util.ConfigTransactionClient; -import org.opendaylight.controller.config.util.xml.DocumentedException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -123,8 +122,7 @@ public class TransactionProvider implements AutoCloseable { /** * Commit and notification send must be atomic */ - public CommitStatus commitTransaction() throws ValidationException, ConflictingVersionException, - NoTransactionFoundException { + public CommitStatus commitTransaction() throws ValidationException, ConflictingVersionException { return commitTransaction(configRegistryClient); } @@ -132,12 +130,11 @@ public class TransactionProvider implements AutoCloseable { * Commit and notification send must be atomic * @param configRegistryClient */ - public synchronized CommitStatus commitTransaction(final ConfigRegistryClient configRegistryClient) throws ValidationException, ConflictingVersionException, NoTransactionFoundException { + public synchronized CommitStatus commitTransaction(final ConfigRegistryClient configRegistryClient) throws ValidationException, ConflictingVersionException { if (!getTransaction().isPresent()){ - throw new NoTransactionFoundException("No transaction found for session " + sessionIdForReporting, - DocumentedException.ErrorType.application, - DocumentedException.ErrorTag.operation_failed, - DocumentedException.ErrorSeverity.error); + //making empty commit without prior opened transaction, just return commit status with empty lists + LOG.debug("Making commit without open candidate transaction for session {}", sessionIdForReporting); + return new CommitStatus(Collections.EMPTY_LIST, Collections.EMPTY_LIST, Collections.EMPTY_LIST); } final Optional maybeTaON = getTransaction(); ObjectName taON = maybeTaON.get();