package org.opendaylight.controller.config.manager.impl.osgi;
import com.google.common.annotations.VisibleForTesting;
package org.opendaylight.controller.config.manager.impl.osgi;
import com.google.common.annotations.VisibleForTesting;
import javax.management.ObjectName;
import org.opendaylight.controller.config.api.ConflictingVersionException;
import org.opendaylight.controller.config.api.ValidationException;
import javax.management.ObjectName;
import org.opendaylight.controller.config.api.ConflictingVersionException;
import org.opendaylight.controller.config.api.ValidationException;
public BlankTransactionServiceTracker(final ConfigRegistryImpl configRegistry) {
this(new BlankTransaction() {
@Override
public BlankTransactionServiceTracker(final ConfigRegistryImpl configRegistry) {
this(new BlankTransaction() {
@Override
- this(blankTransaction, DEFAULT_MAX_ATTEMPTS);
+ this(blankTransaction, DEFAULT_MAX_ATTEMPTS, Executors.newSingleThreadExecutor(new ThreadFactoryBuilder()
+ .setNameFormat("config-blank-txn-%d").build()));
- BlankTransactionServiceTracker(final BlankTransaction blankTx, final int maxAttempts) {
+ BlankTransactionServiceTracker(final BlankTransaction blankTx, final int maxAttempts,
+ final ExecutorService txExecutor) {
// race condition check: config-persister might push new configuration while server is starting up.
ConflictingVersionException lastException = null;
for (int i = 0; i < maxAttempts; i++) {
try {
// create transaction
CommitStatus commitStatus = blankTransaction.hit();
// race condition check: config-persister might push new configuration while server is starting up.
ConflictingVersionException lastException = null;
for (int i = 0; i < maxAttempts; i++) {
try {
// create transaction
CommitStatus commitStatus = blankTransaction.hit();
- logger.error("Validation exception while running blank transaction indicates programming error", e);
- throw new RuntimeException("Validation exception while running blank transaction indicates programming error", e);
+ LOG.error("Validation exception while running blank transaction indicates programming error", e);
- throw new RuntimeException("Maximal number of attempts reached and still cannot get optimistic lock from " +
- "config manager",lastException);
+
+ LOG.error("Maximal number of attempts reached and still cannot get optimistic lock from config manager",
+ lastException);