[ https://issues.apache.org/jira/browse/QPID-6446?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alex Rudyy updated QPID-6446: ----------------------------- Summary: [Java Broker] Existing virtual host/node derby database is shutdown on attempt to create a virtual host/node with duplicate name (was: [Java Broker] On creation of duplicate virtual host node the existion virtual host node configuration store is deleted as part of removal of duplicate node) > [Java Broker] Existing virtual host/node derby database is shutdown on > attempt to create a virtual host/node with duplicate name > -------------------------------------------------------------------------------------------------------------------------------- > > Key: QPID-6446 > URL: https://issues.apache.org/jira/browse/QPID-6446 > Project: Qpid > Issue Type: Bug > Components: Java Broker > Affects Versions: 0.30 > Reporter: Alex Rudyy > Assignee: Alex Rudyy > Attachments: VirtualHostNodeTest.java > > > On creation operation for virtual host node having the same name as an > existing virtual host node, the existing virtual host node store is deleted > as part of cleanup of duplicate virtual host node. > The stack trace below is generate on creating of duplicate DERBY VHN: > {noformat} > java.sql.SQLException: Database > '/tmp/qpid.work_dir-1426160975964/VirtualHostNodeTest.testCreateDuplicateVirtualHostNodeAndClose/config/VirtualHostNodeTest.testCreateDuplicateVirtualHostNodeAndClose' > not found. > at > org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) > at > org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) > at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown > Source) > at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown > Source) > at org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(Unknown > Source) > at org.apache.derby.impl.jdbc.EmbedConnection.handleDBNotFound(Unknown > Source) > at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source) > at org.apache.derby.jdbc.InternalDriver.getNewEmbedConnection(Unknown > Source) > at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source) > at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source) > at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source) > at java.sql.DriverManager.getConnection(DriverManager.java:571) > at java.sql.DriverManager.getConnection(DriverManager.java:233) > at > org.apache.qpid.server.store.derby.DerbyUtils.shutdownDatabase(DerbyUtils.java:108) > at > org.apache.qpid.server.store.derby.DerbyConfigurationStore.closeConfigurationStore(DerbyConfigurationStore.java:107) > at > org.apache.qpid.server.virtualhostnode.AbstractVirtualHostNode.closeConfigurationStore(AbstractVirtualHostNode.java:287) > at > org.apache.qpid.server.virtualhostnode.AbstractVirtualHostNode.onClose(AbstractVirtualHostNode.java:242) > at > org.apache.qpid.server.model.AbstractConfiguredObject.close(AbstractConfiguredObject.java:506) > at > org.apache.qpid.server.store.derby.VirtualHostNodeTest.testCreateDuplicateVirtualHostNodeAndClose(VirtualHostNodeTest.java:87) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at junit.framework.TestCase.runTest(TestCase.java:176) > at junit.framework.TestCase.runBare(TestCase.java:141) > at junit.framework.TestResult$1.protect(TestResult.java:122) > at junit.framework.TestResult.runProtected(TestResult.java:142) > at junit.framework.TestResult.run(TestResult.java:125) > at junit.framework.TestCase.run(TestCase.java:129) > at org.apache.qpid.test.utils.QpidTestCase.run(QpidTestCase.java:148) > at junit.framework.TestSuite.runTest(TestSuite.java:255) > at junit.framework.TestSuite.run(TestSuite.java:250) > at > org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:84) > at org.junit.runner.JUnitCore.run(JUnitCore.java:160) > at > com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:74) > at > com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:211) > at > com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:67) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134) > Caused by: ERROR XJ004: Database > '/tmp/qpid.work_dir-1426160975964/VirtualHostNodeTest.testCreateDuplicateVirtualHostNodeAndClose/config/VirtualHostNodeTest.testCreateDuplicateVirtualHostNodeAndClose' > not found. > at org.apache.derby.iapi.error.StandardException.newException(Unknown > Source) > at > org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(Unknown > Source) > ... 42 more > 2015-03-12 11:49:42,188 DEBUG [main] [TaskExecutorImpl] Stopping task executor > 2015-03-12 11:49:42,190 DEBUG [main] [TaskExecutorImpl] Task executor is > stopped > 2015-03-12 11:49:42,196 INFO [main] [QpidTestCase] ========== tearDown > VirtualHostNodeTest.testCreateDuplicateVirtualHostNodeAndClose ========== > 2015-03-12 11:49:42,197 DEBUG [main] [QpidTestCase] reverting 1 test > properties > {noformat} > here is a test code snippet > {code} > String nodeName = getTestName(); > Map<String, Object> nodeData = new HashMap<>(); > nodeData.put(VirtualHostNode.NAME, nodeName); > nodeData.put(VirtualHostNode.TYPE, > DerbyVirtualHostNodeImpl.VIRTUAL_HOST_NODE_TYPE); > VirtualHostNode<?> virtualHostNode = > (VirtualHostNode<?>)_broker.createChild(VirtualHostNode.class, nodeData); > virtualHostNode.start(); > try > { > _broker.createChild(VirtualHostNode.class, nodeData); > } > catch(Exception e) > { > assertEquals("Unexpected message", "Child of type " + > virtualHostNode.getClass().getSimpleName() + " already exists with name of " > + getTestName(), e.getMessage()); > } > virtualHostNode.close(); > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org