summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2014-01-29 14:48:50 +0000
committerKeith Wall <kwall@apache.org>2014-01-29 14:48:50 +0000
commitcbca49b56cf17602bfaba5bbe6f5ab9d18f97e85 (patch)
tree2be8df8f17d0e852d7d90a7b1059844dfc056856
parent3d82eb9c42bf4dce8ac38029a7a808d8a3aa3ce2 (diff)
parentb9d59d86496cccf609210a0b1fc2fb9b9e224d7e (diff)
downloadqpid-python-cbca49b56cf17602bfaba5bbe6f5ab9d18f97e85.tar.gz
Merge changes from the trunk in revisions 1560619:1562452 using
svn merge -r 1560619:1562452 https://svn.apache.org/repos/asf/qpid/trunk git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/java-broker-bdb-ha@1562466 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/cpp/src/CMakeLists.txt22
-rw-r--r--qpid/cpp/src/config.h.cmake5
-rw-r--r--qpid/cpp/src/qpid/client/Connection.h1
-rw-r--r--qpid/cpp/src/qpid/framing/amqp_types.h5
-rw-r--r--qpid/cpp/src/qpid/ha/Backup.cpp5
-rw-r--r--qpid/cpp/src/qpid/ha/BrokerReplicator.cpp23
-rw-r--r--qpid/cpp/src/qpid/ha/BrokerReplicator.h8
-rw-r--r--qpid/cpp/src/qpid/ha/HaBroker.cpp6
-rw-r--r--qpid/cpp/src/qpid/ha/HaPlugin.cpp2
-rw-r--r--qpid/cpp/src/qpid/ha/Primary.cpp28
-rw-r--r--qpid/cpp/src/qpid/ha/Primary.h2
-rw-r--r--qpid/cpp/src/qpid/ha/PrimaryQueueLimits.h90
-rw-r--r--qpid/cpp/src/qpid/ha/PrimaryTxObserver.cpp8
-rw-r--r--qpid/cpp/src/qpid/ha/PrimaryTxObserver.h10
-rw-r--r--qpid/cpp/src/qpid/ha/QueueReplicator.cpp15
-rw-r--r--qpid/cpp/src/qpid/ha/QueueReplicator.h11
-rw-r--r--qpid/cpp/src/qpid/ha/TxReplicator.cpp10
-rw-r--r--qpid/cpp/src/qpid/ha/TxReplicator.h5
-rw-r--r--qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp15
-rw-r--r--qpid/cpp/src/qpid/messaging/amqp/ReceiverContext.cpp13
-rw-r--r--qpid/cpp/src/tests/CMakeLists.txt27
-rw-r--r--qpid/cpp/src/tests/brokertest.py11
-rwxr-xr-xqpid/cpp/src/tests/ha_test.py7
-rw-r--r--qpid/cpp/src/tests/ha_test_max_queues.cpp64
-rwxr-xr-xqpid/cpp/src/tests/ha_tests.py13
-rwxr-xr-xqpid/cpp/src/tests/sasl_fed_ex2
-rw-r--r--qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/SessionImpl.java66
-rw-r--r--qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Receive.java4
-rw-r--r--qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Session.java2
-rw-r--r--qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Transaction.java4
-rw-r--r--qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/TransactionController.java75
-rw-r--r--qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStore.java6
-rw-r--r--qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/tuple/PreparedTransactionBinding.java6
-rw-r--r--qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreTest.java4
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/log4j/QpidCompositeRollingAppender.java10
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java4
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/BrokerOptions.java8
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/ExchangeConfiguration.java4
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/plugins/AbstractConfiguration.java4
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java4
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java4
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/StoreConfigurationChangeListener.java6
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/updater/TaskExecutor.java4
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/connection/ConnectionRegistry.java12
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/connection/IConnectionRegistry.java4
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/ExchangeInUseException.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/topic/TopicMatcherDFAState.java4
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/FilterManagerFactory.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/Filterable.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/NullRootMessageLogger.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/RootMessageLogger.java4
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/SystemOutMessageLogger.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/actors/AMQPChannelActor.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/actors/AMQPConnectionActor.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/actors/SubscriptionActor.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/AbstractLogSubject.java4
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/SubscriptionLogSubject.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/AbstractServerMessageImpl.java2
-rwxr-xr-xqpid/java/broker-core/src/main/java/org/apache/qpid/server/message/EnqueueableMessage.java (renamed from qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/EnqueableMessage.java)2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/InstanceProperties.java33
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/ServerMessage.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AuthenticationMethod.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java4
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java6
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AccessControlProviderFactory.java6
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java4
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/PortAdapter.java6
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java6
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AMQQueue.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java6
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/ConflationQueueList.java19
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueEntry.java29
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueEntryImpl.java111
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueEntryInstanceProperties.java52
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java31
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SimpleQueueEntryImpl.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SortedQueueEntryList.java6
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/database/Base64MD5PasswordFilePrincipalDatabase.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabase.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManager.java6
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/sasl/crammd5/CRAMMD5HexInitialiser.java24
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/stats/StatisticsGatherer.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCMessageStore.java10
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractMemoryMessageStore.java14
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/DurableConfigurationRecoverer.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/StateManager.java2
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/Transaction.java8
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/subscription/ClientDeliveryMethod.java6
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/subscription/SubscriptionList.java2
-rwxr-xr-xqpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/AsyncAutoCommitTransaction.java10
-rwxr-xr-xqpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/AutoCommitTransaction.java8
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/DistributedTransaction.java18
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/DtxBranch.java14
-rwxr-xr-xqpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/LocalTransaction.java8
-rwxr-xr-xqpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/ServerTransaction.java9
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/DefaultUpgraderProvider.java2
-rwxr-xr-xqpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostConfigRecoveryHandler.java10
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/BrokerOptionsTest.java4
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/TransactionTimeoutHelperTest.java20
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/plugins/AbstractConfigurationTest.java22
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java4
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProviderTest.java4
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/KeyStoreRecovererTest.java10
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/TrustStoreRecovererTest.java6
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostRecovererTest.java4
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ConfigurationEntryStoreTestCase.java10
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/JsonConfigurationEntryStoreTest.java8
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStoreTest.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/updater/TaskExecutorTest.java8
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/DefaultExchangeFactoryTest.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/filter/JMSSelectorFilterTest.java6
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/Log4jMessageLoggerTest.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/UnitTestMessageLoggerTest.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/AMQPChannelActorTest.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/AMQPConnectionActorTest.java4
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/CurrentActorTest.java6
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/QueueActorTest.java4
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/SubscriptionActorTest.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/AbstractTestLogSubject.java12
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/BindingLogSubjectTest.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/ChannelLogSubjectTest.java4
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/ConnectionLogSubjectTest.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/ExchangeLogSubjectTest.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/QueueLogSubjectTest.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/SubscriptionLogSubjectTest.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/ConfiguredObjectStateTransitionTest.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java8
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderTest.java16
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/PortFactoryTest.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/configuration/ConfigurationEntryTest.java8
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java4
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/ConflationQueueListTest.java10
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/MockAMQQueue.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/MockQueueEntry.java58
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/NotificationCheckTest.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryImplTestBase.java51
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryListTestBase.java9
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTest.java28
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryImplTest.java10
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryListTest.java33
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryImplTest.java10
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/AuthenticatedPrincipalTest.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/database/Base64MD5PasswordFilePrincipalDatabaseTest.java6
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabaseTest.java4
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/jmx/JMXPasswordAuthenticatorTest.java7
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationManagerTest.java4
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/sasl/SaslServerTestCase.java12
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/sasl/amqplain/AMQPlainSaslServerTest.java6
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/sasl/plain/PlainSaslServerTest.java4
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/group/FileGroupDatabaseTest.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/AbstractDurableConfigurationStoreTestCase.java10
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/DurableConfigurationRecovererTest.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/EventManagerTest.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/MessageStoreQuotaEventsTestBase.java12
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/StateManagerTest.java8
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/TestableMemoryMessageStore.java6
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/subscription/SubscriptionListTest.java8
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/txn/AsyncAutoCommitTransactionTest.java6
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/txn/AutoCommitTransactionTest.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/txn/LocalTransactionTest.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/txn/MockAction.java2
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/txn/MockStoreTransaction.java6
-rw-r--r--qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/StandardVirtualHostTest.java2
-rw-r--r--qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/PlainConfiguration.java2
-rw-r--r--qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/Rule.java2
-rw-r--r--qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/RuleSet.java2
-rw-r--r--qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/config/PlainConfigurationTest.java4
-rw-r--r--qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/firewall/HostnameFirewallRuleTest.java2
-rw-r--r--qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlTest.java2
-rw-r--r--qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java6
-rw-r--r--qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java2
-rw-r--r--qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/Subscription_0_10.java13
-rw-r--r--qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java17
-rw-r--r--qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java32
-rw-r--r--qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolSession.java2
-rw-r--r--qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ExtractResendAndRequeue.java10
-rw-r--r--qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/SubscriptionImpl.java34
-rw-r--r--qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/BasicGetMethodHandler.java26
-rw-r--r--qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/BasicRejectMethodHandler.java2
-rw-r--r--qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/UnexpectedMethodException.java2
-rw-r--r--qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/output/ProtocolOutputConverter.java129
-rw-r--r--qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/output/ProtocolOutputConverterImpl.java33
-rw-r--r--qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/AckTest.java89
-rw-r--r--qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/AcknowledgeTest.java8
-rw-r--r--qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/BrokerTestHelper_0_8.java4
-rw-r--r--qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/ExtractResendAndRequeueTest.java40
-rw-r--r--qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java34
-rw-r--r--qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/MaxChannelsTest.java2
-rw-r--r--qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/QueueBrowserUsesNoAckTest.java4
-rw-r--r--qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/SubscriptionFactoryImplTest.java6
-rwxr-xr-xqpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageMetaData_1_0.java4
-rw-r--r--qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLink_1_0.java2
-rw-r--r--qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Subscription_1_0.java12
-rw-r--r--qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/TxnCoordinatorLink_1_0.java4
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/filter/RedirectingAuthorisationFilter.java6
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/log/LogFileHelper.java6
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java2
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java4
-rw-r--r--qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/log/LogFileHelperTest.java10
-rw-r--r--qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/MBeanIntrospector.java6
-rw-r--r--qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/MBeanInvocationHandlerImpl.java2
-rw-r--r--qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/ManagedObjectRegistry.java4
-rw-r--r--qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java4
-rw-r--r--qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/UserManagementMBeanTest.java2
-rw-r--r--qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoReceiver.java7
-rw-r--r--qpid/java/pom.xml20
-rw-r--r--qpid/java/qpid-test-utils/pom.xml14
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/server/store/QuotaMessageStore.java14
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/server/store/SlowMessageStore.java6
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/PortRestTest.java35
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java3
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/test/client/timeouts/SyncWaitDelayTest.java2
-rwxr-xr-xqpid/python/qpid-python-test2
-rw-r--r--qpid/python/qpid/compat.py3
-rw-r--r--qpid/tools/src/py/qls/efp.py2
-rw-r--r--qpid/tools/src/py/qls/err.py16
-rw-r--r--qpid/tools/src/py/qls/jrnl.py528
-rwxr-xr-xqpid/tools/src/py/qpid_qls_analyze.py5
221 files changed, 1673 insertions, 1252 deletions
diff --git a/qpid/cpp/src/CMakeLists.txt b/qpid/cpp/src/CMakeLists.txt
index 25f7e4a943..46b526579f 100644
--- a/qpid/cpp/src/CMakeLists.txt
+++ b/qpid/cpp/src/CMakeLists.txt
@@ -391,14 +391,19 @@ if (NOT CMAKE_SYSTEM_NAME STREQUAL Windows)
set (uuid_LIB "uuid")
# Check for header file for dtrace static probes
- check_include_files(sys/sdt.h HAVE_SYS_SDT_H)
- if (HAVE_SYS_SDT_H)
- set(probes_default ON)
- endif (HAVE_SYS_SDT_H)
- option(BUILD_PROBES "Build with DTrace/systemtap static probes" ${probes_default})
- if (NOT BUILD_PROBES)
- set (HAVE_SYS_SDT_H 0)
- endif (NOT BUILD_PROBES)
+ check_include_files(sys/sdt.h HAVE_SDT)
+ if (HAVE_SDT)
+ # Only enable by default on Linux
+ if (CMAKE_SYSTEM_NAME STREQUAL Linux)
+ set(probes_default ON)
+ endif (CMAKE_SYSTEM_NAME STREQUAL Linux)
+ option(BUILD_PROBES "Build with DTrace/systemtap static probes" "${probes_default}")
+ endif (HAVE_SDT)
+ if (BUILD_PROBES)
+ set (HAVE_SYS_SDT_H 1)
+ else (HAVE_SDT)
+ set (HAVE_SYS_SDT_H 0)
+ endif (BUILD_PROBES)
# Check for poll/epoll header files
check_include_files(sys/poll.h HAVE_POLL)
@@ -609,6 +614,7 @@ if (BUILD_HA)
qpid/ha/Membership.h
qpid/ha/Primary.cpp
qpid/ha/Primary.h
+ qpid/ha/PrimaryQueueLimits.h
qpid/ha/QueueGuard.cpp
qpid/ha/QueueGuard.h
qpid/ha/QueueReplicator.cpp
diff --git a/qpid/cpp/src/config.h.cmake b/qpid/cpp/src/config.h.cmake
index fcbfc8e280..9e45a9cbb9 100644
--- a/qpid/cpp/src/config.h.cmake
+++ b/qpid/cpp/src/config.h.cmake
@@ -50,14 +50,9 @@
#define QPID_SHLIB_SUFFIX "${CMAKE_SHARED_LIBRARY_SUFFIX}"
#define QPID_MODULE_SUFFIX "${CMAKE_SHARED_LIBRARY_SUFFIX}"
-#cmakedefine QPID_HAS_CLOCK_GETTIME
-
#define BROKER_SASL_NAME "${QPID_BROKER_SASL_NAME}"
#cmakedefine HAVE_SASL ${HAVE_SASL}
-#cmakedefine HAVE_OPENAIS_CPG_H ${HAVE_OPENAIS_CPG_H}
-#cmakedefine HAVE_COROSYNC_CPG_H ${HAVE_COROSYNC_CPG_H}
-#cmakedefine HAVE_LIBCMAN_H ${HAVE_LIBCMAN_H}
#cmakedefine HAVE_SYS_SDT_H ${HAVE_SYS_SDT_H}
#cmakedefine HAVE_LOG_AUTHPRIV
#cmakedefine HAVE_LOG_FTP
diff --git a/qpid/cpp/src/qpid/client/Connection.h b/qpid/cpp/src/qpid/client/Connection.h
index fb502cb40a..8c8a106c36 100644
--- a/qpid/cpp/src/qpid/client/Connection.h
+++ b/qpid/cpp/src/qpid/client/Connection.h
@@ -105,7 +105,6 @@ class QPID_CLIENT_CLASS_EXTERN Connection
const std::string& uid = "",
const std::string& pwd = "",
const std::string& virtualhost = "/", uint16_t maxFrameSize=65535);
-
/**
* Opens a connection to a broker using a URL.
* If the URL contains multiple addresses, try each in turn
diff --git a/qpid/cpp/src/qpid/framing/amqp_types.h b/qpid/cpp/src/qpid/framing/amqp_types.h
index 2072a83904..3fe8b68dcd 100644
--- a/qpid/cpp/src/qpid/framing/amqp_types.h
+++ b/qpid/cpp/src/qpid/framing/amqp_types.h
@@ -46,9 +46,8 @@ struct Uuid;
// Useful constants
-/** Maximum channel ID used by broker. Reserve high bit for internal use.*/
-const ChannelId CHANNEL_MAX=(ChannelId(~1))>>1;
-const ChannelId CHANNEL_HIGH_BIT= ChannelId(~CHANNEL_MAX);
+/** Maximum channel ID used by broker. */
+const ChannelId CHANNEL_MAX=(ChannelId(~1));
// Forward declare class types
class FramingContent;
diff --git a/qpid/cpp/src/qpid/ha/Backup.cpp b/qpid/cpp/src/qpid/ha/Backup.cpp
index 93ad5ec381..beae53d85f 100644
--- a/qpid/cpp/src/qpid/ha/Backup.cpp
+++ b/qpid/cpp/src/qpid/ha/Backup.cpp
@@ -30,7 +30,6 @@
#include "qpid/amqp_0_10/Codecs.h"
#include "qpid/broker/Bridge.h"
#include "qpid/broker/Broker.h"
-#include "qpid/broker/SessionHandler.h"
#include "qpid/broker/Link.h"
#include "qpid/framing/AMQP_ServerProxy.h"
#include "qpid/framing/AMQFrame.h"
@@ -72,8 +71,7 @@ void Backup::setBrokerUrl(const Url& brokers) {
settings.mechanism, settings.username, settings.password,
false); // no amq.failover - don't want to use client URL.
link = result.first;
- replicator.reset(new BrokerReplicator(haBroker, link));
- replicator->initialize();
+ replicator = BrokerReplicator::create(haBroker, link);
broker.getExchanges().registerExchange(replicator);
}
link->setUrl(brokers); // Outside the lock, once set link doesn't change.
@@ -96,7 +94,6 @@ Role* Backup::recover(Mutex::ScopedLock&) {
Mutex::ScopedLock l(lock);
if (stopped) return 0;
stop(l); // Stop backup activity before starting primary.
- QPID_LOG(notice, "Promoting to primary: " << haBroker.getBrokerInfo());
// Reset membership before allowing backups to connect.
backups = membership.otherBackups();
membership.clear();
diff --git a/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp b/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp
index e9734170b8..b1faf19e52 100644
--- a/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp
+++ b/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp
@@ -256,7 +256,7 @@ class BrokerReplicator::UpdateTracker {
private:
void clean(const std::string& name) {
- QPID_LOG(info, "Backup: Deleted " << type << " " << name <<
+ QPID_LOG(debug, "Backup: Deleted " << type << " " << name <<
": no longer exists on primary");
try { cleanFn(name); }
catch (const framing::NotFoundException&) {}
@@ -274,6 +274,12 @@ template <class EventType> std::string key() {
}
}
+boost::shared_ptr<BrokerReplicator> BrokerReplicator::create(
+ HaBroker& hb, const boost::shared_ptr<broker::Link>& l) {
+ boost::shared_ptr<BrokerReplicator> br(new BrokerReplicator(hb, l));
+ br->initialize();
+ return br;
+}
BrokerReplicator::BrokerReplicator(HaBroker& hb, const boost::shared_ptr<Link>& l)
: Exchange(QPID_CONFIGURATION_REPLICATOR),
@@ -363,7 +369,7 @@ void BrokerReplicator::connected(Bridge& bridge, SessionHandler& sessionHandler)
link->getRemoteAddress(primary);
string queueName = bridge.getQueueName();
- QPID_LOG(info, logPrefix << (initialized ? "Failing over" : "Connecting")
+ QPID_LOG(notice, logPrefix << (initialized ? "Failing over" : "Connecting")
<< " to primary " << primary
<< " status:" << printable(haBroker.getStatus()));
initialized = true;
@@ -763,15 +769,10 @@ boost::shared_ptr<QueueReplicator> BrokerReplicator::startQueueReplicator(
const boost::shared_ptr<Queue>& queue)
{
if (replicationTest.getLevel(*queue) == ALL) {
- boost::shared_ptr<QueueReplicator> qr;
- if (TxReplicator::isTxQueue(queue->getName())){
- qr.reset(new TxReplicator(haBroker, queue, link));
- }
- else {
- qr.reset(new QueueReplicator(haBroker, queue, link));
- }
- qr->activate();
- return qr;
+ if (TxReplicator::isTxQueue(queue->getName()))
+ return TxReplicator::create(haBroker, queue, link);
+ else
+ return QueueReplicator::create(haBroker, queue, link);
}
return boost::shared_ptr<QueueReplicator>();
}
diff --git a/qpid/cpp/src/qpid/ha/BrokerReplicator.h b/qpid/cpp/src/qpid/ha/BrokerReplicator.h
index a6bf02c392..445406ad19 100644
--- a/qpid/cpp/src/qpid/ha/BrokerReplicator.h
+++ b/qpid/cpp/src/qpid/ha/BrokerReplicator.h
@@ -75,10 +75,11 @@ class BrokerReplicator : public broker::Exchange,
public:
typedef boost::shared_ptr<QueueReplicator> QueueReplicatorPtr;
- BrokerReplicator(HaBroker&, const boost::shared_ptr<broker::Link>&);
+ static boost::shared_ptr<BrokerReplicator> create(
+ HaBroker&, const boost::shared_ptr<broker::Link>&);
+
~BrokerReplicator();
- void initialize(); // Must be called immediately after constructor.
void shutdown();
// Exchange methods
@@ -98,6 +99,9 @@ class BrokerReplicator : public broker::Exchange,
QueueReplicatorPtr findQueueReplicator(const std::string& qname);
private:
+ BrokerReplicator(HaBroker&, const boost::shared_ptr<broker::Link>&);
+ void initialize(); // Called in create()
+
typedef std::pair<boost::shared_ptr<broker::Queue>, bool> CreateQueueResult;
typedef std::pair<boost::shared_ptr<broker::Exchange>, bool> CreateExchangeResult;
diff --git a/qpid/cpp/src/qpid/ha/HaBroker.cpp b/qpid/cpp/src/qpid/ha/HaBroker.cpp
index 50e99ef527..25703eeeb2 100644
--- a/qpid/cpp/src/qpid/ha/HaBroker.cpp
+++ b/qpid/cpp/src/qpid/ha/HaBroker.cpp
@@ -108,7 +108,7 @@ bool isNone(const std::string& x) { return x.empty() || x == NONE; }
void HaBroker::initialize() {
if (settings.cluster) {
membership.setStatus(JOINING);
- QPID_LOG(notice, "Initializing HA broker: " << membership.getSelf());
+ QPID_LOG(info, "Initializing HA broker: " << membership.getSelf());
}
// Set up the management object.
@@ -176,9 +176,7 @@ Manageable::status_t HaBroker::ManagementMethod (uint32_t methodId, Args& args,
shared_ptr<broker::Link> link = result.first;
link->setUrl(url);
// Create a queue replicator
- shared_ptr<QueueReplicator> qr(
- new QueueReplicator(*this, queue, link));
- qr->activate();
+ shared_ptr<QueueReplicator> qr(QueueReplicator::create(*this, queue, link));
broker.getExchanges().registerExchange(qr);
break;
}
diff --git a/qpid/cpp/src/qpid/ha/HaPlugin.cpp b/qpid/cpp/src/qpid/ha/HaPlugin.cpp
index d26b466847..ddf2994c78 100644
--- a/qpid/cpp/src/qpid/ha/HaPlugin.cpp
+++ b/qpid/cpp/src/qpid/ha/HaPlugin.cpp
@@ -72,7 +72,7 @@ struct HaPlugin : public Plugin {
broker::Broker* broker = dynamic_cast<broker::Broker*>(&target);
if (broker && (settings.cluster || settings.queueReplication)) {
if (!broker->getManagementAgent()) {
- QPID_LOG(info, "HA plugin disabled because management is disabled");
+ QPID_LOG(warning, "HA plugin disabled because management is disabled");
if (settings.cluster)
throw Exception("Cannot start HA: management is disabled");
} else {
diff --git a/qpid/cpp/src/qpid/ha/Primary.cpp b/qpid/cpp/src/qpid/ha/Primary.cpp
index 496704f737..3bb51b1813 100644
--- a/qpid/cpp/src/qpid/ha/Primary.cpp
+++ b/qpid/cpp/src/qpid/ha/Primary.cpp
@@ -92,7 +92,8 @@ class ExpectedBackupTimerTask : public sys::TimerTask {
Primary::Primary(HaBroker& hb, const BrokerInfo::Set& expect) :
haBroker(hb), membership(hb.getMembership()),
logPrefix("Primary: "), active(false),
- replicationTest(hb.getSettings().replicateDefault.get())
+ replicationTest(hb.getSettings().replicateDefault.get()),
+ queueLimits(logPrefix)
{
// Note that at this point, we are still rejecting client connections.
// So we are safe from client interference while we set up the primary.
@@ -104,14 +105,12 @@ Primary::Primary(HaBroker& hb, const BrokerInfo::Set& expect) :
QueueReplicator::copy(hb.getBroker().getExchanges(), qrs);
std::for_each(qrs.begin(), qrs.end(), boost::bind(&QueueReplicator::promoted, _1));
- if (expect.empty()) {
- QPID_LOG(notice, logPrefix << "Promoted to primary. No expected backups.");
- }
- else {
+ if (!expect.empty()) {
// NOTE: RemoteBackups must be created before we set the BrokerObserver
// or ConnectionObserver so that there is no client activity while
// the QueueGuards are created.
- QPID_LOG(notice, logPrefix << "Promoted to primary. Expected backups: " << expect);
+ QPID_LOG(notice, logPrefix << "Promoted and recovering, waiting for backups: "
+ << expect);
for (BrokerInfo::Set::const_iterator i = expect.begin(); i != expect.end(); ++i) {
boost::shared_ptr<RemoteBackup> backup(new RemoteBackup(*i, 0));
backups[i->getSystemId()] = backup;
@@ -146,7 +145,7 @@ void Primary::checkReady() {
activate = active = true;
}
if (activate) {
- QPID_LOG(notice, logPrefix << "Finished waiting for backups, primary is active.");
+ QPID_LOG(notice, logPrefix << "Promoted and active.");
membership.setStatus(ACTIVE); // Outside of lock.
}
}
@@ -248,16 +247,17 @@ void Primary::queueCreate(const QueuePtr& q) {
ReplicateLevel level = replicationTest.useLevel(*q);
q->addArgument(QPID_REPLICATE, printable(level).str());
if (level) {
- QPID_LOG(debug, logPrefix << "Created queue " << q->getName()
- << " replication: " << printable(level));
// Give each queue a unique id. Used by backups to avoid confusion of
// same-named queues.
q->addArgument(QPID_HA_UUID, types::Variant(Uuid(true)));
{
Mutex::ScopedLock l(lock);
+ queueLimits.addQueue(q); // Throws if limit exceeded
for (BackupMap::iterator i = backups.begin(); i != backups.end(); ++i)
i->second->queueCreate(q);
}
+ QPID_LOG(debug, logPrefix << "Created queue " << q->getName()
+ << " replication: " << printable(level));
checkReady(); // Outside lock
}
}
@@ -268,6 +268,7 @@ void Primary::queueDestroy(const QueuePtr& q) {
QPID_LOG(debug, logPrefix << "Destroyed queue " << q->getName());
{
Mutex::ScopedLock l(lock);
+ queueLimits.removeQueue(q);
for (BackupMap::iterator i = backups.begin(); i != backups.end(); ++i)
i->second->queueDestroy(q);
}
@@ -302,6 +303,7 @@ shared_ptr<RemoteBackup> Primary::backupConnect(
const BrokerInfo& info, broker::Connection& connection, Mutex::ScopedLock&)
{
shared_ptr<RemoteBackup> backup(new RemoteBackup(info, &connection));
+ queueLimits.addBackup(backup);
backups[info.getSystemId()] = backup;
return backup;
}
@@ -309,6 +311,7 @@ shared_ptr<RemoteBackup> Primary::backupConnect(
// Remove a backup. Caller should not release the shared pointer returend till
// outside the lock.
void Primary::backupDisconnect(shared_ptr<RemoteBackup> backup, Mutex::ScopedLock&) {
+ queueLimits.addBackup(backup);
types::Uuid id = backup->getBrokerInfo().getSystemId();
backup->cancel();
expectedBackups.erase(backup);
@@ -403,9 +406,8 @@ void Primary::setCatchupQueues(const RemoteBackupPtr& backup, bool createGuards)
shared_ptr<PrimaryTxObserver> Primary::makeTxObserver(
const boost::intrusive_ptr<broker::TxBuffer>& txBuffer)
{
- shared_ptr<PrimaryTxObserver> observer(
- new PrimaryTxObserver(*this, haBroker, txBuffer));
- observer->initialize();
+ shared_ptr<PrimaryTxObserver> observer =
+ PrimaryTxObserver::create(*this, haBroker, txBuffer);
txMap[observer->getTxQueue()->getName()] = observer;
return observer;
}
@@ -415,7 +417,7 @@ void Primary::startTx(const boost::intrusive_ptr<broker::TxBuffer>& txBuffer) {
}
void Primary::startDtx(const boost::intrusive_ptr<broker::DtxBuffer>& ) {
- QPID_LOG(notice, "DTX transactions in a HA cluster are not yet atomic");
+ QPID_LOG(warning, "DTX transactions in a HA cluster are not yet atomic");
}
}} // namespace qpid::ha
diff --git a/qpid/cpp/src/qpid/ha/Primary.h b/qpid/cpp/src/qpid/ha/Primary.h
index e0a7065e2c..2e32515c9a 100644
--- a/qpid/cpp/src/qpid/ha/Primary.h
+++ b/qpid/cpp/src/qpid/ha/Primary.h
@@ -25,6 +25,7 @@
#include "types.h"
#include "hash.h"
#include "BrokerInfo.h"
+#include "PrimaryQueueLimits.h"
#include "ReplicationTest.h"
#include "Role.h"
#include "qpid/sys/Mutex.h"
@@ -154,6 +155,7 @@ class Primary : public Role
boost::intrusive_ptr<sys::TimerTask> timerTask;
ReplicaMap replicas;
TxMap txMap;
+ PrimaryQueueLimits queueLimits;
};
}} // namespace qpid::ha
diff --git a/qpid/cpp/src/qpid/ha/PrimaryQueueLimits.h b/qpid/cpp/src/qpid/ha/PrimaryQueueLimits.h
new file mode 100644
index 0000000000..a2322f1545
--- /dev/null
+++ b/qpid/cpp/src/qpid/ha/PrimaryQueueLimits.h
@@ -0,0 +1,90 @@
+#ifndef QPID_HA_PRIMARYQUEUELIMITS_H
+#define QPID_HA_PRIMARYQUEUELIMITS_H
+
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+#include <qpid/broker/Queue.h>
+#include <qpid/framing/amqp_types.h>
+#include <boost/shared_ptr.hpp>
+#include <string>
+
+namespace qpid {
+namespace broker {
+class Queue;
+}
+
+namespace ha {
+class RemoteBackup;
+
+/**
+ * Track queue limits on the primary, ensure the primary does not attempt to
+ * replicate more queues than the backups can handle.
+ *
+ * THREAD UNSAFE: Protected by Primary::lock
+ */
+class PrimaryQueueLimits
+{
+ public:
+ // FIXME aconway 2014-01-24: hardcoded maxQueues, use negotiated channel-max
+ PrimaryQueueLimits(const std::string& lp) :
+ logPrefix(lp), maxQueues(framing::CHANNEL_MAX-100), queues(0) {}
+
+ /** Add a replicated queue
+ *@exception ResourceLimitExceededException if this would exceed the limit.
+ */
+ void addQueue(const boost::shared_ptr<broker::Queue>& q) {
+ if (queues >= maxQueues) {
+ QPID_LOG(error, logPrefix << "Cannot create replicated queue " << q->getName()
+ << " exceeds limit of " << maxQueues
+ << " replicated queues.");
+ throw framing::ResourceLimitExceededException(
+ "Exceeded replicated queue limit.");
+ }
+ else ++queues;
+ }
+
+ /** Remove a replicated queue.
+ * @pre Was previously added with addQueue
+ */
+ void removeQueue(const boost::shared_ptr<broker::Queue>&) { --queues; }
+
+ // TODO aconway 2014-01-24: Currently replication links always use the
+ // hard-coded framing::CHANNEL_MAX. In future (e.g. when we support AMQP1.0
+ // on replication links) we may need to check the actual channel max on each
+ // link and update maxQueues to the smallest value. addBackup and removeBackup
+ // are placeholders for that.
+
+ /** Add a backup */
+ void addBackup(const boost::shared_ptr<RemoteBackup>&) {}
+
+ /** Remove a backup */
+ void removeBackup(const boost::shared_ptr<RemoteBackup>&) {}
+
+ private:
+ std::string logPrefix;
+ uint64_t maxQueues;
+ uint64_t queues;
+};
+
+}} // namespace qpid::ha
+
+#endif /*!QPID_HA_PRIMARYQUEUELIMITS_H*/
diff --git a/qpid/cpp/src/qpid/ha/PrimaryTxObserver.cpp b/qpid/cpp/src/qpid/ha/PrimaryTxObserver.cpp
index eeb3312aec..dc5bf15911 100644
--- a/qpid/cpp/src/qpid/ha/PrimaryTxObserver.cpp
+++ b/qpid/cpp/src/qpid/ha/PrimaryTxObserver.cpp
@@ -82,6 +82,14 @@ class PrimaryTxObserver::Exchange : public broker::Exchange {
const string PrimaryTxObserver::Exchange::TYPE_NAME(string(QPID_HA_PREFIX)+"primary-tx-observer");
+boost::shared_ptr<PrimaryTxObserver> PrimaryTxObserver::create(
+ Primary& p, HaBroker& hb, const boost::intrusive_ptr<broker::TxBuffer>& tx) {
+ boost::shared_ptr<PrimaryTxObserver> pto(new PrimaryTxObserver(p, hb, tx));
+ pto->initialize();
+ return pto;
+}
+
+
PrimaryTxObserver::PrimaryTxObserver(
Primary& p, HaBroker& hb, const boost::intrusive_ptr<broker::TxBuffer>& tx
) :
diff --git a/qpid/cpp/src/qpid/ha/PrimaryTxObserver.h b/qpid/cpp/src/qpid/ha/PrimaryTxObserver.h
index 31b2b84b0a..105fee4d40 100644
--- a/qpid/cpp/src/qpid/ha/PrimaryTxObserver.h
+++ b/qpid/cpp/src/qpid/ha/PrimaryTxObserver.h
@@ -66,11 +66,10 @@ class PrimaryTxObserver : public broker::TransactionObserver,
public boost::enable_shared_from_this<PrimaryTxObserver>
{
public:
- PrimaryTxObserver(Primary&, HaBroker&, const boost::intrusive_ptr<broker::TxBuffer>&);
- ~PrimaryTxObserver();
+ static boost::shared_ptr<PrimaryTxObserver> create(
+ Primary&, HaBroker&, const boost::intrusive_ptr<broker::TxBuffer>&);
- /** Call immediately after constructor, uses shared_from_this. */
- void initialize();
+ ~PrimaryTxObserver();
void enqueue(const QueuePtr&, const broker::Message&);
void dequeue(const QueuePtr& queue, QueuePosition, ReplicationId);
@@ -96,6 +95,9 @@ class PrimaryTxObserver : public broker::TransactionObserver,
ENDED ///< Commit or rollback sent, local transaction ended.
};
+ PrimaryTxObserver(Primary&, HaBroker&, const boost::intrusive_ptr<broker::TxBuffer>&);
+ void initialize();
+
void checkState(State expect, const std::string& msg);
void end(sys::Mutex::ScopedLock&);
void txPrepareOkEvent(const std::string& data);
diff --git a/qpid/cpp/src/qpid/ha/QueueReplicator.cpp b/qpid/cpp/src/qpid/ha/QueueReplicator.cpp
index eda3f96180..507df6ea5a 100644
--- a/qpid/cpp/src/qpid/ha/QueueReplicator.cpp
+++ b/qpid/cpp/src/qpid/ha/QueueReplicator.cpp
@@ -34,7 +34,6 @@
#include "qpid/broker/QueueObserver.h"
#include "qpid/broker/QueueRegistry.h"
#include "qpid/broker/SessionHandler.h"
-#include "qpid/broker/SessionHandler.h"
#include "qpid/framing/FieldTable.h"
#include "qpid/log/Statement.h"
#include "qpid/Msg.h"
@@ -109,6 +108,14 @@ class QueueReplicator::QueueObserver : public broker::QueueObserver {
boost::shared_ptr<QueueReplicator> queueReplicator;
};
+boost::shared_ptr<QueueReplicator> QueueReplicator::create(
+ HaBroker& hb, boost::shared_ptr<broker::Queue> q, boost::shared_ptr<broker::Link> l)
+{
+ boost::shared_ptr<QueueReplicator> qr(new QueueReplicator(hb, q, l));
+ qr->initialize();
+ return qr;
+}
+
QueueReplicator::QueueReplicator(HaBroker& hb,
boost::shared_ptr<Queue> q,
boost::shared_ptr<Link> l)
@@ -145,9 +152,7 @@ QueueReplicator::QueueReplicator(HaBroker& hb,
QueueReplicator::~QueueReplicator() {}
-// This must be called immediately after the constructor.
-// It has to be separate so we can call shared_from_this().
-void QueueReplicator::activate() {
+void QueueReplicator::initialize() {
Mutex::ScopedLock l(lock);
QPID_LOG(debug, logPrefix << "Created");
if (!queue) return; // Already destroyed
@@ -235,7 +240,7 @@ void QueueReplicator::initializeBridge(Bridge& bridge, SessionHandler& sessionHa
}
qpid::Address primary;
link->getRemoteAddress(primary);
- QPID_LOG(info, logPrefix << "Connected to " << primary << "(" << bridgeName << ")");
+ QPID_LOG(debug, logPrefix << "Connected to " << primary << "(" << bridgeName << ")");
QPID_LOG(trace, logPrefix << "Subscription arguments: " << arguments);
}
diff --git a/qpid/cpp/src/qpid/ha/QueueReplicator.h b/qpid/cpp/src/qpid/ha/QueueReplicator.h
index a86355f194..22cd13a0a8 100644
--- a/qpid/cpp/src/qpid/ha/QueueReplicator.h
+++ b/qpid/cpp/src/qpid/ha/QueueReplicator.h
@@ -67,13 +67,11 @@ class QueueReplicator : public broker::Exchange,
/*** Copy QueueReplicators from the registry */
static void copy(broker::ExchangeRegistry&, Vector& result);
- QueueReplicator(HaBroker&,
- boost::shared_ptr<broker::Queue> q,
- boost::shared_ptr<broker::Link> l);
+ static boost::shared_ptr<QueueReplicator> create(
+ HaBroker&, boost::shared_ptr<broker::Queue> q, boost::shared_ptr<broker::Link> l);
~QueueReplicator();
- void activate(); // Must be called immediately after constructor.
void disconnect(); // Called when we are disconnected from the primary.
std::string getType() const;
@@ -97,6 +95,11 @@ class QueueReplicator : public broker::Exchange,
typedef boost::function<void(const std::string&, sys::Mutex::ScopedLock&)> DispatchFn;
typedef qpid::sys::unordered_map<std::string, DispatchFn> DispatchMap;
+ QueueReplicator(
+ HaBroker&, boost::shared_ptr<broker::Queue>, boost::shared_ptr<broker::Link>);
+
+ void initialize(); // Called as part of create()
+
virtual void deliver(const broker::Message&);
virtual void destroy(); // Called when the queue is destroyed.
diff --git a/qpid/cpp/src/qpid/ha/TxReplicator.cpp b/qpid/cpp/src/qpid/ha/TxReplicator.cpp
index 9ae9dcce36..7ff03b5f92 100644
--- a/qpid/cpp/src/qpid/ha/TxReplicator.cpp
+++ b/qpid/cpp/src/qpid/ha/TxReplicator.cpp
@@ -70,6 +70,16 @@ string TxReplicator::getTxId(const string& q) {
string TxReplicator::getType() const { return ReplicatingSubscription::QPID_TX_REPLICATOR; }
+boost::shared_ptr<TxReplicator> TxReplicator::create(
+ HaBroker& hb,
+ const boost::shared_ptr<broker::Queue>& txQueue,
+ const boost::shared_ptr<broker::Link>& link)
+{
+ boost::shared_ptr<TxReplicator> tr(new TxReplicator(hb, txQueue, link));
+ tr->initialize();
+ return tr;
+}
+
TxReplicator::TxReplicator(
HaBroker& hb,
const boost::shared_ptr<broker::Queue>& txQueue,
diff --git a/qpid/cpp/src/qpid/ha/TxReplicator.h b/qpid/cpp/src/qpid/ha/TxReplicator.h
index 9d80ecb8d3..7f1256699a 100644
--- a/qpid/cpp/src/qpid/ha/TxReplicator.h
+++ b/qpid/cpp/src/qpid/ha/TxReplicator.h
@@ -58,7 +58,9 @@ class TxReplicator : public QueueReplicator {
static bool isTxQueue(const std::string& queue);
static std::string getTxId(const std::string& queue);
- TxReplicator(HaBroker&, const QueuePtr& txQueue, const LinkPtr& link);
+ static boost::shared_ptr<TxReplicator> create(
+ HaBroker&, const QueuePtr& txQueue, const LinkPtr& link);
+
~TxReplicator();
std::string getType() const;
@@ -78,6 +80,7 @@ class TxReplicator : public QueueReplicator {
typedef qpid::sys::unordered_map<std::string, DispatchFunction> DispatchMap;
typedef qpid::sys::unordered_map<std::string, ReplicationIdSet> DequeueMap;
+ TxReplicator(HaBroker&, const QueuePtr& txQueue, const LinkPtr& link);
void sendMessage(const broker::Message&, sys::Mutex::ScopedLock&);
void enqueue(const std::string& data, sys::Mutex::ScopedLock&);
void dequeue(const std::string& data, sys::Mutex::ScopedLock&);
diff --git a/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp b/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp
index 0fa7bf218f..07367b8aa8 100644
--- a/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp
+++ b/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp
@@ -333,6 +333,21 @@ void ConnectionContext::detach(boost::shared_ptr<SessionContext> ssn, boost::sha
void ConnectionContext::detach(boost::shared_ptr<SessionContext> ssn, boost::shared_ptr<ReceiverContext> lnk)
{
qpid::sys::ScopedLock<qpid::sys::Monitor> l(lock);
+ pn_link_drain(lnk->receiver, 0);
+ wakeupDriver();
+ //Not all implementations handle drain correctly, so limit the
+ //time spent waiting for it
+ qpid::sys::AbsTime until(qpid::sys::now(), qpid::sys::TIME_SEC*2);
+ while (pn_link_credit(lnk->receiver) > pn_link_queued(lnk->receiver) && until > qpid::sys::now()) {
+ QPID_LOG(debug, "Waiting for credit to be drained: credit=" << pn_link_credit(lnk->receiver) << ", queued=" << pn_link_queued(lnk->receiver));
+ waitUntil(ssn, lnk, until);
+ }
+ //release as yet unfetched messages:
+ for (pn_delivery_t* d = pn_link_current(lnk->receiver); d; d = pn_link_current(lnk->receiver)) {
+ pn_link_advance(lnk->receiver);
+ pn_delivery_update(d, PN_RELEASED);
+ pn_delivery_settle(d);
+ }
if (pn_link_state(lnk->receiver) & PN_LOCAL_ACTIVE) {
lnk->close();
}
diff --git a/qpid/cpp/src/qpid/messaging/amqp/ReceiverContext.cpp b/qpid/cpp/src/qpid/messaging/amqp/ReceiverContext.cpp
index 38b3c07cf5..7eaa1c068b 100644
--- a/qpid/cpp/src/qpid/messaging/amqp/ReceiverContext.cpp
+++ b/qpid/cpp/src/qpid/messaging/amqp/ReceiverContext.cpp
@@ -58,21 +58,12 @@ uint32_t ReceiverContext::getCapacity()
uint32_t ReceiverContext::getAvailable()
{
- uint32_t count(0);
- for (pn_delivery_t* d = pn_unsettled_head(receiver); d; d = pn_unsettled_next(d)) {
- ++count;
- if (d == pn_link_current(receiver)) break;
- }
- return count;
+ return pn_link_queued(receiver);
}
uint32_t ReceiverContext::getUnsettled()
{
- uint32_t count(0);
- for (pn_delivery_t* d = pn_unsettled_head(receiver); d; d = pn_unsettled_next(d)) {
- ++count;
- }
- return count;
+ return pn_link_unsettled(receiver) - pn_link_queued(receiver);
}
void ReceiverContext::close()
diff --git a/qpid/cpp/src/tests/CMakeLists.txt b/qpid/cpp/src/tests/CMakeLists.txt
index 9cacd10976..37cd6629dc 100644
--- a/qpid/cpp/src/tests/CMakeLists.txt
+++ b/qpid/cpp/src/tests/CMakeLists.txt
@@ -299,17 +299,36 @@ add_executable (msg_group_test msg_group_test.cpp ${platform_test_additions})
target_link_libraries (msg_group_test qpidmessaging qpidtypes qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
remember_location(msg_group_test)
+add_executable (ha_test_max_queues ha_test_max_queues.cpp ${platform_test_additions})
+target_link_libraries (ha_test_max_queues qpidclient qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
+remember_location(ha_test_max_queues)
+
if (BUILD_SASL)
add_executable (sasl_version sasl_version.cpp ${platform_test_additions})
remember_location(sasl_version)
endif (BUILD_SASL)
-# Always run the python install, setup.py is smart enough to do only what is needed.
set (python_bld ${CMAKE_CURRENT_BINARY_DIR}/python)
set (python_src ${CMAKE_SOURCE_DIR}/../python)
-add_custom_target(python_bld ALL
- COMMAND ${PYTHON_EXECUTABLE} setup.py install --prefix=${python_bld} --install-lib=${python_bld} --install-scripts=${python_bld}/commands
- WORKING_DIRECTORY ${python_src})
+
+# This will not pick up added or deleted python files
+# In that case you need to rerun CMake
+file(GLOB_RECURSE python_files ${python_src}/*.py)
+
+add_custom_command(
+ OUTPUT ${python_bld}
+ DEPENDS ${python_files}
+ COMMAND ${PYTHON_EXECUTABLE}
+ setup.py
+ build --build-base=${python_bld}/build
+ install --prefix=${python_bld} --install-lib=${python_bld} --install-scripts=${python_bld}/commands
+ WORKING_DIRECTORY ${python_src}
+)
+
+add_custom_target(
+ python_bld ALL
+ DEPENDS ${python_bld}
+)
if (BUILD_SASL)
add_test (sasl_fed ${test_wrap} -- ${CMAKE_CURRENT_SOURCE_DIR}/sasl_fed${test_script_suffix})
diff --git a/qpid/cpp/src/tests/brokertest.py b/qpid/cpp/src/tests/brokertest.py
index 3f99d8647b..c7fcf2c3af 100644
--- a/qpid/cpp/src/tests/brokertest.py
+++ b/qpid/cpp/src/tests/brokertest.py
@@ -247,7 +247,7 @@ class Broker(Popen):
def get_log(self):
return os.path.abspath(self.log)
- def __init__(self, test, args=[], test_store=False, name=None, expect=EXPECT_RUNNING, port=0, log_level=None, wait=None, show_cmd=False):
+ def __init__(self, test, args=[], test_store=False, name=None, expect=EXPECT_RUNNING, port=0, wait=None, show_cmd=False):
"""Start a broker daemon. name determines the data-dir and log
file names."""
@@ -276,7 +276,10 @@ class Broker(Popen):
cmd += ["--log-to-file", self.log]
cmd += ["--log-to-stderr=no"]
- cmd += ["--log-enable=%s"%(log_level or "info+") ]
+
+ # Add default --log-enable arguments unless args already has --log arguments.
+ if not next((l for l in args if l.startswith("--log")), None):
+ args += ["--log-enable=info+"]
if test_store: cmd += ["--load-module", BrokerTest.test_store_lib,
"--test-store-events", self.store_log]
@@ -474,9 +477,9 @@ class BrokerTest(TestCase):
self.cleanup_stop(p)
return p
- def broker(self, args=[], name=None, expect=EXPECT_RUNNING, wait=True, port=0, log_level=None, show_cmd=False):
+ def broker(self, args=[], name=None, expect=EXPECT_RUNNING, wait=True, port=0, show_cmd=False):
"""Create and return a broker ready for use"""
- b = Broker(self, args=args, name=name, expect=expect, port=port, log_level=log_level, show_cmd=show_cmd)
+ b = Broker(self, args=args, name=name, expect=expect, port=port, show_cmd=show_cmd)
if (wait):
try: b.ready()
except Exception, e:
diff --git a/qpid/cpp/src/tests/ha_test.py b/qpid/cpp/src/tests/ha_test.py
index 8dd1347144..4606fab746 100755
--- a/qpid/cpp/src/tests/ha_test.py
+++ b/qpid/cpp/src/tests/ha_test.py
@@ -121,7 +121,7 @@ class HaBroker(Broker):
@param client_cred: (user, password, mechanism) for admin clients started by the HaBroker.
"""
- heartbeat=2
+ heartbeat=5
def __init__(self, test, ha_port=None, args=[], brokers_url=None, ha_cluster=True,
ha_replicate="all", client_credentials=None, **kwargs):
@@ -129,8 +129,6 @@ class HaBroker(Broker):
ha_port = ha_port or HaPort(test)
args = copy(args)
args += ["--load-module", BrokerTest.ha_lib,
- "--log-enable=info+",
- "--log-enable=debug+:ha::",
# Non-standard settings for faster tests.
"--link-maintenance-interval=0.1",
# Heartbeat and negotiate time are needed so that a broker wont
@@ -138,6 +136,9 @@ class HaBroker(Broker):
"--link-heartbeat-interval=%s"%(HaBroker.heartbeat),
"--max-negotiate-time=1000",
"--ha-cluster=%s"%ha_cluster]
+ # Add default --log-enable arguments unless args already has --log arguments.
+ if not next((l for l in args if l.startswith("--log")), None):
+ args += ["--log-enable=info+", "--log-enable=debug+:ha::"]
if ha_replicate is not None:
args += [ "--ha-replicate=%s"%ha_replicate ]
if brokers_url: args += [ "--ha-brokers-url", brokers_url ]
diff --git a/qpid/cpp/src/tests/ha_test_max_queues.cpp b/qpid/cpp/src/tests/ha_test_max_queues.cpp
new file mode 100644
index 0000000000..fda271f854
--- /dev/null
+++ b/qpid/cpp/src/tests/ha_test_max_queues.cpp
@@ -0,0 +1,64 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+#include <qpid/client/Connection.h>
+#include <qpid/client/Session.h>
+#include <qpid/client/AsyncSession.h>
+#include <qpid/Url.h>
+#include <qpid/framing/reply_exceptions.h>
+#include <sstream>
+
+using namespace qpid::client;
+using namespace std;
+
+int main(int argc, char** argv) {
+ assert(argc == 2); // Expecing URL of broker as argv[1]
+ try {
+ // We need to create a large number of queues quickly, so we
+ // use the old API for it's asynchronous commands.
+ // The qpid::messaging API does not allow async queue creation.
+ //
+ Connection c;
+ c.open(qpid::Url(argv[1]));
+ AsyncSession s = async(c.newSession());
+ // Generate too many queues, make sure we get an exception.
+ for (uint64_t i = 0; i < 100000; ++i) {
+ ostringstream os;
+ os << "q" << i;
+ string q = os.str();
+ s.queueDeclare(q, arg::sync=false);
+ if (i && i % 1000 == 0) {
+ s.sync(); // Check for exceptions.
+ cout << "Declared " << q << endl;
+ }
+ }
+ cout << "Expected resource-limit-exceeded exception" << endl;
+ return 1;
+ }
+ catch (const qpid::framing::ResourceLimitExceededException& e) {
+ cout << "Resource limit exceeded: " << e.what() << endl;
+ return 0;
+ }
+ catch (const std::exception& e) {
+ cout << "Error: " << e.what() << endl;
+ return 1;
+ }
+}
diff --git a/qpid/cpp/src/tests/ha_tests.py b/qpid/cpp/src/tests/ha_tests.py
index b8644ab0fa..abc62b643e 100755
--- a/qpid/cpp/src/tests/ha_tests.py
+++ b/qpid/cpp/src/tests/ha_tests.py
@@ -22,6 +22,7 @@ import os, signal, sys, time, imp, re, subprocess, glob, random, logging, shutil
import traceback
from qpid.messaging import Message, SessionError, NotFound, ConnectionError, ReceiverError, Connection, Timeout, Disposition, REJECTED, Empty, ServerError
from qpid.datatypes import uuid4, UUID
+from qpid.harness import Skipped
from brokertest import *
from ha_test import *
from threading import Thread, Lock, Condition
@@ -1078,6 +1079,18 @@ class LongTests(HaBrokerTest):
finally:
for t in threads: t.stopped = True; t.join()
+ def test_max_queues(self):
+ """Verify that we behave properly if we try to exceed the max number
+ of replicated queues - currently limited by the max number of channels
+ in the replication link"""
+ # This test is very slow (3 mins), skip it unless duration() > 1 minute.
+ if self.duration() < 60: return
+ # This test is written in C++ for speed, it takes a long time
+ # to create 64k queues in python. See ha_test_max_queues.cpp.
+ cluster = HaCluster(self, 2)
+ test = self.popen(["ha_test_max_queues", cluster[0].host_port()])
+ self.assertEqual(test.wait(), 0)
+
class RecoveryTests(HaBrokerTest):
"""Tests for recovery after a failure."""
diff --git a/qpid/cpp/src/tests/sasl_fed_ex b/qpid/cpp/src/tests/sasl_fed_ex
index febafb19de..e2ee37ba39 100755
--- a/qpid/cpp/src/tests/sasl_fed_ex
+++ b/qpid/cpp/src/tests/sasl_fed_ex
@@ -75,7 +75,7 @@ create_certs() {
#create certificate and key databases with single, simple, self-signed certificate in it
mkdir ${CERT_DIR}
certutil -N -d ${CERT_DIR} -f ${CERT_PW_FILE}
- certutil -S -d ${CERT_DIR} -n ${TEST_HOSTNAME} -s "CN=${TEST_HOSTNAME}" -t "CT,," -x -f ${CERT_PW_FILE} -z /usr/bin/certutil 2> /dev/null
+ certutil -S -d ${CERT_DIR} -n ${TEST_HOSTNAME} -s "CN=${TEST_HOSTNAME}" -t "CT,," -x -f ${CERT_PW_FILE} -z /bin/sh 2> /dev/null
}
delete_certs() {
diff --git a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/SessionImpl.java b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/SessionImpl.java
index a1cf0ef4e7..2318b8ba9b 100644
--- a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/SessionImpl.java
+++ b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/SessionImpl.java
@@ -38,15 +38,8 @@ import javax.jms.Queue;
import javax.jms.StreamMessage;
import javax.jms.TextMessage;
import javax.jms.Topic;
-import org.apache.qpid.amqp_1_0.client.Connection;
-import org.apache.qpid.amqp_1_0.client.ConnectionClosedException;
-import org.apache.qpid.amqp_1_0.client.ConnectionErrorException;
-import org.apache.qpid.amqp_1_0.client.ConnectionException;
-import org.apache.qpid.amqp_1_0.client.ChannelsExhaustedException;
-import org.apache.qpid.amqp_1_0.client.Message;
-import org.apache.qpid.amqp_1_0.client.Receiver;
-import org.apache.qpid.amqp_1_0.client.Sender;
-import org.apache.qpid.amqp_1_0.client.Transaction;
+
+import org.apache.qpid.amqp_1_0.client.*;
import org.apache.qpid.amqp_1_0.jms.QueueReceiver;
import org.apache.qpid.amqp_1_0.jms.QueueSender;
import org.apache.qpid.amqp_1_0.jms.QueueSession;
@@ -150,7 +143,17 @@ public class SessionImpl implements Session, QueueSession, TopicSession
});
if(_acknowledgeMode == AcknowledgeMode.SESSION_TRANSACTED)
{
- _txn = _session.createSessionLocalTransaction();
+ try
+ {
+ _txn = _session.createSessionLocalTransaction();
+ }
+ catch (LinkDetachedException e)
+ {
+ JMSException jmsException = new JMSException("Unable to create transactional session");
+ jmsException.setLinkedException(e);
+ jmsException.initCause(e);
+ throw jmsException;
+ }
}
_messageFactory = new MessageFactory(this);
@@ -236,14 +239,23 @@ public class SessionImpl implements Session, QueueSession, TopicSession
checkClosed();
checkTransactional();
- _txn.commit();
- for(MessageConsumerImpl consumer : _consumers)
+ try
{
- consumer.postCommit();
- }
+ _txn.commit();
+ for(MessageConsumerImpl consumer : _consumers)
+ {
+ consumer.postCommit();
+ }
- _txn = _session.createSessionLocalTransaction();
- //TODO
+ _txn = _session.createSessionLocalTransaction();
+ }
+ catch (LinkDetachedException e)
+ {
+ final JMSException jmsException = new JMSException("Unable to commit transaction");
+ jmsException.setLinkedException(e);
+ jmsException.initCause(e);
+ throw jmsException;
+ }
}
public void rollback() throws JMSException
@@ -251,16 +263,24 @@ public class SessionImpl implements Session, QueueSession, TopicSession
checkClosed();
checkTransactional();
- _txn.rollback();
-
- for(MessageConsumerImpl consumer : _consumers)
+ try
{
- consumer.postRollback();
- }
+ _txn.rollback();
- _txn = _session.createSessionLocalTransaction();
+ for(MessageConsumerImpl consumer : _consumers)
+ {
+ consumer.postRollback();
+ }
- //TODO
+ _txn = _session.createSessionLocalTransaction();
+ }
+ catch (LinkDetachedException e)
+ {
+ final JMSException jmsException = new JMSException("Unable to rollback transaction");
+ jmsException.setLinkedException(e);
+ jmsException.initCause(e);
+ throw jmsException;
+ }
}
private void checkTransactional() throws JMSException
diff --git a/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Receive.java b/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Receive.java
index 6f99bbc2ee..a084c0bacc 100644
--- a/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Receive.java
+++ b/qpid/java/amqp-1-0-client/example/src/main/java/org/apache/qpid/amqp_1_0/client/Receive.java
@@ -230,6 +230,10 @@ public class Receive extends Util
{
e.printStackTrace(); //TODO.
}
+ catch (LinkDetachedException e)
+ {
+ e.printStackTrace();
+ }
}
diff --git a/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Session.java b/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Session.java
index ce1ce512a2..cac4775b54 100644
--- a/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Session.java
+++ b/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Session.java
@@ -345,7 +345,7 @@ public class Session
}
- public Transaction createSessionLocalTransaction()
+ public Transaction createSessionLocalTransaction() throws LinkDetachedException
{
TransactionController localController = getSessionLocalTransactionController();
return localController.beginTransaction();
diff --git a/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Transaction.java b/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Transaction.java
index a379463710..e67f9e2fce 100644
--- a/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Transaction.java
+++ b/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Transaction.java
@@ -32,12 +32,12 @@ public class Transaction
_txnId = txnId;
}
- public void commit()
+ public void commit() throws LinkDetachedException
{
_transactionController.commit(this);
}
- public void rollback()
+ public void rollback() throws LinkDetachedException
{
_transactionController.rollback(this);
}
diff --git a/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/TransactionController.java b/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/TransactionController.java
index 9f2c76bc72..7bf143cf4b 100644
--- a/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/TransactionController.java
+++ b/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/TransactionController.java
@@ -21,14 +21,17 @@ package org.apache.qpid.amqp_1_0.client;
import org.apache.qpid.amqp_1_0.messaging.SectionEncoder;
import org.apache.qpid.amqp_1_0.transport.DeliveryStateHandler;
+import org.apache.qpid.amqp_1_0.transport.LinkEndpoint;
import org.apache.qpid.amqp_1_0.transport.SendingLinkEndpoint;
+import org.apache.qpid.amqp_1_0.transport.SendingLinkListener;
import org.apache.qpid.amqp_1_0.type.Binary;
import org.apache.qpid.amqp_1_0.type.DeliveryState;
import org.apache.qpid.amqp_1_0.type.messaging.AmqpValue;
import org.apache.qpid.amqp_1_0.type.transaction.Declare;
import org.apache.qpid.amqp_1_0.type.transaction.Declared;
import org.apache.qpid.amqp_1_0.type.transaction.Discharge;
-import org.apache.qpid.amqp_1_0.type.transport.Transfer;
+import org.apache.qpid.amqp_1_0.type.transport.*;
+import org.apache.qpid.amqp_1_0.type.transport.Error;
public class TransactionController implements DeliveryStateHandler
@@ -38,15 +41,30 @@ public class TransactionController implements DeliveryStateHandler
private Session _session;
private volatile DeliveryState _state;
private boolean _received;
+ private Error _error;
public TransactionController(Session session, SendingLinkEndpoint tcLinkEndpoint)
{
_session = session;
_endpoint = tcLinkEndpoint;
_endpoint.setDeliveryStateHandler(this);
+ _endpoint.setLinkEventListener(new SendingLinkListener()
+ {
+ @Override
+ public void flowStateChanged()
+ {
+ // ignore
+ }
+
+ @Override
+ public void remoteDetached(final LinkEndpoint endpoint, final Detach detach)
+ {
+ TransactionController.this.remoteDetached(detach);
+ }
+ });
}
- public Transaction beginTransaction()
+ public Transaction beginTransaction() throws LinkDetachedException
{
@@ -54,7 +72,7 @@ public class TransactionController implements DeliveryStateHandler
return new Transaction(this, txnId);
}
- private Binary declare()
+ private Binary declare() throws LinkDetachedException
{
SectionEncoder encoder = _session.getSectionEncoder();
@@ -87,9 +105,17 @@ public class TransactionController implements DeliveryStateHandler
//TODO - rationalise sending of flows
// _endpoint.sendFlow();
}
+ waitForResponse();
+
+
+ return ((Declared) _state).getTxnId();
+ }
+
+ private void waitForResponse() throws LinkDetachedException
+ {
synchronized (this)
{
- while(!_received)
+ while(!_received && !_endpoint.isDetached())
{
try
{
@@ -101,23 +127,33 @@ public class TransactionController implements DeliveryStateHandler
}
}
}
+ if(!_received && _endpoint.isDetached())
+ {
+ throw new LinkDetachedException(_error);
+ }
+ }
-
- return ((Declared) _state).getTxnId();
+ private synchronized void remoteDetached(Detach detach)
+ {
+ if(detach != null && detach.getError() != null)
+ {
+ _error = detach.getError();
+ notifyAll();
+ }
}
- public void commit(final Transaction transaction)
+ public void commit(final Transaction transaction) throws LinkDetachedException
{
discharge(transaction.getTxnId(), false);
}
- public void rollback(final Transaction transaction)
+ public void rollback(final Transaction transaction) throws LinkDetachedException
{
discharge(transaction.getTxnId(), true);
}
- private void discharge(final Binary txnId, final boolean fail)
+ private void discharge(final Binary txnId, final boolean fail) throws LinkDetachedException
{
Discharge discharge = new Discharge();
discharge.setTxnId(txnId);
@@ -135,7 +171,7 @@ public class TransactionController implements DeliveryStateHandler
final Object lock = _endpoint.getLock();
synchronized(lock)
{
- while(!_endpoint.hasCreditToSend())
+ while(!_endpoint.hasCreditToSend() && !_endpoint.isDetached())
{
try
{
@@ -146,6 +182,10 @@ public class TransactionController implements DeliveryStateHandler
}
}
+ if(_endpoint.isDetached())
+ {
+ throw new LinkDetachedException(_error);
+ }
_state = null;
_received = false;
_endpoint.transfer(transfer);
@@ -153,20 +193,7 @@ public class TransactionController implements DeliveryStateHandler
//TODO - rationalise sending of flows
// _endpoint.sendFlow();
}
- synchronized (this)
- {
- while(!_received)
- {
- try
- {
- wait();
- }
- catch (InterruptedException e)
- {
-
- }
- }
- }
+ waitForResponse();
}
diff --git a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStore.java b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStore.java
index d69a1f9201..d88f9a9e45 100644
--- a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStore.java
+++ b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStore.java
@@ -41,7 +41,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
import org.apache.log4j.Logger;
import org.apache.qpid.AMQStoreException;
-import org.apache.qpid.server.message.EnqueableMessage;
+import org.apache.qpid.server.message.EnqueueableMessage;
import org.apache.qpid.server.model.VirtualHost;
import org.apache.qpid.server.queue.AMQQueue;
import org.apache.qpid.server.store.*;
@@ -1523,7 +1523,7 @@ public class BDBMessageStore implements MessageStore, DurableConfigurationStore
}
}
- public void enqueueMessage(TransactionLogResource queue, EnqueableMessage message) throws AMQStoreException
+ public void enqueueMessage(TransactionLogResource queue, EnqueueableMessage message) throws AMQStoreException
{
if(message.getStoredMessage() instanceof StoredBDBMessage)
{
@@ -1535,7 +1535,7 @@ public class BDBMessageStore implements MessageStore, DurableConfigurationStore
BDBMessageStore.this.enqueueMessage(_txn, queue, message.getMessageNumber());
}
- public void dequeueMessage(TransactionLogResource queue, EnqueableMessage message) throws AMQStoreException
+ public void dequeueMessage(TransactionLogResource queue, EnqueueableMessage message) throws AMQStoreException
{
BDBMessageStore.this.dequeueMessage(_txn, queue, message.getMessageNumber());
}
diff --git a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/tuple/PreparedTransactionBinding.java b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/tuple/PreparedTransactionBinding.java
index 09f2c50e2d..e543cfb719 100644
--- a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/tuple/PreparedTransactionBinding.java
+++ b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/tuple/PreparedTransactionBinding.java
@@ -26,7 +26,7 @@ import java.util.UUID;
import com.sleepycat.bind.tuple.TupleBinding;
import com.sleepycat.bind.tuple.TupleInput;
import com.sleepycat.bind.tuple.TupleOutput;
-import org.apache.qpid.server.message.EnqueableMessage;
+import org.apache.qpid.server.message.EnqueueableMessage;
import org.apache.qpid.server.store.StoredMessage;
import org.apache.qpid.server.store.Transaction;
import org.apache.qpid.server.store.TransactionLogResource;
@@ -81,7 +81,7 @@ public class PreparedTransactionBinding extends TupleBinding<PreparedTransaction
}
}
- private static class RecordImpl implements Transaction.Record, TransactionLogResource, EnqueableMessage
+ private static class RecordImpl implements Transaction.Record, TransactionLogResource, EnqueueableMessage
{
private long _messageNumber;
@@ -98,7 +98,7 @@ public class PreparedTransactionBinding extends TupleBinding<PreparedTransaction
return this;
}
- public EnqueableMessage getMessage()
+ public EnqueueableMessage getMessage()
{
return this;
}
diff --git a/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreTest.java b/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreTest.java
index fe0fcc9eee..1bf156384c 100644
--- a/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreTest.java
+++ b/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreTest.java
@@ -37,7 +37,7 @@ import org.apache.qpid.framing.MethodRegistry;
import org.apache.qpid.framing.ProtocolVersion;
import org.apache.qpid.framing.abstraction.MessagePublishInfo;
import org.apache.qpid.server.message.AMQMessageHeader;
-import org.apache.qpid.server.message.EnqueableMessage;
+import org.apache.qpid.server.message.EnqueueableMessage;
import org.apache.qpid.server.protocol.v0_10.MessageMetaDataType_0_10;
import org.apache.qpid.server.protocol.v0_8.MessageMetaData;
import org.apache.qpid.server.protocol.v0_10.MessageMetaData_0_10;
@@ -549,7 +549,7 @@ public class BDBMessageStoreTest extends MessageStoreTest
}
@SuppressWarnings("rawtypes")
- private static class MockMessage implements ServerMessage, EnqueableMessage
+ private static class MockMessage implements ServerMessage, EnqueueableMessage
{
private long _messageId;
diff --git a/qpid/java/broker-core/src/main/java/org/apache/log4j/QpidCompositeRollingAppender.java b/qpid/java/broker-core/src/main/java/org/apache/log4j/QpidCompositeRollingAppender.java
index 54ca574871..1a34bd8063 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/log4j/QpidCompositeRollingAppender.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/log4j/QpidCompositeRollingAppender.java
@@ -56,7 +56,7 @@ import java.util.zip.GZIPOutputStream;
* without clearing the directory could have nasty side effects. If Date/Time based rolling is enabled,
* CompositeRollingAppender will attempt to roll existing files in the directory without a date/time tag based on the
* last modified date of the base log files last modification.<br> <br> <p>A maximum number of backups based on
- * date/time boundries would be nice but is not yet implemented.<br>
+ * date/time boundaries would be nice but is not yet implemented.<br>
*
* @author Kevin Steppe
* @author Heinz Richter
@@ -223,7 +223,7 @@ public class QpidCompositeRollingAppender extends FileAppender
* made. Note that this could result in very slow performance as a large number of files are rolled over unless
* {@link #setCountDirection} up is used.
*
- * <p>The maximum applys to -each- time based group of files and -not- the total. Using a daily roll the maximum
+ * <p>The maximum applies to -each- time based group of files and -not- the total. Using a daily roll the maximum
* total files would be (#days run) * (maxSizeRollBackups)
*/
public void setMaxSizeRollBackups(int maxBackups)
@@ -276,7 +276,7 @@ public class QpidCompositeRollingAppender extends FileAppender
qw = new CountingQuietWriter(writer, errorHandler);
}
- // Taken verbatum from DailyRollingFileAppender
+ // Taken verbatim from DailyRollingFileAppender
int computeCheckPeriod()
{
RollingCalendar c = new RollingCalendar();
@@ -473,7 +473,7 @@ public class QpidCompositeRollingAppender extends FileAppender
}
/**
- * Initializes based on exisiting conditions at time of <code> activateOptions</code>. The following is done:<br>
+ * Initializes based on existing conditions at time of <code> activateOptions</code>. The following is done:<br>
* <br> A) determine curSizeRollBackups<br> B) determine curTimeRollBackups (not implemented)<br> C) initiates a
* roll over if needed for crossing a date boundary since the last run.
*/
@@ -700,7 +700,7 @@ public class QpidCompositeRollingAppender extends FileAppender
* <p>If <code>maxSizeRollBackups</code> < 0, then <code>File</code> is renamed if needed and no files are deleted.
*/
- // synchronization not necessary since doAppend is alreasy synched
+ // synchronization not necessary since doAppend is already synched
protected void rollOverSize()
{
File file;
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java
index f180e4532c..66171c6fc2 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java
@@ -130,7 +130,7 @@ public class Broker
}
catch(Exception ce)
{
- LOGGER.debug("An error occured when closing the registry following initialization failure", ce);
+ LOGGER.debug("An error occurred when closing the registry following initialization failure", ce);
}
throw e;
}
@@ -253,7 +253,7 @@ public class Broker
}
else
{
- LOGGER.debug("Skipping shutdown hook removal as there either isnt one, or we are it.");
+ LOGGER.debug("Skipping shutdown hook removal as there either isn't one, or we are it.");
}
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/BrokerOptions.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/BrokerOptions.java
index d5f344f4ed..316d9bd88e 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/BrokerOptions.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/BrokerOptions.java
@@ -186,9 +186,9 @@ public class BrokerOptions
*
* Passing null clears previously set values and returns to the default.
*/
- public void setConfigurationStoreType(String cofigurationStoreType)
+ public void setConfigurationStoreType(String configurationStoreType)
{
- _configurationStoreType = cofigurationStoreType;
+ _configurationStoreType = configurationStoreType;
}
/**
@@ -217,9 +217,9 @@ public class BrokerOptions
*
* Passing null clears any previously set value and returns to the default.
*/
- public void setConfigurationStoreLocation(String cofigurationStore)
+ public void setConfigurationStoreLocation(String configurationStore)
{
- _configurationStoreLocation = cofigurationStore;
+ _configurationStoreLocation = configurationStore;
}
/**
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/ExchangeConfiguration.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/ExchangeConfiguration.java
index c7cf0c0892..6cbaf26480 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/ExchangeConfiguration.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/ExchangeConfiguration.java
@@ -29,9 +29,9 @@ public class ExchangeConfiguration
private Configuration _config;
private String _name;
- public ExchangeConfiguration(String exchName, Configuration subset)
+ public ExchangeConfiguration(String name, Configuration subset)
{
- _name = exchName;
+ _name = name;
_config = subset;
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/plugins/AbstractConfiguration.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/plugins/AbstractConfiguration.java
index b87022868e..c28ea726c0 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/plugins/AbstractConfiguration.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/plugins/AbstractConfiguration.java
@@ -46,7 +46,7 @@ public abstract class AbstractConfiguration
* <li>queue - the queue entries
* <li>the alerting values for defaults
* <li>exchange - the default exchange
- * <li>durable - set the default durablity
+ * <li>durable - set the default durability
* </ul>
*/
abstract public String[] getElementsProcessed();
@@ -224,7 +224,7 @@ public abstract class AbstractConfiguration
}
/**
- * Provide mechanism to validate Configuration contains a Postiive Long Value
+ * Provide mechanism to validate Configuration contains a Positive Long Value
*
* @param property
*
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java
index 639f3cd5c4..ab06f1b94b 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java
@@ -59,7 +59,7 @@ public class ManagementModeStoreHandler implements ConfigurationEntryStore
ConfigurationEntry storeRoot = store.getRootEntry();
_store = store;
_rootId = storeRoot.getId();
- _cliEntries = createPortsFromCommadLineOptions(options);
+ _cliEntries = createPortsFromCommandLineOptions(options);
_quiescedEntries = quiesceEntries(storeRoot, options);
}
@@ -183,7 +183,7 @@ public class ManagementModeStoreHandler implements ConfigurationEntryStore
return _store.getType();
}
- private Map<UUID, ConfigurationEntry> createPortsFromCommadLineOptions(BrokerOptions options)
+ private Map<UUID, ConfigurationEntry> createPortsFromCommandLineOptions(BrokerOptions options)
{
int managementModeRmiPortOverride = options.getManagementModeRmiPortOverride();
if (managementModeRmiPortOverride < 0)
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java
index f63bfa8969..cee1232fb6 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStore.java
@@ -150,9 +150,9 @@ public class MemoryConfigurationEntryStore implements ConfigurationEntryStore
{
Set<UUID> children = new HashSet<UUID>(entry.getChildrenIds());
children.remove(uuid);
- ConfigurationEntry referal = new ConfigurationEntry(entry.getId(), entry.getType(),
+ ConfigurationEntry referral = new ConfigurationEntry(entry.getId(), entry.getType(),
entry.getAttributes(), children, this);
- _entries.put(entry.getId(), referal);
+ _entries.put(entry.getId(), referral);
}
}
removedIds.add(uuid);
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/StoreConfigurationChangeListener.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/StoreConfigurationChangeListener.java
index bb04e28c0a..bef4b6dec9 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/StoreConfigurationChangeListener.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/StoreConfigurationChangeListener.java
@@ -81,7 +81,7 @@ public class StoreConfigurationChangeListener implements ConfigurationChangeList
}
@Override
- public void attributeSet(ConfiguredObject object, String attrinuteName, Object oldAttributeValue, Object newAttributeValue)
+ public void attributeSet(ConfiguredObject object, String attributeName, Object oldAttributeValue, Object newAttributeValue)
{
_store.save(toConfigurationEntry(object));
}
@@ -89,13 +89,13 @@ public class StoreConfigurationChangeListener implements ConfigurationChangeList
private ConfigurationEntry toConfigurationEntry(ConfiguredObject object)
{
Class<? extends ConfiguredObject> objectType = getConfiguredObjectType(object);
- Set<UUID> childrenIds = getChildernIds(object, objectType);
+ Set<UUID> childrenIds = getChildrenIds(object, objectType);
ConfigurationEntry entry = new ConfigurationEntry(object.getId(), objectType.getSimpleName(),
object.getActualAttributes(), childrenIds, _store);
return entry;
}
- private Set<UUID> getChildernIds(ConfiguredObject object, Class<? extends ConfiguredObject> objectType)
+ private Set<UUID> getChildrenIds(ConfiguredObject object, Class<? extends ConfiguredObject> objectType)
{
// Virtual Host children's IDs (except local replication node) should not be stored in broker store
if (object instanceof VirtualHost)
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/updater/TaskExecutor.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/updater/TaskExecutor.java
index 671104d413..22863c089e 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/updater/TaskExecutor.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/updater/TaskExecutor.java
@@ -267,7 +267,7 @@ public class TaskExecutor
}
catch (Exception e)
{
- LOGGER.warn("Unxpected exception on current actor removal", e);
+ LOGGER.warn("Unexpected exception on current actor removal", e);
}
try
{
@@ -275,7 +275,7 @@ public class TaskExecutor
}
catch (Exception e)
{
- LOGGER.warn("Unxpected exception on nullifying of subject for a security manager", e);
+ LOGGER.warn("Unexpected exception on nullifying of subject for a security manager", e);
}
}
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/connection/ConnectionRegistry.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/connection/ConnectionRegistry.java
index b933d3f961..b23e012df6 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/connection/ConnectionRegistry.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/connection/ConnectionRegistry.java
@@ -82,32 +82,32 @@ public class ConnectionRegistry implements IConnectionRegistry, Closeable
}
}
- public void registerConnection(AMQConnectionModel connnection)
+ public void registerConnection(AMQConnectionModel connection)
{
synchronized (this)
{
- _registry.add(connnection);
+ _registry.add(connection);
synchronized (_listeners)
{
for(RegistryChangeListener listener : _listeners)
{
- listener.connectionRegistered(connnection);
+ listener.connectionRegistered(connection);
}
}
}
}
- public void deregisterConnection(AMQConnectionModel connnection)
+ public void deregisterConnection(AMQConnectionModel connection)
{
synchronized (this)
{
- _registry.remove(connnection);
+ _registry.remove(connection);
synchronized (_listeners)
{
for(RegistryChangeListener listener : _listeners)
{
- listener.connectionUnregistered(connnection);
+ listener.connectionUnregistered(connection);
}
}
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/connection/IConnectionRegistry.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/connection/IConnectionRegistry.java
index 07d934027e..77febd9312 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/connection/IConnectionRegistry.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/connection/IConnectionRegistry.java
@@ -39,9 +39,9 @@ public interface IConnectionRegistry
public List<AMQConnectionModel> getConnections();
- public void registerConnection(AMQConnectionModel connnection);
+ public void registerConnection(AMQConnectionModel connection);
- public void deregisterConnection(AMQConnectionModel connnection);
+ public void deregisterConnection(AMQConnectionModel connection);
void addRegistryChangeListener(RegistryChangeListener listener);
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/ExchangeInUseException.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/ExchangeInUseException.java
index c77f114428..42b58da07e 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/ExchangeInUseException.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/ExchangeInUseException.java
@@ -33,7 +33,7 @@ import org.apache.qpid.AMQException;
* @todo Not an AMQP exception as no status code.
*
* @todo This exception is not used. However, it is part of the ExchangeRegistry interface, and looks like code is
- * going to need to be added to throw/deal with this. Alternatively ExchangeResitries may be able to handle the
+ * going to need to be added to throw/deal with this. Alternatively ExchangeRegistries may be able to handle the
* issue internally.
*/
public class ExchangeInUseException extends AMQException
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java
index 22b0fed6b2..ba60d956fd 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java
@@ -168,7 +168,7 @@ public class FanoutExchange extends AbstractExchange
}
catch (AMQInvalidArgumentException e)
{
- _logger.warn("Cannoy bind queue " + queue + " to exchange this " + this + " beacuse selector cannot be parsed.", e);
+ _logger.warn("Cannot bind queue " + queue + " to exchange this " + this + " because selector cannot be parsed.", e);
return;
}
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/topic/TopicMatcherDFAState.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/topic/TopicMatcherDFAState.java
index 85338c0760..e526a070c8 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/topic/TopicMatcherDFAState.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/topic/TopicMatcherDFAState.java
@@ -44,7 +44,7 @@ public class TopicMatcherDFAState
private final Collection<TopicMatcherResult> _results;
private final Map<TopicWord, TopicMatcherDFAState> _nextStateMap;
- private static final String TOPIC_DELIMITTER = "\\.";
+ private static final String TOPIC_DELIMITER = "\\.";
public TopicMatcherDFAState(Map<TopicWord, TopicMatcherDFAState> nextStateMap,
@@ -69,7 +69,7 @@ public class TopicMatcherDFAState
public Collection<TopicMatcherResult> parse(TopicWordDictionary dictionary, String routingKey)
{
- return parse(dictionary, Arrays.asList(routingKey.split(TOPIC_DELIMITTER)).iterator());
+ return parse(dictionary, Arrays.asList(routingKey.split(TOPIC_DELIMITER)).iterator());
}
private Collection<TopicMatcherResult> parse(final TopicWordDictionary dictionary,
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/FilterManagerFactory.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/FilterManagerFactory.java
index dda3973ed8..dc6d5d0123 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/FilterManagerFactory.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/FilterManagerFactory.java
@@ -41,7 +41,7 @@ public class FilterManagerFactory
{
}
- //fixme move to a common class so it can be refered to from client code.
+ //TODO move to a common class so it can be referred to from client code.
public static FilterManager createManager(Map<String,Object> filters) throws AMQException
{
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/Filterable.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/Filterable.java
index 6958ac106b..589e888059 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/Filterable.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/Filterable.java
@@ -23,8 +23,6 @@ package org.apache.qpid.server.filter;
import org.apache.qpid.server.message.AMQMessageHeader;
import org.apache.qpid.server.message.InstanceProperties;
import org.apache.qpid.server.message.ServerMessage;
-import org.apache.qpid.server.queue.QueueEntry;
-import org.apache.qpid.server.queue.QueueEntryInstanceProperties;
public interface Filterable
{
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/NullRootMessageLogger.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/NullRootMessageLogger.java
index db8b24e90e..64e16d9ee8 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/NullRootMessageLogger.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/NullRootMessageLogger.java
@@ -24,7 +24,7 @@ public class NullRootMessageLogger extends AbstractRootMessageLogger
{
@Override
- public boolean isMessageEnabled(LogActor actor, LogSubject subject, String logHeirarchy)
+ public boolean isMessageEnabled(LogActor actor, LogSubject subject, String logHierarchy)
{
return false;
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/RootMessageLogger.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/RootMessageLogger.java
index 1431dd1da9..c31e528c55 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/RootMessageLogger.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/RootMessageLogger.java
@@ -65,10 +65,10 @@ public interface RootMessageLogger
/**
* Log the raw message to the configured logger.
- * Along with a formated stack trace from the Throwable.
+ * Along with a formatted stack trace from the Throwable.
*
* @param message The message to log
- * @param throwable Optional Throwable that should provide stact trace
+ * @param throwable Optional Throwable that should provide stack trace
* @param logHierarchy The log hierarchy for this request
*/
void rawMessage(String message, Throwable throwable, String logHierarchy);
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/SystemOutMessageLogger.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/SystemOutMessageLogger.java
index b384b3fde3..63c1bcc712 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/SystemOutMessageLogger.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/SystemOutMessageLogger.java
@@ -24,7 +24,7 @@ package org.apache.qpid.server.logging;
public class SystemOutMessageLogger extends AbstractRootMessageLogger
{
@Override
- public boolean isMessageEnabled(LogActor actor, LogSubject subject, String logHeirarchy)
+ public boolean isMessageEnabled(LogActor actor, LogSubject subject, String logHierarchy)
{
return true;
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/actors/AMQPChannelActor.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/actors/AMQPChannelActor.java
index d23122ac5d..9228a2674d 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/actors/AMQPChannelActor.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/actors/AMQPChannelActor.java
@@ -25,7 +25,7 @@ import org.apache.qpid.server.logging.RootMessageLogger;
import org.apache.qpid.server.logging.subjects.ChannelLogSubject;
/**
- * An AMQPChannelActor represtents a connection through the AMQP port with an
+ * An AMQPChannelActor represents a connection through the AMQP port with an
* associated Channel.
*
* <p/>
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/actors/AMQPConnectionActor.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/actors/AMQPConnectionActor.java
index 99e11bf9ae..d4213b2876 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/actors/AMQPConnectionActor.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/actors/AMQPConnectionActor.java
@@ -26,7 +26,7 @@ import org.apache.qpid.server.protocol.AMQConnectionModel;
/**
- * An AMQPConnectionActor represtents a connectionthrough the AMQP port.
+ * An AMQPConnectionActor represents a connection through the AMQP port.
* <p/>
* This is responsible for correctly formatting the LogActor String in the log
* <p/>
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/actors/SubscriptionActor.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/actors/SubscriptionActor.java
index a2dbf2f6ee..906cd6db3a 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/actors/SubscriptionActor.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/actors/SubscriptionActor.java
@@ -26,7 +26,7 @@ import org.apache.qpid.server.subscription.Subscription;
/**
* The subscription actor provides formatted logging for actions that are
- * performed by the subsciption. Such as STATE changes.
+ * performed by the subscription. Such as STATE changes.
*/
public class SubscriptionActor extends AbstractActor
{
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/AbstractLogSubject.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/AbstractLogSubject.java
index baccf240ff..46fcc3eda2 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/AbstractLogSubject.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/AbstractLogSubject.java
@@ -25,11 +25,11 @@ import org.apache.qpid.server.logging.LogSubject;
import java.text.MessageFormat;
/**
- * The LogSubjects all have a similar requriement to format their output and
+ * The LogSubjects all have a similar requirement to format their output and
* provide the String value.
*
* This Abstract LogSubject provides this basic functionality, allowing the
- * actual LogSubjects to provide their formating and data.
+ * actual LogSubjects to provide their formatting and data.
*/
public abstract class AbstractLogSubject implements LogSubject
{
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/SubscriptionLogSubject.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/SubscriptionLogSubject.java
index 9a23b733dc..0292fe3506 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/SubscriptionLogSubject.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/SubscriptionLogSubject.java
@@ -36,7 +36,7 @@ public class SubscriptionLogSubject extends AbstractLogSubject
*/
public SubscriptionLogSubject(Subscription subscription)
{
- // Delegate the formating of the Queue to the QueueLogSubject. So final
+ // Delegate the formatting of the Queue to the QueueLogSubject. So final
// log string format is:
// [ sub:<id>(vh(<vhost>)/qu(<queue>)) ]
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/AbstractServerMessageImpl.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/AbstractServerMessageImpl.java
index e5aa6c1158..a2b7dd10e1 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/AbstractServerMessageImpl.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/AbstractServerMessageImpl.java
@@ -63,7 +63,7 @@ public abstract class AbstractServerMessageImpl<X extends AbstractServerMessageI
}
/**
- * Threadsafe. This will decrement the reference count and when it reaches zero will remove the message from the
+ * Thread-safe. This will decrement the reference count and when it reaches zero will remove the message from the
* message store.
*
*/
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/EnqueableMessage.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/EnqueueableMessage.java
index 7be91ad0ca..ef1d12b46a 100755
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/EnqueableMessage.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/EnqueueableMessage.java
@@ -22,7 +22,7 @@ package org.apache.qpid.server.message;
import org.apache.qpid.server.store.StoredMessage;
-public interface EnqueableMessage
+public interface EnqueueableMessage
{
long getMessageNumber();
boolean isPersistent();
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/InstanceProperties.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/InstanceProperties.java
index 6941ed119c..1d7b8627f4 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/InstanceProperties.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/InstanceProperties.java
@@ -50,14 +50,7 @@ public interface InstanceProperties
public static InstanceProperties fromMap(Map<Property, Object> map)
{
final Map<Property,Object> props = new EnumMap<Property,Object>(map);
- return new InstanceProperties()
- {
- @Override
- public Object getProperty(final Property prop)
- {
- return props.get(prop);
- }
- };
+ return new MapInstanceProperties(props);
}
public static Map<Property, Object> asMap(InstanceProperties props)
@@ -75,5 +68,29 @@ public interface InstanceProperties
return map;
}
+
+ public static InstanceProperties copy(InstanceProperties from)
+ {
+ final Map<Property,Object> props = asMap(from);
+
+ return new MapInstanceProperties(props);
+
+ }
+
+ private static class MapInstanceProperties implements InstanceProperties
+ {
+ private final Map<Property, Object> _props;
+
+ private MapInstanceProperties(final Map<Property, Object> props)
+ {
+ _props = props;
+ }
+
+ @Override
+ public Object getProperty(final Property prop)
+ {
+ return _props.get(prop);
+ }
+ }
}
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/ServerMessage.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/ServerMessage.java
index a4c461570f..28491edaba 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/ServerMessage.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/ServerMessage.java
@@ -25,7 +25,7 @@ import org.apache.qpid.server.store.StoredMessage;
import java.nio.ByteBuffer;
-public interface ServerMessage<T extends StorableMessageMetaData> extends EnqueableMessage, MessageContentSource
+public interface ServerMessage<T extends StorableMessageMetaData> extends EnqueueableMessage, MessageContentSource
{
String getRoutingKey();
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AuthenticationMethod.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AuthenticationMethod.java
index 7a5927a365..cfc780541a 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AuthenticationMethod.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AuthenticationMethod.java
@@ -24,7 +24,7 @@ import java.util.Collection;
public interface AuthenticationMethod extends ConfiguredObject
{
- // name is the SASL mech where this is a SASL authentication
+ // name is the SASL mechanism where this is a SASL authentication
// parents
VirtualHostAlias getVirtualHostAlias();
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java
index 45e743dbca..6762e3dd93 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java
@@ -79,12 +79,12 @@ public interface ConfiguredObject
* Change the desired state of the object
*
* Request a change to the current state. The caller must pass in the state it believe the object to be in, if
- * this differs from the current desired state when the object evalues the request, then no state change will occur.
+ * this differs from the current desired state when the object evaluates the request, then no state change will occur.
*
* @param currentState the state the caller believes the object to be in
* @param desiredState the state the caller wishes the object to attain
* @return the new current state
- * @throws IllegalStateTransitionException the requested state tranisition is invalid
+ * @throws IllegalStateTransitionException the requested state transition is invalid
* @throws AccessControlException the current context does not have sufficient permissions to change the state
*/
State setDesiredState(State currentState, State desiredState) throws IllegalStateTransitionException,
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java
index 9ac2cb00a3..7cc88f8743 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java
@@ -203,14 +203,14 @@ public abstract class AbstractAdapter implements ConfiguredObject
}
}
- protected void attributeSet(String attrinuteName, Object oldAttributeValue, Object newAttributeValue)
+ protected void attributeSet(String attributeName, Object oldAttributeValue, Object newAttributeValue)
{
synchronized (_changeListeners)
{
List<ConfigurationChangeListener> copy = new ArrayList<ConfigurationChangeListener>(_changeListeners);
for(ConfigurationChangeListener listener : copy)
{
- listener.attributeSet(this, attrinuteName, oldAttributeValue, newAttributeValue);
+ listener.attributeSet(this, attributeName, oldAttributeValue, newAttributeValue);
}
}
}
@@ -278,7 +278,7 @@ public abstract class AbstractAdapter implements ConfiguredObject
if((currentValue == null && expected == null)
|| (currentValue != null && currentValue.equals(expected)))
{
- //TODO: dont put nulls
+ //TODO: don't put nulls
_attributes.put(name, desired);
return true;
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AccessControlProviderFactory.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AccessControlProviderFactory.java
index 6cdf2f2c1a..5e203532c6 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AccessControlProviderFactory.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AccessControlProviderFactory.java
@@ -36,7 +36,7 @@ import org.apache.qpid.server.security.AccessControl;
public class AccessControlProviderFactory
{
private final Iterable<AccessControlFactory> _factories;
- private Collection<String> _supportedAcessControlProviders;
+ private Collection<String> _supportedAccessControlProviders;
public AccessControlProviderFactory(QpidServiceLoader<AccessControlFactory> accessControlFactoryServiceLoader)
{
@@ -46,7 +46,7 @@ public class AccessControlProviderFactory
{
supportedAccessControlProviders.add(factory.getType());
}
- _supportedAcessControlProviders = Collections.unmodifiableCollection(supportedAccessControlProviders);
+ _supportedAccessControlProviders = Collections.unmodifiableCollection(supportedAccessControlProviders);
}
/**
@@ -85,6 +85,6 @@ public class AccessControlProviderFactory
public Collection<String> getSupportedAuthenticationProviders()
{
- return _supportedAcessControlProviders;
+ return _supportedAccessControlProviders;
}
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java
index 656bdc9acf..033429980f 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java
@@ -549,8 +549,8 @@ public abstract class AuthenticationProviderAdapter<T extends AuthenticationMana
if(createUser(username, password,null))
{
@SuppressWarnings("unchecked")
- C pricipalAdapter = (C) new PrincipalAdapter(p);
- return pricipalAdapter;
+ C principalAdapter = (C) new PrincipalAdapter(p);
+ return principalAdapter;
}
else
{
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/PortAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/PortAdapter.java
index 3e7d03b5ac..882335626d 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/PortAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/PortAdapter.java
@@ -311,7 +311,11 @@ public class PortAdapter extends AbstractAdapter implements Port
{
if (state == State.INITIALISING || state == State.ACTIVE || state == State.STOPPED || state == State.QUIESCED || state == State.ERRORED)
{
- return _state.compareAndSet(state, State.DELETED);
+ if( _state.compareAndSet(state, State.DELETED))
+ {
+ onStop();
+ return true;
+ }
}
else
{
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java
index 9fd1815b67..65ff79c74b 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java
@@ -809,7 +809,7 @@ public final class VirtualHostAdapter extends AbstractAdapter implements Virtual
{
public void postCommit()
{
- entry.discard();
+ entry.delete();
}
public void onRollback()
@@ -878,7 +878,7 @@ public final class VirtualHostAdapter extends AbstractAdapter implements Virtual
public void postCommit()
{
- entry.discard();
+ entry.delete();
}
public void onRollback()
@@ -1142,7 +1142,7 @@ public final class VirtualHostAdapter extends AbstractAdapter implements Virtual
}
catch(Exception e)
{
- LOGGER.warn("Exception occured on store deletion", e);
+ LOGGER.warn("Exception occurred on store deletion", e);
}
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AMQQueue.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AMQQueue.java
index c00881ca94..0cddd1ed3b 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AMQQueue.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AMQQueue.java
@@ -143,7 +143,7 @@ public interface AMQQueue extends Comparable<AMQQueue>, ExchangeReferrer, Transa
List<Long> getMessagesOnTheQueue(int num);
- List<Long> getMessagesOnTheQueue(int num, int offest);
+ List<Long> getMessagesOnTheQueue(int num, int offset);
QueueEntry getMessageOnTheQueue(long messageId);
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java
index 029c7e4f86..38c205bc00 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java
@@ -117,7 +117,7 @@ public class AMQQueueFactory implements QueueFactory
abstract void setPropertyValue(AMQQueue queue, int value);
}
- private static final QueueProperty[] DECLAREABLE_PROPERTIES = {
+ private static final QueueProperty[] DECLARABLE_PROPERTIES = {
new QueueLongProperty(Queue.ALERT_THRESHOLD_MESSAGE_AGE)
{
public void setPropertyValue(AMQQueue queue, long value)
@@ -304,7 +304,7 @@ public class AMQQueueFactory implements QueueFactory
if(arguments != null)
{
- for(QueueProperty p : DECLAREABLE_PROPERTIES)
+ for(QueueProperty p : DECLARABLE_PROPERTIES)
{
if(arguments.containsKey(p.getArgumentName()))
{
@@ -348,7 +348,7 @@ public class AMQQueueFactory implements QueueFactory
if(dlQueue == null)
{
- //set args to disable DLQ'ing/MDC from the DLQ itself, preventing loops etc
+ //set args to disable DLQ-ing/MDC from the DLQ itself, preventing loops etc
final Map<String, Object> args = new HashMap<String, Object>();
args.put(Queue.CREATE_DLQ_ON_CREATION, false);
args.put(Queue.MAXIMUM_DELIVERY_ATTEMPTS, 0);
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/ConflationQueueList.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/ConflationQueueList.java
index 000bfbfd6e..e4725e0e2a 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/ConflationQueueList.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/ConflationQueueList.java
@@ -165,7 +165,7 @@ public class ConflationQueueList extends SimpleQueueEntryList
@Override
public void postCommit()
{
- entry.discard();
+ entry.delete();
}
@Override
@@ -196,21 +196,14 @@ public class ConflationQueueList extends SimpleQueueEntryList
}
@Override
- public boolean delete()
+ protected void onDelete()
{
- if(super.delete())
+ if(_latestValueReference != null && _latestValueReference.compareAndSet(this, _deleteInProgress))
{
- if(_latestValueReference != null && _latestValueReference.compareAndSet(this, _deleteInProgress))
- {
- Object key = getMessage().getMessageHeader().getHeader(_conflationKey);
- _latestValuesMap.remove(key,_latestValueReference);
- }
- return true;
- }
- else
- {
- return false;
+ Object key = getMessage().getMessageHeader().getHeader(_conflationKey);
+ _latestValuesMap.remove(key,_latestValueReference);
}
+
}
public void setLatestValueReference(final AtomicReference<QueueEntry> latestValueReference)
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueEntry.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueEntry.java
index d5c987026c..80ccbe1649 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueEntry.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueEntry.java
@@ -22,6 +22,7 @@ package org.apache.qpid.server.queue;
import org.apache.qpid.AMQException;
import org.apache.qpid.server.filter.Filterable;
+import org.apache.qpid.server.message.InstanceProperties;
import org.apache.qpid.server.message.ServerMessage;
import org.apache.qpid.server.subscription.Subscription;
@@ -191,9 +192,6 @@ public interface QueueEntry extends Comparable<QueueEntry>
boolean acquire();
boolean acquire(Subscription sub);
- boolean delete();
- boolean isDeleted();
-
boolean acquiredBySubscription();
boolean isAcquiredBy(Subscription subscription);
@@ -209,11 +207,14 @@ public interface QueueEntry extends Comparable<QueueEntry>
boolean isRejectedBy(long subscriptionId);
- void dequeue();
-
- void dispose();
+ void delete();
- void discard();
+ /**
+ * Returns true if entry is either DEQUED or DELETED state.
+ *
+ * @return true if entry is either DEQUED or DELETED state
+ */
+ boolean isDeleted();
void routeToAlternate();
@@ -226,19 +227,6 @@ public interface QueueEntry extends Comparable<QueueEntry>
void addStateChangeListener(StateChangeListener listener);
boolean removeStateChangeListener(StateChangeListener listener);
- /**
- * Returns true if entry is in DEQUEUED state, otherwise returns false.
- *
- * @return true if entry is in DEQUEUED state, otherwise returns false
- */
- boolean isDequeued();
-
- /**
- * Returns true if entry is either DEQUED or DELETED state.
- *
- * @return true if entry is either DEQUED or DELETED state
- */
- boolean isDispensed();
/**
* Number of times this queue entry has been delivered.
@@ -253,4 +241,5 @@ public interface QueueEntry extends Comparable<QueueEntry>
Filterable asFilterable();
+ InstanceProperties getInstanceProperties();
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueEntryImpl.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueEntryImpl.java
index 1b9b0f6daa..ed61f1acf6 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueEntryImpl.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueEntryImpl.java
@@ -25,13 +25,14 @@ import org.apache.log4j.Logger;
import org.apache.qpid.AMQException;
import org.apache.qpid.server.exchange.Exchange;
import org.apache.qpid.server.filter.Filterable;
-import org.apache.qpid.server.message.AMQMessageHeader;
+import org.apache.qpid.server.message.InstanceProperties;
import org.apache.qpid.server.message.MessageReference;
import org.apache.qpid.server.message.ServerMessage;
import org.apache.qpid.server.subscription.Subscription;
import org.apache.qpid.server.txn.LocalTransaction;
import org.apache.qpid.server.txn.ServerTransaction;
+import java.util.EnumMap;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -77,16 +78,13 @@ public abstract class QueueEntryImpl implements QueueEntry
private volatile long _entryId;
- private static final int DELIVERED_TO_CONSUMER = 1;
- private static final int REDELIVERED = 2;
-
- private volatile int _deliveryState;
+ private final EntryInstanceProperties _instanceProperties = new EntryInstanceProperties();
/** Number of times this message has been delivered */
private volatile int _deliveryCount = 0;
private static final AtomicIntegerFieldUpdater<QueueEntryImpl> _deliveryCountUpdater = AtomicIntegerFieldUpdater
.newUpdater(QueueEntryImpl.class, "_deliveryCount");
-
+ private boolean _deliveredToConsumer;
public QueueEntryImpl(QueueEntryList<?> queueEntryList)
@@ -103,12 +101,28 @@ public abstract class QueueEntryImpl implements QueueEntry
_message = message == null ? null : message.newReference();
_entryIdUpdater.set(this, entryId);
+ populateInstanceProperties();
}
public QueueEntryImpl(QueueEntryList<?> queueEntryList, ServerMessage message)
{
_queueEntryList = queueEntryList;
_message = message == null ? null : message.newReference();
+ populateInstanceProperties();
+ }
+
+ private void populateInstanceProperties()
+ {
+ if(_message != null)
+ {
+ _instanceProperties.setProperty(InstanceProperties.Property.PERSISTENT, _message.getMessage().isPersistent());
+ _instanceProperties.setProperty(InstanceProperties.Property.EXPIRATION, _message.getMessage().getExpiration());
+ }
+ }
+
+ public InstanceProperties getInstanceProperties()
+ {
+ return _instanceProperties;
}
protected void setEntryId(long entryId)
@@ -138,7 +152,7 @@ public abstract class QueueEntryImpl implements QueueEntry
public boolean getDeliveredToConsumer()
{
- return (_deliveryState & DELIVERED_TO_CONSUMER) != 0;
+ return _deliveredToConsumer;
}
public boolean expired() throws AMQException
@@ -190,7 +204,7 @@ public abstract class QueueEntryImpl implements QueueEntry
final boolean acquired = acquire(sub.getOwningState());
if(acquired)
{
- _deliveryState |= DELIVERED_TO_CONSUMER;
+ _deliveredToConsumer = true;
}
return acquired;
}
@@ -244,12 +258,12 @@ public abstract class QueueEntryImpl implements QueueEntry
public void setRedelivered()
{
- _deliveryState |= REDELIVERED;
+ _instanceProperties.setProperty(InstanceProperties.Property.REDELIVERED, Boolean.TRUE);
}
public boolean isRedelivered()
{
- return (_deliveryState & REDELIVERED) != 0;
+ return Boolean.TRUE.equals(_instanceProperties.getProperty(InstanceProperties.Property.REDELIVERED));
}
public Subscription getDeliveredSubscription()
@@ -291,13 +305,13 @@ public abstract class QueueEntryImpl implements QueueEntry
{
return _rejectedBy.contains(subscriptionId);
}
- else // This messasge hasn't been rejected yet.
+ else // This message hasn't been rejected yet.
{
return false;
}
}
- public void dequeue()
+ private void dequeue()
{
EntryState state = _state;
@@ -329,21 +343,27 @@ public abstract class QueueEntryImpl implements QueueEntry
}
}
- public void dispose()
+ private boolean dispose()
{
- if(delete())
+ EntryState state = _state;
+
+ if(state != DELETED_STATE && _stateUpdater.compareAndSet(this,state,DELETED_STATE))
{
+ _queueEntryList.entryDeleted(this);
+ onDelete();
_message.release();
+
+ return true;
+ }
+ else
+ {
+ return false;
}
}
- public void discard()
+ public void delete()
{
- //if the queue is null then the message is waiting to be acked, but has been removed.
- if (getQueue() != null)
- {
- dequeue();
- }
+ dequeue();
dispose();
}
@@ -355,12 +375,11 @@ public abstract class QueueEntryImpl implements QueueEntry
if (alternateExchange != null)
{
- QueueEntryInstanceProperties props = new QueueEntryInstanceProperties(this);
- List<? extends BaseQueue> queues = alternateExchange.route(getMessage(), props);
+ List<? extends BaseQueue> queues = alternateExchange.route(getMessage(), getInstanceProperties());
final ServerMessage message = getMessage();
if ((queues == null || queues.size() == 0) && alternateExchange.getAlternateExchange() != null)
{
- queues = alternateExchange.getAlternateExchange().route(getMessage(), props);
+ queues = alternateExchange.getAlternateExchange().route(getMessage(), getInstanceProperties());
}
@@ -397,7 +416,7 @@ public abstract class QueueEntryImpl implements QueueEntry
{
public void postCommit()
{
- discard();
+ delete();
}
public void onRollback()
@@ -446,24 +465,8 @@ public abstract class QueueEntryImpl implements QueueEntry
return getEntryId() > other.getEntryId() ? 1 : getEntryId() < other.getEntryId() ? -1 : 0;
}
- public boolean isDeleted()
+ protected void onDelete()
{
- return _state == DELETED_STATE;
- }
-
- public boolean delete()
- {
- EntryState state = _state;
-
- if(state != DELETED_STATE && _stateUpdater.compareAndSet(this,state,DELETED_STATE))
- {
- _queueEntryList.entryDeleted(this);
- return true;
- }
- else
- {
- return false;
- }
}
public QueueEntryList getQueueEntryList()
@@ -471,12 +474,7 @@ public abstract class QueueEntryImpl implements QueueEntry
return _queueEntryList;
}
- public boolean isDequeued()
- {
- return _state == DEQUEUED_STATE;
- }
-
- public boolean isDispensed()
+ public boolean isDeleted()
{
return _state.isDispensed();
}
@@ -499,7 +497,7 @@ public abstract class QueueEntryImpl implements QueueEntry
@Override
public Filterable asFilterable()
{
- return Filterable.Factory.newInstance(getMessage(), new QueueEntryInstanceProperties(this));
+ return Filterable.Factory.newInstance(getMessage(), getInstanceProperties());
}
public String toString()
@@ -509,4 +507,21 @@ public abstract class QueueEntryImpl implements QueueEntry
", _state=" + _state +
'}';
}
+
+ private static class EntryInstanceProperties implements InstanceProperties
+ {
+ private final EnumMap<Property, Object> _properties = new EnumMap<Property, Object>(Property.class);
+
+ @Override
+ public Object getProperty(final Property prop)
+ {
+ return _properties.get(prop);
+ }
+
+ private void setProperty(Property prop, Object value)
+ {
+ _properties.put(prop, value);
+ }
+ }
+
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueEntryInstanceProperties.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueEntryInstanceProperties.java
deleted file mode 100644
index 3affc69ed0..0000000000
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueEntryInstanceProperties.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.server.queue;
-
-import org.apache.qpid.server.message.InstanceProperties;
-
-public class QueueEntryInstanceProperties implements InstanceProperties
-{
- private final QueueEntry _entry;
-
- public QueueEntryInstanceProperties(final QueueEntry entry)
- {
- _entry = entry;
- }
-
- @Override
- public Object getProperty(final Property prop)
- {
- switch(prop)
- {
- case REDELIVERED:
- return _entry.isRedelivered();
- case MANDATORY:
- return false;
- case PERSISTENT:
- return _entry.getMessage().isPersistent();
- case IMMEDIATE:
- return false;
- case EXPIRATION:
- return _entry.getMessage().getExpiration();
- }
- return null;
- }
-}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java
index c0bc662039..d63d1946d3 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java
@@ -120,7 +120,7 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener, Mes
private final AtomicLong _persistentMessageDequeueSize = new AtomicLong();
private final AtomicLong _persistentMessageEnqueueCount = new AtomicLong();
private final AtomicLong _persistentMessageDequeueCount = new AtomicLong();
- private final AtomicInteger _counsumerCountHigh = new AtomicInteger(0);
+ private final AtomicInteger _consumerCountHigh = new AtomicInteger(0);
private final AtomicLong _msgTxnEnqueues = new AtomicLong(0);
private final AtomicLong _byteTxnEnqueues = new AtomicLong(0);
private final AtomicLong _msgTxnDequeues = new AtomicLong(0);
@@ -444,9 +444,9 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener, Mes
//Increment consumerCountHigh if necessary. (un)registerSubscription are both
//synchronized methods so we don't need additional synchronization here
- if(_counsumerCountHigh.get() < getConsumerCount())
+ if(_consumerCountHigh.get() < getConsumerCount())
{
- _counsumerCountHigh.incrementAndGet();
+ _consumerCountHigh.incrementAndGet();
}
if (isDeleted())
@@ -498,7 +498,7 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener, Mes
{
if (_logger.isInfoEnabled())
{
- _logger.info("Auto-deleteing queue:" + this);
+ _logger.info("Auto-deleting queue:" + this);
}
getVirtualHost().removeQueue(this);
@@ -961,7 +961,7 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener, Mes
public int getConsumerCountHigh()
{
- return _counsumerCountHigh.get();
+ return _consumerCountHigh.get();
}
public int getActiveConsumerCount()
@@ -1030,7 +1030,7 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener, Mes
while (queueListIterator.advance())
{
QueueEntry node = queueListIterator.getNode();
- if (node != null && !node.isDispensed())
+ if (node != null && !node.isDeleted())
{
entryList.add(node);
}
@@ -1153,7 +1153,7 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener, Mes
while (queueListIterator.advance() && !filter.filterComplete())
{
QueueEntry node = queueListIterator.getNode();
- if (!node.isDispensed() && filter.accept(node))
+ if (!node.isDeleted() && filter.accept(node))
{
entryList.add(node);
}
@@ -1170,7 +1170,7 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener, Mes
{
QueueEntry node = queueListIterator.getNode();
- if(!node.isDispensed())
+ if(!node.isDeleted())
{
if(visitor.visit(node))
{
@@ -1290,7 +1290,7 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener, Mes
public void postCommit()
{
- node.discard();
+ node.delete();
}
public void onRollback()
@@ -1361,11 +1361,10 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener, Mes
for(final QueueEntry entry : entries)
{
- QueueEntryInstanceProperties props = new QueueEntryInstanceProperties(entry);
- List<? extends BaseQueue> queues = _alternateExchange.route(entry.getMessage(), props);
+ List<? extends BaseQueue> queues = _alternateExchange.route(entry.getMessage(), entry.getInstanceProperties());
if((queues == null || queues.size() == 0) && _alternateExchange.getAlternateExchange() != null)
{
- queues = _alternateExchange.getAlternateExchange().route(entry.getMessage(),props);
+ queues = _alternateExchange.getAlternateExchange().route(entry.getMessage(), entry.getInstanceProperties());
}
final ServerMessage message = entry.getMessage();
@@ -1403,7 +1402,7 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener, Mes
public void postCommit()
{
- entry.discard();
+ entry.delete();
}
public void onRollback()
@@ -1431,7 +1430,7 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener, Mes
public void postCommit()
{
- entry.discard();
+ entry.delete();
}
public void onRollback()
@@ -1908,9 +1907,9 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener, Mes
{
QueueEntry node = queueListIterator.getNode();
// Only process nodes that are not currently deleted and not dequeued
- if (!node.isDispensed())
+ if (!node.isDeleted())
{
- // If the node has exired then acquire it
+ // If the node has expired then acquire it
if (node.expired() && node.acquire())
{
if (_logger.isDebugEnabled())
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SimpleQueueEntryImpl.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SimpleQueueEntryImpl.java
index 4a10d31d37..251a1f55ed 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SimpleQueueEntryImpl.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SimpleQueueEntryImpl.java
@@ -57,7 +57,7 @@ public class SimpleQueueEntryImpl extends QueueEntryImpl
{
SimpleQueueEntryImpl next = getNextNode();
- while(next != null && next.isDispensed())
+ while(next != null && next.isDeleted())
{
final SimpleQueueEntryImpl newNext = next.getNextNode();
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SortedQueueEntryList.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SortedQueueEntryList.java
index 7f742d455d..85559157a9 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SortedQueueEntryList.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/SortedQueueEntryList.java
@@ -283,14 +283,14 @@ public class SortedQueueEntryList implements QueueEntryList<SortedQueueEntryImpl
{
synchronized(_lock)
{
- if(node.isDispensed() && _head != node)
+ if(node.isDeleted() && _head != node)
{
SortedQueueEntryImpl current = _head;
SortedQueueEntryImpl next;
while(current != null)
{
next = current.getNextValidEntry();
- if(current.compareTo(node)>0 && !current.isDispensed())
+ if(current.compareTo(node)>0 && !current.isDeleted())
{
break;
}
@@ -642,7 +642,7 @@ public class SortedQueueEntryList implements QueueEntryList<SortedQueueEntryImpl
if(!atTail())
{
SortedQueueEntryImpl nextNode = next(_lastNode);
- while(nextNode.isDispensed() && next(nextNode) != null)
+ while(nextNode.isDeleted() && next(nextNode) != null)
{
nextNode = next(nextNode);
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java
index 8e7916e4b2..cc1b22d8e1 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java
@@ -206,7 +206,7 @@ public class ApplicationRegistry implements IApplicationRegistry
}
catch(Exception e)
{
- ApplicationRegistry._logger.warn("Unexpected exception occured while reporting the statistics", e);
+ ApplicationRegistry._logger.warn("Unexpected exception occurred while reporting the statistics", e);
}
finally
{
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/database/Base64MD5PasswordFilePrincipalDatabase.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/database/Base64MD5PasswordFilePrincipalDatabase.java
index 4f3892c2c6..a11f11e3fb 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/database/Base64MD5PasswordFilePrincipalDatabase.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/database/Base64MD5PasswordFilePrincipalDatabase.java
@@ -78,7 +78,7 @@ public class Base64MD5PasswordFilePrincipalDatabase extends AbstractPasswordFile
if (pwd == null)
{
- throw new AccountNotFoundException("Unable to lookup the specfied users password");
+ throw new AccountNotFoundException("Unable to lookup the specified users password");
}
byte[] byteArray = new byte[password.length];
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabase.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabase.java
index 34d2710472..d983fe6418 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabase.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabase.java
@@ -86,7 +86,7 @@ public class PlainPasswordFilePrincipalDatabase extends AbstractPasswordFilePrin
if (pwd == null)
{
- throw new AccountNotFoundException("Unable to lookup the specfied users password");
+ throw new AccountNotFoundException("Unable to lookup the specified users password");
}
return compareCharArray(pwd, password);
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManager.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManager.java
index 3ac185d78b..726284fcce 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManager.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManager.java
@@ -225,7 +225,7 @@ public class SimpleLDAPAuthenticationManager implements AuthenticationManager
private InitialDirContext createInitialDirContext(Hashtable<String, Object> env) throws NamingException
{
- ClassLoader existingContextClassloader = null;
+ ClassLoader existingContextClassLoader = null;
boolean isLdaps = String.valueOf(env.get(Context.PROVIDER_URL)).trim().toLowerCase().startsWith("ldaps:");
@@ -234,7 +234,7 @@ public class SimpleLDAPAuthenticationManager implements AuthenticationManager
{
if (isLdaps && _sslSocketFactoryOverrideClass != null)
{
- existingContextClassloader = Thread.currentThread().getContextClassLoader();
+ existingContextClassLoader = Thread.currentThread().getContextClassLoader();
env.put(JAVA_NAMING_LDAP_FACTORY_SOCKET, _sslSocketFactoryOverrideClass.getName());
Thread.currentThread().setContextClassLoader(_sslSocketFactoryOverrideClass.getClassLoader());
revertContentClassLoader = true;
@@ -245,7 +245,7 @@ public class SimpleLDAPAuthenticationManager implements AuthenticationManager
{
if (revertContentClassLoader)
{
- Thread.currentThread().setContextClassLoader(existingContextClassloader);
+ Thread.currentThread().setContextClassLoader(existingContextClassLoader);
}
}
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/sasl/crammd5/CRAMMD5HexInitialiser.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/sasl/crammd5/CRAMMD5HexInitialiser.java
index c4c4b4e0cf..7d41ed44cc 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/sasl/crammd5/CRAMMD5HexInitialiser.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/sasl/crammd5/CRAMMD5HexInitialiser.java
@@ -48,11 +48,11 @@ public class CRAMMD5HexInitialiser extends UsernamePasswordInitialiser
private static class HexifyPrincipalDatabase implements PrincipalDatabase
{
- private PrincipalDatabase _realPricipalDatabase;
+ private PrincipalDatabase _realPrincipalDatabase;
HexifyPrincipalDatabase(PrincipalDatabase db)
{
- _realPricipalDatabase = db;
+ _realPrincipalDatabase = db;
}
private char[] toHex(char[] password)
@@ -80,7 +80,7 @@ public class CRAMMD5HexInitialiser extends UsernamePasswordInitialiser
public void setPassword(Principal principal, PasswordCallback callback) throws IOException, AccountNotFoundException
{
//Let the read DB set the password
- _realPricipalDatabase.setPassword(principal, callback);
+ _realPrincipalDatabase.setPassword(principal, callback);
//Retrieve the setpassword
char[] plainPassword = callback.getPassword();
@@ -93,37 +93,37 @@ public class CRAMMD5HexInitialiser extends UsernamePasswordInitialiser
// Simply delegate to the real PrincipalDB
public boolean verifyPassword(String principal, char[] password) throws AccountNotFoundException
{
- return _realPricipalDatabase.verifyPassword(principal, password);
+ return _realPrincipalDatabase.verifyPassword(principal, password);
}
public boolean updatePassword(Principal principal, char[] password) throws AccountNotFoundException
{
- return _realPricipalDatabase.updatePassword(principal, password);
+ return _realPrincipalDatabase.updatePassword(principal, password);
}
public boolean createPrincipal(Principal principal, char[] password)
{
- return _realPricipalDatabase.createPrincipal(principal, password);
+ return _realPrincipalDatabase.createPrincipal(principal, password);
}
public boolean deletePrincipal(Principal principal) throws AccountNotFoundException
{
- return _realPricipalDatabase.deletePrincipal(principal);
+ return _realPrincipalDatabase.deletePrincipal(principal);
}
public Principal getUser(String username)
{
- return _realPricipalDatabase.getUser(username);
+ return _realPrincipalDatabase.getUser(username);
}
public List<Principal> getUsers()
{
- return _realPricipalDatabase.getUsers();
+ return _realPrincipalDatabase.getUsers();
}
public void reload() throws IOException
{
- _realPricipalDatabase.reload();
+ _realPrincipalDatabase.reload();
}
@Override
@@ -135,14 +135,14 @@ public class CRAMMD5HexInitialiser extends UsernamePasswordInitialiser
@Override
public String getMechanisms()
{
- return _realPricipalDatabase.getMechanisms();
+ return _realPrincipalDatabase.getMechanisms();
}
@Override
public SaslServer createSaslServer(String mechanism, String localFQDN,
Principal externalPrincipal) throws SaslException
{
- return _realPricipalDatabase.createSaslServer(mechanism, localFQDN, externalPrincipal);
+ return _realPrincipalDatabase.createSaslServer(mechanism, localFQDN, externalPrincipal);
}
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/stats/StatisticsGatherer.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/stats/StatisticsGatherer.java
index 37d87bb628..306191d528 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/stats/StatisticsGatherer.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/stats/StatisticsGatherer.java
@@ -28,7 +28,7 @@ package org.apache.qpid.server.stats;
* parts of the broker to set up and configure statistics generation.
* <p>
* When creating these objects, there should be a parent/child relationship
- * between them, such that the lowest level gatherer can record staticics if
+ * between them, such that the lowest level gatherer can record statistics if
* enabled, and pass on the notification to the parent object to allow higher
* level aggregation. When resetting statistics, this works in the opposite
* direction, with higher level gatherers also resetting all of their children.
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCMessageStore.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCMessageStore.java
index 96f6983402..38d27c9c09 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCMessageStore.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCMessageStore.java
@@ -45,7 +45,7 @@ import java.util.concurrent.atomic.AtomicLong;
import org.apache.log4j.Logger;
import org.apache.qpid.AMQException;
import org.apache.qpid.AMQStoreException;
-import org.apache.qpid.server.message.EnqueableMessage;
+import org.apache.qpid.server.message.EnqueueableMessage;
import org.apache.qpid.server.model.VirtualHost;
import org.apache.qpid.server.plugin.MessageMetaDataType;
import org.apache.qpid.server.queue.AMQQueue;
@@ -1371,7 +1371,7 @@ abstract public class AbstractJDBCMessageStore implements MessageStore, DurableC
}
}
- private static class RecordImpl implements Transaction.Record, TransactionLogResource, EnqueableMessage
+ private static class RecordImpl implements Transaction.Record, TransactionLogResource, EnqueueableMessage
{
private long _messageNumber;
@@ -1390,7 +1390,7 @@ abstract public class AbstractJDBCMessageStore implements MessageStore, DurableC
}
@Override
- public EnqueableMessage getMessage()
+ public EnqueueableMessage getMessage()
{
return this;
}
@@ -1668,7 +1668,7 @@ abstract public class AbstractJDBCMessageStore implements MessageStore, DurableC
}
@Override
- public void enqueueMessage(TransactionLogResource queue, EnqueableMessage message) throws AMQStoreException
+ public void enqueueMessage(TransactionLogResource queue, EnqueueableMessage message) throws AMQStoreException
{
final StoredMessage storedMessage = message.getStoredMessage();
if(storedMessage instanceof StoredJDBCMessage)
@@ -1687,7 +1687,7 @@ abstract public class AbstractJDBCMessageStore implements MessageStore, DurableC
}
@Override
- public void dequeueMessage(TransactionLogResource queue, EnqueableMessage message) throws AMQStoreException
+ public void dequeueMessage(TransactionLogResource queue, EnqueueableMessage message) throws AMQStoreException
{
AbstractJDBCMessageStore.this.dequeueMessage(_connWrapper, queue, message.getMessageNumber());
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractMemoryMessageStore.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractMemoryMessageStore.java
index de8ca09502..4813edd30b 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractMemoryMessageStore.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractMemoryMessageStore.java
@@ -23,7 +23,7 @@ package org.apache.qpid.server.store;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicLong;
import org.apache.qpid.AMQStoreException;
-import org.apache.qpid.server.message.EnqueableMessage;
+import org.apache.qpid.server.message.EnqueueableMessage;
import org.apache.qpid.server.model.VirtualHost;
/** A simple message store that stores the messages in a thread-safe structure in memory. */
@@ -41,12 +41,12 @@ abstract public class AbstractMemoryMessageStore extends NullMessageStore
}
@Override
- public void enqueueMessage(TransactionLogResource queue, EnqueableMessage message) throws AMQStoreException
+ public void enqueueMessage(TransactionLogResource queue, EnqueueableMessage message) throws AMQStoreException
{
}
@Override
- public void dequeueMessage(TransactionLogResource queue, EnqueableMessage message) throws AMQStoreException
+ public void dequeueMessage(TransactionLogResource queue, EnqueueableMessage message) throws AMQStoreException
{
}
@@ -133,9 +133,11 @@ abstract public class AbstractMemoryMessageStore extends NullMessageStore
@Override
public void close()
{
- _stateManager.attainState(State.CLOSING);
- _closed.getAndSet(true);
- _stateManager.attainState(State.CLOSED);
+ if (_closed.compareAndSet(false, true))
+ {
+ _stateManager.attainState(State.CLOSING);
+ _stateManager.attainState(State.CLOSED);
+ }
}
@Override
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/DurableConfigurationRecoverer.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/DurableConfigurationRecoverer.java
index 80d94a370b..44417bea97 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/DurableConfigurationRecoverer.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/DurableConfigurationRecoverer.java
@@ -86,7 +86,7 @@ public class DurableConfigurationRecoverer implements ConfigurationRecoveryHandl
DurableConfiguredObjectRecoverer recoverer = getRecoverer(type);
if(recoverer == null)
{
- throw new IllegalConfigurationException("Unkown type for configured object: " + type);
+ throw new IllegalConfigurationException("Unknown type for configured object: " + type);
}
recoverer.load(this, id, attributes);
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/StateManager.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/StateManager.java
index b1d9ea73d4..9cf28095d2 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/StateManager.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/StateManager.java
@@ -75,7 +75,7 @@ public class StateManager
}
public static final Transition INITIALISE = new Transition(State.INITIAL, State.INITIALISING, Event.BEFORE_INIT);
- public static final Transition INITALISE_COMPLETE = new Transition(State.INITIALISING, State.INITIALISED, Event.AFTER_INIT);
+ public static final Transition INITIALISE_COMPLETE = new Transition(State.INITIALISING, State.INITIALISED, Event.AFTER_INIT);
public static final Transition ACTIVATE = new Transition(State.INITIALISED, State.ACTIVATING, Event.BEFORE_ACTIVATE);
public static final Transition ACTIVATE_COMPLETE = new Transition(State.ACTIVATING, State.ACTIVE, Event.AFTER_ACTIVATE);
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/Transaction.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/Transaction.java
index ed6b89e373..66bcfff32b 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/Transaction.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/Transaction.java
@@ -21,7 +21,7 @@
package org.apache.qpid.server.store;
import org.apache.qpid.AMQStoreException;
-import org.apache.qpid.server.message.EnqueableMessage;
+import org.apache.qpid.server.message.EnqueueableMessage;
public interface Transaction
{
@@ -34,7 +34,7 @@ public interface Transaction
* @param message
* @throws org.apache.qpid.AMQStoreException If the operation fails for any reason.
*/
- void enqueueMessage(TransactionLogResource queue, EnqueableMessage message) throws AMQStoreException;
+ void enqueueMessage(TransactionLogResource queue, EnqueueableMessage message) throws AMQStoreException;
/**
* Extracts a message from a specified queue, in a given transactional context.
@@ -43,7 +43,7 @@ public interface Transaction
* @param message The message to dequeue.
* @throws AMQStoreException If the operation fails for any reason, or if the specified message does not exist.
*/
- void dequeueMessage(TransactionLogResource queue, EnqueableMessage message) throws AMQStoreException;
+ void dequeueMessage(TransactionLogResource queue, EnqueueableMessage message) throws AMQStoreException;
/**
@@ -71,7 +71,7 @@ public interface Transaction
public static interface Record
{
TransactionLogResource getQueue();
- EnqueableMessage getMessage();
+ EnqueueableMessage getMessage();
}
void removeXid(long format, byte[] globalId, byte[] branchId) throws AMQStoreException;
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/subscription/ClientDeliveryMethod.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/subscription/ClientDeliveryMethod.java
index 632b59d3fa..45a1978af1 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/subscription/ClientDeliveryMethod.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/subscription/ClientDeliveryMethod.java
@@ -21,9 +21,11 @@
package org.apache.qpid.server.subscription;
import org.apache.qpid.AMQException;
-import org.apache.qpid.server.queue.QueueEntry;
+import org.apache.qpid.server.message.InstanceProperties;
+import org.apache.qpid.server.message.ServerMessage;
public interface ClientDeliveryMethod
{
- void deliverToClient(final Subscription sub, final QueueEntry entry, final long deliveryTag) throws AMQException;
+ void deliverToClient(final Subscription sub, final ServerMessage message, final InstanceProperties props,
+ final long deliveryTag) throws AMQException;
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/subscription/SubscriptionList.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/subscription/SubscriptionList.java
index bf5ce31bd9..23d4fb241f 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/subscription/SubscriptionList.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/subscription/SubscriptionList.java
@@ -173,7 +173,7 @@ public class SubscriptionList
insert(new SubscriptionNode(), false);
}
- //advance the next node reference in the 'prevNode' to scavange
+ //advance the next node reference in the 'prevNode' to scavenge
//the newly 'deleted' node for the Subscription.
prevNode.findNext();
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/AsyncAutoCommitTransaction.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/AsyncAutoCommitTransaction.java
index 31e4dc6def..1f5a4907ed 100755
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/AsyncAutoCommitTransaction.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/AsyncAutoCommitTransaction.java
@@ -24,7 +24,7 @@ import org.apache.log4j.Logger;
import org.apache.qpid.AMQException;
import org.apache.qpid.AMQStoreException;
-import org.apache.qpid.server.message.EnqueableMessage;
+import org.apache.qpid.server.message.EnqueueableMessage;
import org.apache.qpid.server.message.ServerMessage;
import org.apache.qpid.server.queue.BaseQueue;
import org.apache.qpid.server.queue.QueueEntry;
@@ -51,7 +51,7 @@ public class AsyncAutoCommitTransaction implements ServerTransaction
private final MessageStore _messageStore;
private final FutureRecorder _futureRecorder;
- //Set true to ensure strict ordering when enqueing messages with mixed delivery mode, i.e. disable async persistence
+ //Set true to ensure strict ordering when enqueuing messages with mixed delivery mode, i.e. disable async persistence
private boolean _strictOrderWithMixedDeliveryMode = Boolean.getBoolean(QPID_STRICT_ORDER_WITH_MIXED_DELIVERY_MODE);
public static interface FutureRecorder
@@ -88,7 +88,7 @@ public class AsyncAutoCommitTransaction implements ServerTransaction
}
- public void dequeue(BaseQueue queue, EnqueableMessage message, Action postTransactionAction)
+ public void dequeue(BaseQueue queue, EnqueueableMessage message, Action postTransactionAction)
{
Transaction txn = null;
try
@@ -210,7 +210,7 @@ public class AsyncAutoCommitTransaction implements ServerTransaction
}
- public void enqueue(BaseQueue queue, EnqueableMessage message, Action postTransactionAction)
+ public void enqueue(BaseQueue queue, EnqueueableMessage message, Action postTransactionAction)
{
Transaction txn = null;
try
@@ -248,7 +248,7 @@ public class AsyncAutoCommitTransaction implements ServerTransaction
}
- public void enqueue(List<? extends BaseQueue> queues, EnqueableMessage message, Action postTransactionAction)
+ public void enqueue(List<? extends BaseQueue> queues, EnqueueableMessage message, Action postTransactionAction)
{
Transaction txn = null;
try
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/AutoCommitTransaction.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/AutoCommitTransaction.java
index b081641f47..b057998456 100755
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/AutoCommitTransaction.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/AutoCommitTransaction.java
@@ -24,7 +24,7 @@ import org.apache.log4j.Logger;
import org.apache.qpid.AMQException;
import org.apache.qpid.AMQStoreException;
-import org.apache.qpid.server.message.EnqueableMessage;
+import org.apache.qpid.server.message.EnqueueableMessage;
import org.apache.qpid.server.message.ServerMessage;
import org.apache.qpid.server.queue.BaseQueue;
import org.apache.qpid.server.queue.QueueEntry;
@@ -73,7 +73,7 @@ public class AutoCommitTransaction implements ServerTransaction
immediateAction.postCommit();
}
- public void dequeue(BaseQueue queue, EnqueableMessage message, Action postTransactionAction)
+ public void dequeue(BaseQueue queue, EnqueueableMessage message, Action postTransactionAction)
{
Transaction txn = null;
try
@@ -152,7 +152,7 @@ public class AutoCommitTransaction implements ServerTransaction
}
- public void enqueue(BaseQueue queue, EnqueableMessage message, Action postTransactionAction)
+ public void enqueue(BaseQueue queue, EnqueueableMessage message, Action postTransactionAction)
{
Transaction txn = null;
try
@@ -185,7 +185,7 @@ public class AutoCommitTransaction implements ServerTransaction
}
- public void enqueue(List<? extends BaseQueue> queues, EnqueableMessage message, Action postTransactionAction)
+ public void enqueue(List<? extends BaseQueue> queues, EnqueueableMessage message, Action postTransactionAction)
{
Transaction txn = null;
try
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/DistributedTransaction.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/DistributedTransaction.java
index ab987f0fb9..35f2887562 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/DistributedTransaction.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/DistributedTransaction.java
@@ -21,7 +21,7 @@
package org.apache.qpid.server.txn;
-import org.apache.qpid.server.message.EnqueableMessage;
+import org.apache.qpid.server.message.EnqueueableMessage;
import org.apache.qpid.server.protocol.AMQSessionModel;
import org.apache.qpid.server.queue.BaseQueue;
import org.apache.qpid.server.queue.QueueEntry;
@@ -66,7 +66,7 @@ public class DistributedTransaction implements ServerTransaction
{
if(_branch != null)
{
- _branch.addPostTransactionAcion(postTransactionAction);
+ _branch.addPostTransactionAction(postTransactionAction);
}
else
{
@@ -74,12 +74,12 @@ public class DistributedTransaction implements ServerTransaction
}
}
- public void dequeue(BaseQueue queue, EnqueableMessage message, Action postTransactionAction)
+ public void dequeue(BaseQueue queue, EnqueueableMessage message, Action postTransactionAction)
{
if(_branch != null)
{
_branch.dequeue(queue, message);
- _branch.addPostTransactionAcion(postTransactionAction);
+ _branch.addPostTransactionAction(postTransactionAction);
}
else
{
@@ -95,7 +95,7 @@ public class DistributedTransaction implements ServerTransaction
{
_branch.dequeue(entry.getQueue(), entry.getMessage());
}
- _branch.addPostTransactionAcion(postTransactionAction);
+ _branch.addPostTransactionAction(postTransactionAction);
}
else
{
@@ -103,12 +103,12 @@ public class DistributedTransaction implements ServerTransaction
}
}
- public void enqueue(BaseQueue queue, EnqueableMessage message, Action postTransactionAction)
+ public void enqueue(BaseQueue queue, EnqueueableMessage message, Action postTransactionAction)
{
if(_branch != null)
{
_branch.enqueue(queue, message);
- _branch.addPostTransactionAcion(postTransactionAction);
+ _branch.addPostTransactionAction(postTransactionAction);
enqueue(Collections.singletonList(queue), message, postTransactionAction);
}
else
@@ -117,7 +117,7 @@ public class DistributedTransaction implements ServerTransaction
}
}
- public void enqueue(List<? extends BaseQueue> queues, EnqueableMessage message,
+ public void enqueue(List<? extends BaseQueue> queues, EnqueueableMessage message,
Action postTransactionAction)
{
if(_branch != null)
@@ -126,7 +126,7 @@ public class DistributedTransaction implements ServerTransaction
{
_branch.enqueue(queue, message);
}
- _branch.addPostTransactionAcion(postTransactionAction);
+ _branch.addPostTransactionAction(postTransactionAction);
}
else
{
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/DtxBranch.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/DtxBranch.java
index fb32b654ce..6b12862690 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/DtxBranch.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/DtxBranch.java
@@ -29,7 +29,7 @@ import java.util.concurrent.ScheduledFuture;
import org.apache.log4j.Logger;
import org.apache.qpid.AMQStoreException;
-import org.apache.qpid.server.message.EnqueableMessage;
+import org.apache.qpid.server.message.EnqueueableMessage;
import org.apache.qpid.server.protocol.AMQSessionModel;
import org.apache.qpid.server.queue.BaseQueue;
import org.apache.qpid.server.store.MessageStore;
@@ -350,19 +350,19 @@ public class DtxBranch
}
- public void addPostTransactionAcion(ServerTransaction.Action postTransactionAction)
+ public void addPostTransactionAction(ServerTransaction.Action postTransactionAction)
{
_postTransactionActions.add(postTransactionAction);
}
- public void dequeue(BaseQueue queue, EnqueableMessage message)
+ public void dequeue(BaseQueue queue, EnqueueableMessage message)
{
_dequeueRecords.add(new Record(queue, message));
}
- public void enqueue(BaseQueue queue, EnqueableMessage message)
+ public void enqueue(BaseQueue queue, EnqueueableMessage message)
{
_enqueueRecords.add(new Record(queue, message));
}
@@ -370,9 +370,9 @@ public class DtxBranch
private static final class Record implements Transaction.Record
{
private final BaseQueue _queue;
- private final EnqueableMessage _message;
+ private final EnqueueableMessage _message;
- public Record(BaseQueue queue, EnqueableMessage message)
+ public Record(BaseQueue queue, EnqueueableMessage message)
{
_queue = queue;
_message = message;
@@ -383,7 +383,7 @@ public class DtxBranch
return _queue;
}
- public EnqueableMessage getMessage()
+ public EnqueueableMessage getMessage()
{
return _message;
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/LocalTransaction.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/LocalTransaction.java
index 23265199c7..81aabc6bd3 100755
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/LocalTransaction.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/LocalTransaction.java
@@ -20,12 +20,12 @@
*/
package org.apache.qpid.server.txn;
+import org.apache.qpid.server.message.EnqueueableMessage;
import org.apache.qpid.server.store.StoreFuture;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.qpid.AMQException;
-import org.apache.qpid.server.message.EnqueableMessage;
import org.apache.qpid.server.message.ServerMessage;
import org.apache.qpid.server.queue.BaseQueue;
import org.apache.qpid.server.queue.QueueEntry;
@@ -91,7 +91,7 @@ public class LocalTransaction implements ServerTransaction
_postTransactionActions.add(postTransactionAction);
}
- public void dequeue(BaseQueue queue, EnqueableMessage message, Action postTransactionAction)
+ public void dequeue(BaseQueue queue, EnqueueableMessage message, Action postTransactionAction)
{
sync();
_postTransactionActions.add(postTransactionAction);
@@ -195,7 +195,7 @@ public class LocalTransaction implements ServerTransaction
}
}
- public void enqueue(BaseQueue queue, EnqueableMessage message, Action postTransactionAction)
+ public void enqueue(BaseQueue queue, EnqueueableMessage message, Action postTransactionAction)
{
sync();
_postTransactionActions.add(postTransactionAction);
@@ -222,7 +222,7 @@ public class LocalTransaction implements ServerTransaction
}
}
- public void enqueue(List<? extends BaseQueue> queues, EnqueableMessage message, Action postTransactionAction)
+ public void enqueue(List<? extends BaseQueue> queues, EnqueueableMessage message, Action postTransactionAction)
{
sync();
_postTransactionActions.add(postTransactionAction);
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/ServerTransaction.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/ServerTransaction.java
index 8acac00479..240ad154ba 100755
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/ServerTransaction.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/txn/ServerTransaction.java
@@ -22,7 +22,8 @@ package org.apache.qpid.server.txn;
import java.util.Collection;
import java.util.List;
-import org.apache.qpid.server.message.EnqueableMessage;
+
+import org.apache.qpid.server.message.EnqueueableMessage;
import org.apache.qpid.server.queue.BaseQueue;
import org.apache.qpid.server.queue.QueueEntry;
@@ -78,7 +79,7 @@ public interface ServerTransaction
*
* A store operation will result only for a persistent message on a durable queue.
*/
- void dequeue(BaseQueue queue, EnqueableMessage message, Action postTransactionAction);
+ void dequeue(BaseQueue queue, EnqueueableMessage message, Action postTransactionAction);
/**
* Dequeue a message(s) from queue(s) registering a post transaction action.
@@ -92,14 +93,14 @@ public interface ServerTransaction
*
* A store operation will result only for a persistent message on a durable queue.
*/
- void enqueue(BaseQueue queue, EnqueableMessage message, Action postTransactionAction);
+ void enqueue(BaseQueue queue, EnqueueableMessage message, Action postTransactionAction);
/**
* Enqueue a message(s) to queue(s) registering a post transaction action.
*
* Store operations will result only for a persistent messages on durable queues.
*/
- void enqueue(List<? extends BaseQueue> queues, EnqueableMessage message, Action postTransactionAction);
+ void enqueue(List<? extends BaseQueue> queues, EnqueueableMessage message, Action postTransactionAction);
/**
* Commit the transaction represented by this object.
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/DefaultUpgraderProvider.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/DefaultUpgraderProvider.java
index 6474e00c24..12f8c7dae8 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/DefaultUpgraderProvider.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/DefaultUpgraderProvider.java
@@ -173,7 +173,7 @@ public class DefaultUpgraderProvider implements UpgraderProvider
/*
* Change the type string from org.apache.qpid.server.model.Foo to Foo (in line with the practice in the broker
- * configuration store). Also remove bindings which reference non-existant queues or exchanges.
+ * configuration store). Also remove bindings which reference nonexistent queues or exchanges.
*/
private class Version1Upgrader extends NonNullUpgrader
{
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostConfigRecoveryHandler.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostConfigRecoveryHandler.java
index 39ca3197b4..b7d3cf872b 100755
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostConfigRecoveryHandler.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostConfigRecoveryHandler.java
@@ -33,7 +33,7 @@ import org.apache.qpid.server.exchange.ExchangeRegistry;
import org.apache.qpid.server.logging.actors.CurrentActor;
import org.apache.qpid.server.logging.messages.TransactionLogMessages;
import org.apache.qpid.server.logging.subjects.MessageStoreLogSubject;
-import org.apache.qpid.server.message.EnqueableMessage;
+import org.apache.qpid.server.message.EnqueueableMessage;
import org.apache.qpid.server.message.MessageReference;
import org.apache.qpid.server.message.ServerMessage;
import org.apache.qpid.server.queue.AMQQueue;
@@ -133,7 +133,7 @@ public class VirtualHostConfigRecoveryHandler implements
branch.enqueue(queue,message);
- branch.addPostTransactionAcion(new ServerTransaction.Action()
+ branch.addPostTransactionAction(new ServerTransaction.Action()
{
public void postCommit()
@@ -194,12 +194,12 @@ public class VirtualHostConfigRecoveryHandler implements
branch.dequeue(queue, message);
- branch.addPostTransactionAcion(new ServerTransaction.Action()
+ branch.addPostTransactionAction(new ServerTransaction.Action()
{
public void postCommit()
{
- entry.discard();
+ entry.delete();
}
public void onRollback()
@@ -343,7 +343,7 @@ public class VirtualHostConfigRecoveryHandler implements
return this;
}
- private static class DummyMessage implements EnqueableMessage
+ private static class DummyMessage implements EnqueueableMessage
{
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/BrokerOptionsTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/BrokerOptionsTest.java
index c22fcf4a14..d60b852e55 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/BrokerOptionsTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/BrokerOptionsTest.java
@@ -94,7 +94,7 @@ public class BrokerOptionsTest extends QpidTestCase
assertEquals(expectedPath, _options.getLogConfigFileLocation());
}
- public void testDefaultLogConfigFileWithoutQpiddHome()
+ public void testDefaultLogConfigFileWithoutQpidHome()
{
setTestSystemProperty(BrokerProperties.PROPERTY_QPID_HOME, null);
@@ -271,7 +271,7 @@ public class BrokerOptionsTest extends QpidTestCase
assertEquals("unexpected number of entries", 6, _options.getConfigProperties().keySet().size());
}
- public void testDefaultomeDirWithoutQpidHome()
+ public void testDefaultHomeDirWithoutQpidHome()
{
setTestSystemProperty("QPID_HOME", null);
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/TransactionTimeoutHelperTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/TransactionTimeoutHelperTest.java
index 96078d766c..7a7954c8f9 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/TransactionTimeoutHelperTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/TransactionTimeoutHelperTest.java
@@ -95,9 +95,9 @@ public class TransactionTimeoutHelperTest extends QpidTestCase
public void testIdleTransactionProducesWarningOnly() throws Exception
{
final long sixtyOneSecondsAgo = _now - SECONDS.toMillis(61);
- final long thrityOneSecondsAgo = _now - SECONDS.toMillis(31);
+ final long thirtyOneSecondsAgo = _now - SECONDS.toMillis(31);
- configureMockTransaction(sixtyOneSecondsAgo, thrityOneSecondsAgo);
+ configureMockTransaction(sixtyOneSecondsAgo, thirtyOneSecondsAgo);
_transactionTimeoutHelper.checkIdleOrOpenTimes(_transaction, 0, 0, SECONDS.toMillis(30), 0);
@@ -108,9 +108,9 @@ public class TransactionTimeoutHelperTest extends QpidTestCase
public void testIdleTransactionProducesTimeoutActionOnly() throws Exception
{
final long sixtyOneSecondsAgo = _now - SECONDS.toMillis(61);
- final long thrityOneSecondsAgo = _now - SECONDS.toMillis(31);
+ final long thirtyOneSecondsAgo = _now - SECONDS.toMillis(31);
- configureMockTransaction(sixtyOneSecondsAgo, thrityOneSecondsAgo);
+ configureMockTransaction(sixtyOneSecondsAgo, thirtyOneSecondsAgo);
_transactionTimeoutHelper.checkIdleOrOpenTimes(_transaction, 0, 0, 0, SECONDS.toMillis(30));
@@ -121,9 +121,9 @@ public class TransactionTimeoutHelperTest extends QpidTestCase
public void testIdleTransactionProducesWarningAndTimeoutAction() throws Exception
{
final long sixtyOneSecondsAgo = _now - SECONDS.toMillis(61);
- final long thrityOneSecondsAgo = _now - SECONDS.toMillis(31);
+ final long thirtyOneSecondsAgo = _now - SECONDS.toMillis(31);
- configureMockTransaction(sixtyOneSecondsAgo, thrityOneSecondsAgo);
+ configureMockTransaction(sixtyOneSecondsAgo, thirtyOneSecondsAgo);
_transactionTimeoutHelper.checkIdleOrOpenTimes(_transaction, 0, 0, SECONDS.toMillis(15), SECONDS.toMillis(30));
@@ -176,9 +176,9 @@ public class TransactionTimeoutHelperTest extends QpidTestCase
when(_transaction.getTransactionUpdateTime()).thenReturn(updateTime);
}
- private LogMessage isLogMessage(String expectedlogHierarchy, String expectedText)
+ private LogMessage isLogMessage(String expectedLogHierarchy, String expectedText)
{
- return argThat(new IsLogMessage(expectedlogHierarchy, expectedText));
+ return argThat(new IsLogMessage(expectedLogHierarchy, expectedText));
}
class IsLogMessage extends ArgumentMatcher<LogMessage>
@@ -188,9 +188,9 @@ public class TransactionTimeoutHelperTest extends QpidTestCase
private String _hierarchyMatchesFailure;
private String _logMessageMatchesFailure;
- public IsLogMessage(String expectedlogHierarchy, String expectedLogMessageMatches)
+ public IsLogMessage(String expectedLogHierarchy, String expectedLogMessageMatches)
{
- _expectedLogHierarchy = expectedlogHierarchy;
+ _expectedLogHierarchy = expectedLogHierarchy;
_expectedLogMessageMatches = expectedLogMessageMatches;
}
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/plugins/AbstractConfigurationTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/plugins/AbstractConfigurationTest.java
index 0e57b60a6f..79abae85cd 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/plugins/AbstractConfigurationTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/plugins/AbstractConfigurationTest.java
@@ -55,7 +55,7 @@ public class AbstractConfigurationTest extends QpidTestCase
@Override
public void validateConfiguration() throws ConfigurationException
{
- // no validation requried
+ // no validation required
}
public String getName()
@@ -79,22 +79,22 @@ public class AbstractConfigurationTest extends QpidTestCase
// Test does not directly use the AppRegistry but the configured broker
// is required for the correct ConfigurationPlugin processing
super.setUp();
- XMLConfiguration xmlconfig = new XMLConfiguration();
- xmlconfig.addProperty("base.element[@property]", "property");
- xmlconfig.addProperty("base.element.name", "name");
+ XMLConfiguration xmlConfig = new XMLConfiguration();
+ xmlConfig.addProperty("base.element[@property]", "property");
+ xmlConfig.addProperty("base.element.name", "name");
// We make these strings as that is how they will be read from the file.
- xmlconfig.addProperty("base.element.positiveLong", String.valueOf(POSITIVE_LONG));
- xmlconfig.addProperty("base.element.negativeLong", String.valueOf(NEGATIVE_LONG));
- xmlconfig.addProperty("base.element.boolean", String.valueOf(true));
- xmlconfig.addProperty("base.element.double", String.valueOf(DOUBLE));
+ xmlConfig.addProperty("base.element.positiveLong", String.valueOf(POSITIVE_LONG));
+ xmlConfig.addProperty("base.element.negativeLong", String.valueOf(NEGATIVE_LONG));
+ xmlConfig.addProperty("base.element.boolean", String.valueOf(true));
+ xmlConfig.addProperty("base.element.double", String.valueOf(DOUBLE));
for (int i = 0; i < LIST_SIZE; i++)
{
- xmlconfig.addProperty("base.element.list", i);
+ xmlConfig.addProperty("base.element.list", i);
}
//Use a composite configuration as this is what our broker code uses.
CompositeConfiguration composite = new CompositeConfiguration();
- composite.addConfiguration(xmlconfig);
+ composite.addConfiguration(xmlConfig);
_plugin = new TestConfigPlugin();
@@ -117,7 +117,7 @@ public class AbstractConfigurationTest extends QpidTestCase
assertFalse("Plugins has configuration", _plugin.hasConfiguration());
}
- public void testValuesRetreived()
+ public void testValuesRetrieved()
{
assertEquals("Name not correct", "name", _plugin.getName());
assertEquals("Property not correct", "property", _plugin.getProperty());
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java
index c45f4f72a8..c9f17f8443 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java
@@ -367,7 +367,7 @@ public class BrokerRecovererTest extends TestCase
public ConfiguredObjectRecoverer<? extends ConfiguredObject> getRecoverer(String type)
{
@SuppressWarnings({ "unchecked", "rawtypes" })
- final ConfiguredObjectRecoverer<? extends ConfiguredObject> recovever = new ConfiguredObjectRecoverer()
+ final ConfiguredObjectRecoverer<? extends ConfiguredObject> recoverer = new ConfiguredObjectRecoverer()
{
@Override
public ConfiguredObject create(RecovererProvider recovererProvider, ConfigurationEntry entry, ConfiguredObject... parents)
@@ -384,7 +384,7 @@ public class BrokerRecovererTest extends TestCase
}
};
- return recovever;
+ return recoverer;
}
};
return recovererProvider;
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProviderTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProviderTest.java
index 9e2f2fcf32..8f3afe3468 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProviderTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProviderTest.java
@@ -61,8 +61,8 @@ public class DefaultRecovererProviderTest extends TestCase
mock(StoreConfigurationChangeListener.class));
for (String configuredObjectType : supportedTypes)
{
- ConfiguredObjectRecoverer<?> recovever = provider.getRecoverer(configuredObjectType);
- assertNotNull("Null recoverer for type: " + configuredObjectType, recovever);
+ ConfiguredObjectRecoverer<?> recoverer = provider.getRecoverer(configuredObjectType);
+ assertNotNull("Null recoverer for type: " + configuredObjectType, recoverer);
}
}
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/KeyStoreRecovererTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/KeyStoreRecovererTest.java
index e0a736df89..b372b44e42 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/KeyStoreRecovererTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/KeyStoreRecovererTest.java
@@ -51,9 +51,9 @@ public class KeyStoreRecovererTest extends TestCase
when(entry.getAttributes()).thenReturn(attributes);
when(entry.getId()).thenReturn(id);
- KeyStoreRecoverer recovever = new KeyStoreRecoverer();
+ KeyStoreRecoverer recoverer = new KeyStoreRecoverer();
- KeyStore keyStore = recovever.create(null, entry, broker);
+ KeyStore keyStore = recoverer.create(null, entry, broker);
assertNotNull("Key store configured object is not created", keyStore);
assertEquals(id, keyStore.getId());
@@ -61,7 +61,7 @@ public class KeyStoreRecovererTest extends TestCase
assertEquals(TestSSLConstants.BROKER_TRUSTSTORE_PASSWORD, keyStore.getPassword());
assertNotNull(keyStore.getPassword());
- //verify that we havent configured the key store with the actual dummy password value
+ //verify that we haven't configured the key store with the actual dummy password value
assertFalse(AbstractKeyStoreAdapter.DUMMY_PASSWORD_MASK.equals(keyStore.getPassword()));
// Verify the remaining attributes, including that the password value returned
@@ -83,7 +83,7 @@ public class KeyStoreRecovererTest extends TestCase
ConfigurationEntry entry = mock(ConfigurationEntry.class);
when(entry.getId()).thenReturn(id);
- KeyStoreRecoverer recovever = new KeyStoreRecoverer();
+ KeyStoreRecoverer recoverer = new KeyStoreRecoverer();
String[] mandatoryProperties = {KeyStore.NAME, KeyStore.PATH, KeyStore.PASSWORD};
for (int i = 0; i < mandatoryProperties.length; i++)
@@ -93,7 +93,7 @@ public class KeyStoreRecovererTest extends TestCase
when(entry.getAttributes()).thenReturn(properties);
try
{
- recovever.create(null, entry, broker);
+ recoverer.create(null, entry, broker);
fail("Cannot create key store without a " + mandatoryProperties[i]);
}
catch(IllegalArgumentException e)
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/TrustStoreRecovererTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/TrustStoreRecovererTest.java
index 4d92f99306..3ffa5e496f 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/TrustStoreRecovererTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/TrustStoreRecovererTest.java
@@ -59,7 +59,7 @@ public class TrustStoreRecovererTest extends QpidTestCase
assertEquals(TestSSLConstants.BROKER_TRUSTSTORE_PASSWORD, trustStore.getPassword());
assertNotNull(trustStore.getPassword());
- //verify that we havent configured the trust store with the actual dummy password value
+ //verify that we haven't configured the trust store with the actual dummy password value
assertFalse(AbstractKeyStoreAdapter.DUMMY_PASSWORD_MASK.equals(trustStore.getPassword()));
// Verify the remaining attributes, including that the password value returned
@@ -82,7 +82,7 @@ public class TrustStoreRecovererTest extends QpidTestCase
when(entry.getAttributes()).thenReturn(attributes);
when(entry.getId()).thenReturn(id);
- TrustStoreRecoverer recovever = new TrustStoreRecoverer();
+ TrustStoreRecoverer recoverer = new TrustStoreRecoverer();
String[] mandatoryProperties = {TrustStore.NAME, TrustStore.PATH, TrustStore.PASSWORD};
for (int i = 0; i < mandatoryProperties.length; i++)
@@ -92,7 +92,7 @@ public class TrustStoreRecovererTest extends QpidTestCase
when(entry.getAttributes()).thenReturn(properties);
try
{
- recovever.create(null, entry, broker);
+ recoverer.create(null, entry, broker);
fail("Cannot create key store without a " + mandatoryProperties[i]);
}
catch(IllegalArgumentException e)
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostRecovererTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostRecovererTest.java
index f00d12b77d..422a266efb 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostRecovererTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/startup/VirtualHostRecovererTest.java
@@ -64,7 +64,7 @@ public class VirtualHostRecovererTest extends TestCase
assertEquals("Unexpected name", getName(), host.getName());
}
- public void testCreateVirtualHostFromStoreConfigAtrributes()
+ public void testCreateVirtualHostFromStoreConfigAttributes()
{
StatisticsGatherer statisticsGatherer = mock(StatisticsGatherer.class);
SecurityManager securityManager = mock(SecurityManager.class);
@@ -121,7 +121,7 @@ public class VirtualHostRecovererTest extends TestCase
try
{
recoverer.create(null, entry, parent);
- fail("Cannot create a virtual host without a manadatory attribute " + name);
+ fail("Cannot create a virtual host without a mandatory attribute " + name);
}
catch(IllegalConfigurationException e)
{
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ConfigurationEntryStoreTestCase.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ConfigurationEntryStoreTestCase.java
index 2ef3cb80dc..8946851bad 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ConfigurationEntryStoreTestCase.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/ConfigurationEntryStoreTestCase.java
@@ -203,9 +203,9 @@ public abstract class ConfigurationEntryStoreTestCase extends QpidTestCase
assertNotNull("Root entry does not exist", newBrokerConfigEntry);
assertEquals("Unexpected id", _brokerId, newBrokerConfigEntry.getId());
assertEquals("Unexpected type ", Broker.class.getSimpleName(), newBrokerConfigEntry.getType());
- Map<String, Object> newBrokerattributes = newBrokerConfigEntry.getAttributes();
- assertNotNull("Attributes cannot be null", newBrokerattributes);
- assertEquals("Unexpected attributes", attributes, newBrokerattributes);
+ Map<String, Object> newBrokerAttributes = newBrokerConfigEntry.getAttributes();
+ assertNotNull("Attributes cannot be null", newBrokerAttributes);
+ assertEquals("Unexpected attributes", attributes, newBrokerAttributes);
}
public void testSaveNewVirtualHost()
@@ -411,8 +411,8 @@ public abstract class ConfigurationEntryStoreTestCase extends QpidTestCase
assertEquals("Unexpected preference provider ID in authentication provider children set", preferencesProviderId, _store
.getEntry(_authenticationProviderId).getChildrenIds().iterator().next());
ConfigurationEntry preferencesProviderEntry = _store.getEntry(preferencesProviderId);
- assertNotNull("Preferences providert is not found", preferencesProviderEntry);
- assertEquals("Unexpected preferences providert id", preferencesProviderId, preferencesProviderEntry.getId());
+ assertNotNull("Preferences provider is not found", preferencesProviderEntry);
+ assertEquals("Unexpected preferences provider id", preferencesProviderId, preferencesProviderEntry.getId());
Map<String, Object> attributes = preferencesProviderEntry.getAttributes();
assertEquals("Unexpected preferences provider name", name, attributes.get(PreferencesProvider.NAME));
assertEquals("Unexpected preferences provider path", path, attributes.get(FileSystemPreferencesProvider.PATH));
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/JsonConfigurationEntryStoreTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/JsonConfigurationEntryStoreTest.java
index 6cd4a23e9b..0ca45f5b42 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/JsonConfigurationEntryStoreTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/JsonConfigurationEntryStoreTest.java
@@ -159,7 +159,7 @@ public class JsonConfigurationEntryStoreTest extends ConfigurationEntryStoreTest
assertEquals("Unexpected root entry", brokerId, root.getId());
Map<String, Object> attributes = root.getAttributes();
assertNotNull("Attributes not found", attributes);
- assertEquals("Unexpected number of attriburtes", 2, attributes.size());
+ assertEquals("Unexpected number of attributes", 2, attributes.size());
assertEquals("Unexpected name attribute", getTestName(), attributes.get(Broker.NAME));
assertEquals("Unexpected version attribute", 1, attributes.get(Broker.STORE_VERSION));
}
@@ -180,7 +180,7 @@ public class JsonConfigurationEntryStoreTest extends ConfigurationEntryStoreTest
assertEquals("Unexpected root entry", brokerId, root.getId());
Map<String, Object> attributes = root.getAttributes();
assertNotNull("Attributes not found", attributes);
- assertEquals("Unexpected number of attriburtes", 2, attributes.size());
+ assertEquals("Unexpected number of attributes", 2, attributes.size());
assertEquals("Unexpected name attribute", getTestName(), attributes.get(Broker.NAME));
assertEquals("Unexpected version attribute", 1, attributes.get(Broker.STORE_VERSION));
}
@@ -263,8 +263,8 @@ public class JsonConfigurationEntryStoreTest extends ConfigurationEntryStoreTest
ConfigurationEntry authenticationProviderEntry = newStore.getEntry(_authenticationProviderId);
assertEquals("Unexpected preference provider ID in authentication provider children set", preferencesProviderId, authenticationProviderEntry.getChildrenIds().iterator().next());
ConfigurationEntry preferencesProviderEntry = newStore.getEntry(preferencesProviderId);
- assertNotNull("Preferences providert is not found", preferencesProviderEntry);
- assertEquals("Unexpected preferences providert id", preferencesProviderId, preferencesProviderEntry.getId());
+ assertNotNull("Preferences provider is not found", preferencesProviderEntry);
+ assertEquals("Unexpected preferences provider id", preferencesProviderId, preferencesProviderEntry.getId());
Map<String, Object> attributes = preferencesProviderEntry.getAttributes();
assertEquals("Unexpected preferences provider name", name, attributes.get(PreferencesProvider.NAME));
assertEquals("Unexpected preferences provider path", path, attributes.get(FileSystemPreferencesProvider.PATH));
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStoreTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStoreTest.java
index 91a5f7712b..48c253d7e1 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStoreTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/store/MemoryConfigurationEntryStoreTest.java
@@ -100,7 +100,7 @@ public class MemoryConfigurationEntryStoreTest extends ConfigurationEntryStoreTe
assertEquals("Unexpected root entry", brokerId, root.getId());
Map<String, Object> attributes = root.getAttributes();
assertNotNull("Attributes not found", attributes);
- assertEquals("Unexpected number of attriburtes", 1, attributes.size());
+ assertEquals("Unexpected number of attributes", 1, attributes.size());
assertEquals("Unexpected name attribute", getTestName(), attributes.get(Broker.NAME));
}
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/updater/TaskExecutorTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/updater/TaskExecutorTest.java
index cd6302d55b..27d7dd1241 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/updater/TaskExecutorTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/configuration/updater/TaskExecutorTest.java
@@ -67,13 +67,13 @@ public class TaskExecutorTest extends TestCase
public void testGetState()
{
- assertEquals("Unxpected initial state", State.INITIALISING, _executor.getState());
+ assertEquals("Unexpected initial state", State.INITIALISING, _executor.getState());
}
public void testStart()
{
_executor.start();
- assertEquals("Unxpected started state", State.ACTIVE, _executor.getState());
+ assertEquals("Unexpected started state", State.ACTIVE, _executor.getState());
}
public void testStopImmediately() throws Exception
@@ -110,7 +110,7 @@ public class TaskExecutorTest extends TestCase
assertTrue("The first task has not been triggered", waitForCallLatch.await(1000, TimeUnit.MILLISECONDS));
_executor.stopImmediately();
- assertEquals("Unxpected stopped state", State.STOPPED, _executor.getState());
+ assertEquals("Unexpected stopped state", State.STOPPED, _executor.getState());
Exception e = submitExceptions.poll(1000l, TimeUnit.MILLISECONDS);
assertNotNull("The task execution was not interrupted or cancelled", e);
@@ -127,7 +127,7 @@ public class TaskExecutorTest extends TestCase
{
_executor.start();
_executor.stop();
- assertEquals("Unxpected stopped state", State.STOPPED, _executor.getState());
+ assertEquals("Unexpected stopped state", State.STOPPED, _executor.getState());
}
public void testSubmitAndWait() throws Exception
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/DefaultExchangeFactoryTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/DefaultExchangeFactoryTest.java
index 16d3e44bb5..f57ef037b3 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/DefaultExchangeFactoryTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/DefaultExchangeFactoryTest.java
@@ -81,7 +81,7 @@ public class DefaultExchangeFactoryTest extends QpidTestCase
}
}
- public void testCreateDefaultExchangeFactoryWithoutDireactExchangeType()
+ public void testCreateDefaultExchangeFactoryWithoutDirectExchangeType()
{
_stubbedExchangeTypes.add(_topicExchangeType);
_stubbedExchangeTypes.add(_fanoutExchangeType);
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java
index 4296ebd68f..7bd525c90f 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java
@@ -214,7 +214,7 @@ public class TopicExchangeTest extends QpidTestCase
}
- public void testMatchafterHash() throws AMQException
+ public void testMatchAfterHash() throws AMQException
{
AMQQueue queue = _vhost.createQueue(UUIDGenerator.generateRandomUUID(), "a#", false, null, false, false,
false, null);
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/filter/JMSSelectorFilterTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/filter/JMSSelectorFilterTest.java
index 91002edfc6..a13b82baad 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/filter/JMSSelectorFilterTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/filter/JMSSelectorFilterTest.java
@@ -31,20 +31,20 @@ public class JMSSelectorFilterTest extends TestCase
assertEquals(filter1 + " should equal itself", filter1, filter1);
assertFalse(filter1 + " should not equal null", filter1.equals(null));
- assertEqualsAndHashcodeMatch(filter1, filter2);
+ assertEqualsAndHashCodeMatch(filter1, filter2);
JMSSelectorFilter differentFilter = new JMSSelectorFilter("2 = 2");
assertNotEqual(filter1, differentFilter);
}
- private void assertEqualsAndHashcodeMatch(JMSSelectorFilter filter1, JMSSelectorFilter filter2)
+ private void assertEqualsAndHashCodeMatch(JMSSelectorFilter filter1, JMSSelectorFilter filter2)
{
String message = filter1 + " and " + filter2 + " should be equal";
assertEquals(message, filter1, filter2);
assertEquals(message, filter2, filter1);
- assertEquals("Hashcodes of " + filter1 + " and " + filter2 + " should be equal",
+ assertEquals("HashCodes of " + filter1 + " and " + filter2 + " should be equal",
filter1.hashCode(), filter2.hashCode());
}
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/Log4jMessageLoggerTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/Log4jMessageLoggerTest.java
index e2a6a56ee2..f6e301ec07 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/Log4jMessageLoggerTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/Log4jMessageLoggerTest.java
@@ -255,7 +255,7 @@ public class Log4jMessageLoggerTest extends TestCase
}
/**
- * @return the list of LoggingEvents that have occured in this Appender
+ * @return the list of LoggingEvents that have occurred in this Appender
*/
public List<LoggingEvent> getLog()
{
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/UnitTestMessageLoggerTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/UnitTestMessageLoggerTest.java
index e2e112be8f..bd2016d7b4 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/UnitTestMessageLoggerTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/UnitTestMessageLoggerTest.java
@@ -96,7 +96,7 @@ public class UnitTestMessageLoggerTest extends TestCase
logger.clearLogMessages();
- assertEquals("Expected to have no messagse after a clear",
+ assertEquals("Expected to have no messages after a clear",
0, logger.getLogMessages().size());
}
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/AMQPChannelActorTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/AMQPChannelActorTest.java
index 41b42fac78..6ef319bcdf 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/AMQPChannelActorTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/AMQPChannelActorTest.java
@@ -55,7 +55,7 @@ public class AMQPChannelActorTest extends BaseConnectionActorTestCase
* Test that when logging on behalf of the channel
* The test sends a message then verifies that it entered the logs.
*
- * The log message should be fully repalaced (no '{n}' values) and should
+ * The log message should be fully replaced (no '{n}' values) and should
* contain the channel id ('/ch:1') identification.
*/
public void testChannel() throws Exception
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/AMQPConnectionActorTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/AMQPConnectionActorTest.java
index d1cf256563..8b7f9ec5ca 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/AMQPConnectionActorTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/AMQPConnectionActorTest.java
@@ -48,7 +48,7 @@ public class AMQPConnectionActorTest extends BaseConnectionActorTestCase
*
* The test sends a message then verifies that it entered the logs.
*
- * The log message should be fully repalaced (no '{n}' values) and should
+ * The log message should be fully replaced (no '{n}' values) and should
* not contain any channel identification.
*/
public void testConnection() throws Exception
@@ -113,7 +113,7 @@ public class AMQPConnectionActorTest extends BaseConnectionActorTestCase
public String getLogHierarchy()
{
- return "test.hieracrchy";
+ return "test.hierarchy";
}
});
return message;
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/CurrentActorTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/CurrentActorTest.java
index 701ccaab47..1fc42fe636 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/CurrentActorTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/CurrentActorTest.java
@@ -45,7 +45,7 @@ import org.apache.qpid.server.util.BrokerTestHelper;
* successfully removed.
*
* By having a higher number of threads than would normally be used in the
- * Poolling filter we aim to catch the race condition where a ThreadLocal remove
+ * Pooling filter we aim to catch the race condition where a ThreadLocal remove
* is called before one or more threads call get(). This way we can ensure that
* the remove does not affect more than the Thread it was called in.
*/
@@ -188,7 +188,7 @@ public class CurrentActorTest extends BaseConnectionActorTestCase
if (threads[count].getException() != null)
{
threads[count].getException().printStackTrace();
- fail("Error occured in thread:" + count + "("+threads[count].getException()+")");
+ fail("Error occurred in thread:" + count + "("+threads[count].getException()+")");
}
}
}
@@ -210,7 +210,7 @@ public class CurrentActorTest extends BaseConnectionActorTestCase
// Create a new actor using retrieving the rootMessageLogger from
// the default ApplicationRegistry.
- //fixme reminder that we need a better approach for broker testing.
+ //TODO reminder that we need a better approach for broker testing.
try
{
LogActor defaultActor = CurrentActor.get();
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/QueueActorTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/QueueActorTest.java
index 55153b7389..b371bf6e2f 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/QueueActorTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/QueueActorTest.java
@@ -39,7 +39,7 @@ public class QueueActorTest extends BaseConnectionActorTestCase
*
* The test logs a message then verifies that it entered the logs correctly
*
- * The log message should be fully repalaced (no '{n}' values) and should
+ * The log message should be fully replaced (no '{n}' values) and should
* contain the correct queue identification.
*/
public void testQueueActor()
@@ -67,7 +67,7 @@ public class QueueActorTest extends BaseConnectionActorTestCase
// Verify that the logged message contains the 'qu(' marker
String expected = "qu(" + getName() + ")";
- assertTrue("Message was not logged with a queue identifer '"+expected+"' actual:" + log,
+ assertTrue("Message was not logged with a queue identifier '"+expected+"' actual:" + log,
log.contains(expected));
}
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/SubscriptionActorTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/SubscriptionActorTest.java
index 92915e7092..a0a2a7b648 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/SubscriptionActorTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/actors/SubscriptionActorTest.java
@@ -54,7 +54,7 @@ public class SubscriptionActorTest extends BaseConnectionActorTestCase
*
* The test sends a message then verifies that it entered the logs.
*
- * The log message should be fully repalaced (no '{n}' values) and should
+ * The log message should be fully replaced (no '{n}' values) and should
* contain subscription identification.
*/
public void testSubscription()
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/AbstractTestLogSubject.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/AbstractTestLogSubject.java
index cd8f13d52e..258ee1ba85 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/AbstractTestLogSubject.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/AbstractTestLogSubject.java
@@ -115,7 +115,7 @@ public abstract class AbstractTestLogSubject extends QpidTestCase
assertNotNull("Unable to find connection 'con:" + connectionID + "' in '"+message+"'",
connectionSlice);
- // Exract the userName
+ // Extract the userName
String[] userNameParts = connectionSlice.split("@");
assertEquals("Unable to split Username from rest of Connection:"
@@ -180,11 +180,11 @@ public abstract class AbstractTestLogSubject extends QpidTestCase
*/
protected void verifyExchange(String message, Exchange exchange)
{
- String exchangeSilce = getSlice("ex", message);
+ String exchangeSlice = getSlice("ex", message);
- assertNotNull("Exchange not found:" + message, exchangeSilce);
+ assertNotNull("Exchange not found:" + message, exchangeSlice);
- String[] exchangeParts = exchangeSilce.split("/");
+ String[] exchangeParts = exchangeSlice.split("/");
assertEquals("Exchange should be in two parts ex(type/name)", 2,
exchangeParts.length);
@@ -265,10 +265,10 @@ public abstract class AbstractTestLogSubject extends QpidTestCase
}
/**
- * Call to the individiual tests to validate the message is formatted as
+ * Call to the individual tests to validate the message is formatted as
* expected
*
- * @param message the message whos format needs validation
+ * @param message the message whose format needs validation
*/
protected abstract void validateLogStatement(String message);
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/BindingLogSubjectTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/BindingLogSubjectTest.java
index d9ecfc91b1..9acaadf9e1 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/BindingLogSubjectTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/BindingLogSubjectTest.java
@@ -64,7 +64,7 @@ public class BindingLogSubjectTest extends AbstractTestLogSubject
/**
* Validate that the logged Subject message is as expected:
* MESSAGE [Blank][vh(/test)/ex(direct/<<default>>)/qu(BindingLogSubjectTest)/rk(RoutingKey)] <Log Message>
- * @param message the message whos format needs validation
+ * @param message the message whose format needs validation
*/
@Override
protected void validateLogStatement(String message)
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/ChannelLogSubjectTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/ChannelLogSubjectTest.java
index a3d96c6d12..6216214efb 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/ChannelLogSubjectTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/ChannelLogSubjectTest.java
@@ -46,11 +46,11 @@ public class ChannelLogSubjectTest extends ConnectionLogSubjectTest
/**
* MESSAGE [Blank][con:0(MockProtocolSessionUser@null/test)/ch:1] <Log Message>
*
- * @param message the message whos format needs validation
+ * @param message the message whose format needs validation
*/
protected void validateLogStatement(String message)
{
- // Use the ConnectionLogSubjectTest to vaildate that the connection
+ // Use the ConnectionLogSubjectTest to validate that the connection
// section is ok
super.validateLogStatement(message);
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/ConnectionLogSubjectTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/ConnectionLogSubjectTest.java
index e9a9317102..13e637542b 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/ConnectionLogSubjectTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/ConnectionLogSubjectTest.java
@@ -54,7 +54,7 @@ public class ConnectionLogSubjectTest extends AbstractTestLogSubject
/**
* MESSAGE [Blank][con:0(MockProtocolSessionUser@null/test)] <Log Message>
*
- * @param message the message whos format needs validation
+ * @param message the message whose format needs validation
*/
protected void validateLogStatement(String message)
{
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/ExchangeLogSubjectTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/ExchangeLogSubjectTest.java
index b327738797..40188f9354 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/ExchangeLogSubjectTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/ExchangeLogSubjectTest.java
@@ -57,7 +57,7 @@ public class ExchangeLogSubjectTest extends AbstractTestLogSubject
/**
* Validate that the logged Subject message is as expected:
* MESSAGE [Blank][vh(/test)/ex(direct/<<default>>)] <Log Message>
- * @param message the message whos format needs validation
+ * @param message the message whose format needs validation
*/
@Override
protected void validateLogStatement(String message)
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/QueueLogSubjectTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/QueueLogSubjectTest.java
index e2765f338b..f89959febb 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/QueueLogSubjectTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/QueueLogSubjectTest.java
@@ -61,7 +61,7 @@ public class QueueLogSubjectTest extends AbstractTestLogSubject
* Validate that the logged Subject message is as expected:
* MESSAGE [Blank][vh(/test)/qu(QueueLogSubjectTest)] <Log Message>
*
- * @param message the message whos format needs validation
+ * @param message the message whose format needs validation
*/
@Override
protected void validateLogStatement(String message)
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/SubscriptionLogSubjectTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/SubscriptionLogSubjectTest.java
index b9efac1ae8..3afba28cd6 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/SubscriptionLogSubjectTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/SubscriptionLogSubjectTest.java
@@ -71,7 +71,7 @@ public class SubscriptionLogSubjectTest extends AbstractTestLogSubject
* Validate that the logged Subject message is as expected:
* MESSAGE [Blank][sub:0(vh(/test)/qu(SubscriptionLogSubjectTest))] <Log Message>
*
- * @param message the message whos format needs validation
+ * @param message the message whose format needs validation
*/
@Override
protected void validateLogStatement(String message)
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/ConfiguredObjectStateTransitionTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/ConfiguredObjectStateTransitionTest.java
index 072911cf62..82ba20a4bd 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/ConfiguredObjectStateTransitionTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/ConfiguredObjectStateTransitionTest.java
@@ -180,7 +180,7 @@ public class ConfiguredObjectStateTransitionTest extends QpidTestCase
private void assertInvalidStateTransition(ConfiguredObject object, State initialState, State... invalidStates)
{
- assertEquals("Unepxceted state", initialState, object.getActualState());
+ assertEquals("Unexpected state", initialState, object.getActualState());
for (State state : invalidStates)
{
try
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java
index 2de65f161d..1e642456f7 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java
@@ -58,9 +58,9 @@ public class VirtualHostTest extends QpidTestCase
CurrentActor.set(new TestLogActor(new SystemOutMessageLogger()));
_broker = BrokerTestHelper.createBrokerMock();
- TaskExecutor taslExecutor = mock(TaskExecutor.class);
- when(taslExecutor.isTaskExecutorThread()).thenReturn(true);
- when(_broker.getTaskExecutor()).thenReturn(taslExecutor);
+ TaskExecutor taskExecutor = mock(TaskExecutor.class);
+ when(taskExecutor.isTaskExecutorThread()).thenReturn(true);
+ when(_broker.getTaskExecutor()).thenReturn(taskExecutor);
_recovererProvider = mock(RecovererProvider.class);
_statisticsGatherer = mock(StatisticsGatherer.class);
@@ -131,7 +131,7 @@ public class VirtualHostTest extends QpidTestCase
assertEquals("Unexpected state", State.DELETED, host.getAttribute(VirtualHost.STATE));
}
- public void testCreateQueueChildHavingMessageGrouppingAttributes()
+ public void testCreateQueueChildHavingMessageGroupingAttributes()
{
VirtualHost host = createHost();
host.setDesiredState(State.INITIALISING, State.ACTIVE);
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderTest.java
index 8b0847e0d2..11c16cd9aa 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderTest.java
@@ -59,9 +59,9 @@ public class FileSystemPreferencesProviderTest extends QpidTestCase
_preferencesFile = TestFileUtils.createTempFile(this, ".prefs.json", TEST_PREFERENCES);
_broker = BrokerTestHelper.createBrokerMock();
- TaskExecutor taslExecutor = mock(TaskExecutor.class);
- when(taslExecutor.isTaskExecutorThread()).thenReturn(true);
- when(_broker.getTaskExecutor()).thenReturn(taslExecutor);
+ TaskExecutor taskExecutor = mock(TaskExecutor.class);
+ when(taskExecutor.isTaskExecutorThread()).thenReturn(true);
+ when(_broker.getTaskExecutor()).thenReturn(taskExecutor);
when(_authenticationProvider.getParent(Broker.class)).thenReturn(_broker);
}
@@ -111,7 +111,7 @@ public class FileSystemPreferencesProviderTest extends QpidTestCase
{
File emptyPrefsFile = new File(TMP_FOLDER, "preferences-" + getTestName() + ".json");
emptyPrefsFile.createNewFile();
- assertTrue("Preferences file does notexists", emptyPrefsFile.exists());
+ assertTrue("Preferences file does not exist", emptyPrefsFile.exists());
try
{
Map<String, Object> attributes = new HashMap<String, Object>();
@@ -130,7 +130,7 @@ public class FileSystemPreferencesProviderTest extends QpidTestCase
_preferencesProvider = createPreferencesProvider();
_preferencesProvider.setDesiredState(State.INITIALISING, State.ACTIVE);
- assertEquals("Unexpexpected state", State.ACTIVE, _preferencesProvider.getActualState());
+ assertEquals("Unexpected state", State.ACTIVE, _preferencesProvider.getActualState());
}
public void testChangeAttributes()
@@ -178,7 +178,7 @@ public class FileSystemPreferencesProviderTest extends QpidTestCase
assertTrue("No preference found for user3", preferences3.isEmpty());
}
- public void testSetPrefernces()
+ public void testSetPreferences()
{
_preferencesProvider = createPreferencesProvider();
_preferencesProvider.setDesiredState(State.INITIALISING, State.ACTIVE);
@@ -213,7 +213,7 @@ public class FileSystemPreferencesProviderTest extends QpidTestCase
assertTrue("Unexpected preferences found for user3", preferences3.isEmpty());
}
- public void testDeletePrefernces()
+ public void testDeletePreferences()
{
_preferencesProvider = createPreferencesProvider();
_preferencesProvider.setDesiredState(State.INITIALISING, State.ACTIVE);
@@ -237,7 +237,7 @@ public class FileSystemPreferencesProviderTest extends QpidTestCase
assertTrue("Unexpected preferences found for user3", preferences3.isEmpty());
}
- public void testDeleteMultipleUsersPrefernces()
+ public void testDeleteMultipleUsersPreferences()
{
_preferencesProvider = createPreferencesProvider();
_preferencesProvider.setDesiredState(State.INITIALISING, State.ACTIVE);
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/PortFactoryTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/PortFactoryTest.java
index 8b67db2de9..c4b0134ab1 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/PortFactoryTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/adapter/PortFactoryTest.java
@@ -354,7 +354,7 @@ public class PortFactoryTest extends QpidTestCase
try
{
_portFactory.createPort(_portId, _broker, attributes);
- fail("RMI port creation should fail as another one olready exist");
+ fail("RMI port creation should fail as another one already exist");
}
catch(IllegalConfigurationException e)
{
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/configuration/ConfigurationEntryTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/configuration/ConfigurationEntryTest.java
index dd48d7b56d..e2f2dff298 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/configuration/ConfigurationEntryTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/configuration/ConfigurationEntryTest.java
@@ -112,18 +112,18 @@ public class ConfigurationEntryTest extends TestCase
VirtualHost.class.getSimpleName(), attributes1, childrenIds, store);
assertTrue(entry1.equals(entry2));
- assertFalse("Entries should be diferrent because of diferrent IDs", entry1.equals(entryWithDifferentId));
+ assertFalse("Entries should be different because of different IDs", entry1.equals(entryWithDifferentId));
ConfigurationEntry entryWithDifferentChildId = new ConfigurationEntry(id,
VirtualHost.class.getSimpleName(), attributes1, Collections.singleton(UUID.randomUUID()), store);
- assertFalse("Entries should be diferrent because of diferrent children", entry1.equals(entryWithDifferentChildId));
+ assertFalse("Entries should be different because of different children", entry1.equals(entryWithDifferentChildId));
ConfigurationEntry entryWithDifferentName = new ConfigurationEntry(id,
VirtualHost.class.getSimpleName(), attributes2, childrenIds, store);
- assertFalse("Entries should be diferrent because of diferrent attributes", entry1.equals(entryWithDifferentName));
+ assertFalse("Entries should be different because of different attributes", entry1.equals(entryWithDifferentName));
ConfigurationEntry entryWithDifferentType = new ConfigurationEntry(id,
Broker.class.getSimpleName(), attributes1, childrenIds, store);
- assertFalse("Entries should be diferrent because of diferrent types", entry1.equals(entryWithDifferentType));
+ assertFalse("Entries should be different because of different types", entry1.equals(entryWithDifferentType));
}
}
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java
index 29a03b2ee7..bcf54c97a4 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/AMQQueueFactoryTest.java
@@ -231,7 +231,7 @@ public class AMQQueueFactoryTest extends QpidTestCase
false,
attributes);
- assertEquals("Queue not a priorty queue", AMQPriorityQueue.class, queue.getClass());
+ assertEquals("Queue not a priority queue", AMQPriorityQueue.class, queue.getClass());
verifyQueueRegistered("testPriorityQueue");
verifyRegisteredQueueCount(1);
}
@@ -251,7 +251,7 @@ public class AMQQueueFactoryTest extends QpidTestCase
//verify that no alternate exchange or DLQ were produced
- assertNull("Queue should not have an alternate exchange as DLQ wasnt enabled", queue.getAlternateExchange());
+ assertNull("Queue should not have an alternate exchange as DLQ wasn't enabled", queue.getAlternateExchange());
assertNull("The DLQ should not exist", _virtualHost.getQueue(dlQueueName));
verifyRegisteredQueueCount(1);
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/ConflationQueueListTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/ConflationQueueListTest.java
index 6538724a71..d67c70c831 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/ConflationQueueListTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/ConflationQueueListTest.java
@@ -66,7 +66,7 @@ public class ConflationQueueListTest extends TestCase
ServerMessage message = createTestServerMessage(null);
QueueEntry addedEntry = _list.add(message);
- addedEntry.discard();
+ addedEntry.delete();
int numberOfEntries = countEntries(_list);
assertEquals(0, numberOfEntries);
@@ -86,7 +86,7 @@ public class ConflationQueueListTest extends TestCase
ServerMessage message = createTestServerMessage(TEST_KEY_VALUE);
QueueEntry addedEntry = _list.add(message);
- addedEntry.discard();
+ addedEntry.delete();
int numberOfEntries = countEntries(_list);
assertEquals(0, numberOfEntries);
@@ -146,7 +146,7 @@ public class ConflationQueueListTest extends TestCase
assertEquals(1, countEntries(_list));
assertEquals(1, _list.getLatestValuesMap().size());
- addedEntry.discard();
+ addedEntry.delete();
assertEquals(0, countEntries(_list));
assertEquals(0, _list.getLatestValuesMap().size());
@@ -166,8 +166,8 @@ public class ConflationQueueListTest extends TestCase
assertEquals(2, countEntries(_list));
assertEquals(2, _list.getLatestValuesMap().size());
- addedEntry1.discard();
- addedEntry2.discard();
+ addedEntry1.delete();
+ addedEntry2.delete();
assertEquals(0, countEntries(_list));
assertEquals(0, _list.getLatestValuesMap().size());
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/MockAMQQueue.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/MockAMQQueue.java
index d7ef240ef4..ea2e29d40d 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/MockAMQQueue.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/MockAMQQueue.java
@@ -346,7 +346,7 @@ public class MockAMQQueue implements AMQQueue
return null;
}
- public List<Long> getMessagesOnTheQueue(int num, int offest)
+ public List<Long> getMessagesOnTheQueue(int num, int offset)
{
return null;
}
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/MockQueueEntry.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/MockQueueEntry.java
index bbaca38c79..2e3231e208 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/MockQueueEntry.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/MockQueueEntry.java
@@ -23,6 +23,7 @@ package org.apache.qpid.server.queue;
import org.apache.qpid.AMQException;
import org.apache.qpid.server.filter.Filterable;
import org.apache.qpid.server.message.AMQMessageHeader;
+import org.apache.qpid.server.message.InstanceProperties;
import org.apache.qpid.server.message.ServerMessage;
import org.apache.qpid.server.subscription.Subscription;
@@ -56,17 +57,7 @@ public class MockQueueEntry implements QueueEntry
}
- public boolean delete()
- {
- return false;
- }
-
- public void dequeue()
- {
-
- }
-
- public void discard()
+ public void delete()
{
}
@@ -76,11 +67,6 @@ public class MockQueueEntry implements QueueEntry
}
- public void dispose()
- {
-
- }
-
public boolean expired() throws AMQException
{
return false;
@@ -121,11 +107,6 @@ public class MockQueueEntry implements QueueEntry
return false;
}
- public boolean isDeleted()
- {
- return false;
- }
-
public boolean isQueueDeleted()
{
@@ -161,26 +142,6 @@ public class MockQueueEntry implements QueueEntry
return false;
}
-
- public void requeue()
- {
-
-
- }
-
- public void requeue(Subscription subscription)
- {
- //To change body of implemented methods use File | Settings | File Templates.
- }
-
-
- public void setDeliveredToSubscription()
- {
-
-
- }
-
-
public void setRedelivered()
{
@@ -213,12 +174,7 @@ public class MockQueueEntry implements QueueEntry
_message = msg;
}
- public boolean isDequeued()
- {
- return false;
- }
-
- public boolean isDispensed()
+ public boolean isDeleted()
{
return false;
}
@@ -252,6 +208,12 @@ public class MockQueueEntry implements QueueEntry
@Override
public Filterable asFilterable()
{
- return Filterable.Factory.newInstance(_message, new QueueEntryInstanceProperties(this));
+ return Filterable.Factory.newInstance(_message, getInstanceProperties());
+ }
+
+ @Override
+ public InstanceProperties getInstanceProperties()
+ {
+ return InstanceProperties.EMPTY;
}
}
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/NotificationCheckTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/NotificationCheckTest.java
index df2de7f0e0..3834fac2d0 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/NotificationCheckTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/NotificationCheckTest.java
@@ -85,7 +85,7 @@ public class NotificationCheckTest extends TestCase
verifyZeroInteractions(_listener);
MESSAGE_AGE_ALERT.notifyIfNecessary(_message, _queue, _listener);
- // Uses contains as first part of message is nondeterministic
+ // Uses contains as first part of message is non-deterministic
verify(_listener).notifyClients(eq(MESSAGE_AGE_ALERT), eq(_queue), contains("s : Maximum age on queue threshold (1s) breached."));
}
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryImplTestBase.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryImplTestBase.java
index d348c3e67b..2b1e7f5e1f 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryImplTestBase.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryImplTestBase.java
@@ -21,6 +21,7 @@ package org.apache.qpid.server.queue;
import junit.framework.TestCase;
import org.apache.qpid.AMQException;
+import org.apache.qpid.server.message.MessageReference;
import org.apache.qpid.server.message.ServerMessage;
import org.apache.qpid.server.queue.QueueEntry.EntryState;
import org.apache.qpid.server.subscription.MockSubscription;
@@ -41,7 +42,7 @@ public abstract class QueueEntryImplTestBase extends TestCase
protected QueueEntryImpl _queueEntry2;
protected QueueEntryImpl _queueEntry3;
- public abstract QueueEntryImpl getQueueEntryImpl(int msgid) throws AMQException;
+ public abstract QueueEntryImpl getQueueEntryImpl(int msgId) throws AMQException;
public abstract void testCompareTo();
@@ -56,18 +57,13 @@ public abstract class QueueEntryImplTestBase extends TestCase
_queueEntry3 = getQueueEntryImpl(3);
}
- public void testAquire()
+ public void testAcquire()
{
assertTrue("Queue entry should be in AVAILABLE state before invoking of acquire method",
_queueEntry.isAvailable());
acquire();
}
- public void testDequeue()
- {
- dequeue();
- }
-
public void testDelete()
{
delete();
@@ -79,27 +75,12 @@ public abstract class QueueEntryImplTestBase extends TestCase
* Entry in state ACQUIRED should be released and its status should be
* changed to AVAILABLE.
*/
- public void testReleaseAquired()
+ public void testReleaseAcquired()
{
acquire();
_queueEntry.release();
assertTrue("Queue entry should be in AVAILABLE state after invoking of release method",
- _queueEntry.isAvailable());
- }
-
- /**
- * Tests release method for entry in dequeued state.
- * <p>
- * Invoking release on dequeued entry should not have any effect on its
- * state.
- */
- public void testReleaseDequeued()
- {
- dequeue();
- _queueEntry.release();
- EntryState state = getState();
- assertEquals("Invoking of release on entry in DEQUEUED state should not have any effect",
- QueueEntry.DEQUEUED_STATE, state);
+ _queueEntry.isAvailable());
}
/**
@@ -126,17 +107,6 @@ public abstract class QueueEntryImplTestBase extends TestCase
_queueEntry.isDeleted());
}
- /**
- * A helper method to put tested entry into dequeue state and assert the sate
- */
- private void dequeue()
- {
- acquire();
- _queueEntry.dequeue();
- EntryState state = getState();
- assertEquals("Queue entry should be in DEQUEUED state after invoking of dequeue method",
- QueueEntry.DEQUEUED_STATE, state);
- }
/**
* A helper method to put tested entry into acquired state and assert the sate
@@ -203,7 +173,7 @@ public abstract class QueueEntryImplTestBase extends TestCase
}
/**
- * Tests if entries in DEQUQUED or DELETED state are not returned by getNext method.
+ * Tests if entries in DEQUEUED or DELETED state are not returned by getNext method.
*/
public void testGetNext()
{
@@ -216,6 +186,9 @@ public abstract class QueueEntryImplTestBase extends TestCase
{
ServerMessage message = mock(ServerMessage.class);
when(message.getMessageNumber()).thenReturn((long)i);
+ final MessageReference reference = mock(MessageReference.class);
+ when(reference.getMessage()).thenReturn(message);
+ when(message.newReference()).thenReturn(reference);
QueueEntryImpl entry = queueEntryList.add(message);
entries[i] = entry;
}
@@ -235,13 +208,13 @@ public abstract class QueueEntryImplTestBase extends TestCase
}
}
- // delete second
+ // discard second
entries[1].acquire();
entries[1].delete();
- // dequeue third
+ // discard third
entries[2].acquire();
- entries[2].dequeue();
+ entries[2].delete();
QueueEntry next = entries[0].getNextValidEntry();
assertEquals("expected forth entry",entries[3], next);
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryListTestBase.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryListTestBase.java
index beb5bda7ff..a1bc9e50c7 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryListTestBase.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/QueueEntryListTestBase.java
@@ -117,7 +117,7 @@ public abstract class QueueEntryListTestBase extends TestCase
entry = entryList.next(entry);
count++;
}
- assertEquals("Get next didnt get all the list entries", getExpectedListLength(), count);
+ assertEquals("Get next didn't get all the list entries", getExpectedListLength(), count);
}
/**
@@ -142,7 +142,7 @@ public abstract class QueueEntryListTestBase extends TestCase
* @see QueueEntryListTestBase#getTestList()
* @see QueueEntryListTestBase#getExpectedListLength()
*/
- public void testDequedMessagedNotPresentInIterator() throws Exception
+ public void testDequeuedMessagedNotPresentInIterator() throws Exception
{
final int numberOfMessages = getExpectedListLength();
final QueueEntryList<QueueEntry> entryList = getTestList();
@@ -156,7 +156,7 @@ public abstract class QueueEntryListTestBase extends TestCase
if(counter++ % 2 == 0)
{
queueEntry.acquire();
- queueEntry.dequeue();
+ queueEntry.delete();
}
}
@@ -225,7 +225,8 @@ public abstract class QueueEntryListTestBase extends TestCase
assertNull(list.next(queueEntry2));
//'delete' the 2nd QueueEntry
- assertTrue("Deleting node should have succeeded", queueEntry2.delete());
+ queueEntry2.delete();
+ assertTrue("Deleting node should have succeeded", queueEntry2.isDeleted());
QueueEntryIterator<QueueEntry> iter = list.iterator();
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTest.java
index a7dcaf6d49..b0e5a510b8 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleAMQQueueTest.java
@@ -674,15 +674,15 @@ public class SimpleAMQQueueTest extends QpidTestCase
@Override
public void run()
{
- // we dont actually want/need this runner to do any work
+ // we don't actually want/need this runner to do any work
// because we we are already doing it!
}
});
// check expected messages delivered to correct consumers
- verifyRecievedMessages(msgListSub1, sub1.getMessages());
- verifyRecievedMessages(msgListSub2, sub2.getMessages());
- verifyRecievedMessages(msgListSub3, sub3.getMessages());
+ verifyReceivedMessages(msgListSub1, sub1.getMessages());
+ verifyReceivedMessages(msgListSub2, sub2.getMessages());
+ verifyReceivedMessages(msgListSub3, sub3.getMessages());
}
/**
@@ -791,7 +791,7 @@ public class SimpleAMQQueueTest extends QpidTestCase
//delete message from top
_queue.deleteMessageFromTop();
- //get queue netries
+ //get queue entries
List<QueueEntry> entries = _queue.getMessagesOnTheQueue();
// assert queue entries
@@ -908,7 +908,7 @@ public class SimpleAMQQueueTest extends QpidTestCase
Thread.currentThread().interrupt();
}
List<QueueEntry> expected = createEntriesList(entries.get(0), entries.get(2), entries.get(3));
- verifyRecievedMessages(expected, subscription.getMessages());
+ verifyReceivedMessages(expected, subscription.getMessages());
}
/**
@@ -936,12 +936,8 @@ public class SimpleAMQQueueTest extends QpidTestCase
{
return new SimpleQueueEntryImpl(this, message)
{
- public boolean isDequeued()
- {
- return (message.getMessageNumber() % 2 == 0);
- }
- public boolean isDispensed()
+ public boolean isDeleted()
{
return (message.getMessageNumber() % 2 == 0);
}
@@ -1166,8 +1162,8 @@ public class SimpleAMQQueueTest extends QpidTestCase
List<QueueEntry> entries = queue.getMessagesOnTheQueue();
QueueEntry entry = entries.get(dequeueMessageIndex);
entry.acquire();
- entry.dequeue();
- assertTrue(entry.isDequeued());
+ entry.delete();
+ assertTrue(entry.isDeleted());
return entry;
}
@@ -1181,15 +1177,15 @@ public class SimpleAMQQueueTest extends QpidTestCase
return entriesList;
}
- private void verifyRecievedMessages(List<QueueEntry> expected,
- List<QueueEntry> delivered)
+ private void verifyReceivedMessages(List<QueueEntry> expected,
+ List<QueueEntry> delivered)
{
assertEquals("Consumer did not receive the expected number of messages",
expected.size(), delivered.size());
for (QueueEntry msg : expected)
{
- assertTrue("Consumer did not recieve msg: "
+ assertTrue("Consumer did not receive msg: "
+ msg.getMessage().getMessageNumber(), delivered.contains(msg));
}
}
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryImplTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryImplTest.java
index c2c2fc4b98..11ff7ed192 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryImplTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryImplTest.java
@@ -21,18 +21,24 @@
package org.apache.qpid.server.queue;
import org.apache.qpid.AMQException;
+import org.apache.qpid.server.message.MessageReference;
import org.apache.qpid.server.message.ServerMessage;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-public class SimpleQueueEntryImplTest extends QueueEntryImplTestBase {
+public class SimpleQueueEntryImplTest extends QueueEntryImplTestBase
+{
private SimpleQueueEntryList queueEntryList = new SimpleQueueEntryList(new MockAMQQueue("test"));
- public QueueEntryImpl getQueueEntryImpl(int msgId) throws AMQException {
+ public QueueEntryImpl getQueueEntryImpl(int msgId) throws AMQException
+ {
ServerMessage message = mock(ServerMessage.class);
when(message.getMessageNumber()).thenReturn((long)msgId);
+ final MessageReference reference = mock(MessageReference.class);
+ when(reference.getMessage()).thenReturn(message);
+ when(message.newReference()).thenReturn(reference);
return queueEntryList.add(message);
}
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryListTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryListTest.java
index 63b3a7d165..ae282d5f37 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryListTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SimpleQueueEntryListTest.java
@@ -132,37 +132,45 @@ public class SimpleQueueEntryListTest extends QueueEntryListTestBase
//requiring a scavenge once the requested threshold of 9 deletes is passed
//Delete the 2nd message only
- assertTrue("Failed to delete QueueEntry", entriesMap.remove(2).delete());
+ assertTrue("Failed to delete QueueEntry", remove(entriesMap,2));
verifyDeletedButPresentBeforeScavenge(head, 2);
//Delete messages 12 to 14
- assertTrue("Failed to delete QueueEntry", entriesMap.remove(12).delete());
+ assertTrue("Failed to delete QueueEntry", remove(entriesMap,12));
verifyDeletedButPresentBeforeScavenge(head, 12);
- assertTrue("Failed to delete QueueEntry", entriesMap.remove(13).delete());
+ assertTrue("Failed to delete QueueEntry", remove(entriesMap,13));
verifyDeletedButPresentBeforeScavenge(head, 13);
- assertTrue("Failed to delete QueueEntry", entriesMap.remove(14).delete());
+ assertTrue("Failed to delete QueueEntry", remove(entriesMap,14));
verifyDeletedButPresentBeforeScavenge(head, 14);
//Delete message 20 only
- assertTrue("Failed to delete QueueEntry", entriesMap.remove(20).delete());
+ assertTrue("Failed to delete QueueEntry", remove(entriesMap,20));
verifyDeletedButPresentBeforeScavenge(head, 20);
//Delete messages 81 to 84
- assertTrue("Failed to delete QueueEntry", entriesMap.remove(81).delete());
+ assertTrue("Failed to delete QueueEntry", remove(entriesMap,81));
verifyDeletedButPresentBeforeScavenge(head, 81);
- assertTrue("Failed to delete QueueEntry", entriesMap.remove(82).delete());
+ assertTrue("Failed to delete QueueEntry", remove(entriesMap,82));
verifyDeletedButPresentBeforeScavenge(head, 82);
- assertTrue("Failed to delete QueueEntry", entriesMap.remove(83).delete());
+ assertTrue("Failed to delete QueueEntry", remove(entriesMap,83));
verifyDeletedButPresentBeforeScavenge(head, 83);
- assertTrue("Failed to delete QueueEntry", entriesMap.remove(84).delete());
+ assertTrue("Failed to delete QueueEntry", remove(entriesMap,84));
verifyDeletedButPresentBeforeScavenge(head, 84);
//Delete message 99 - this is the 10th message deleted that is after the queue head
//and so will invoke the scavenge() which is set to go after 9 previous deletions
- assertTrue("Failed to delete QueueEntry", entriesMap.remove(99).delete());
+ assertTrue("Failed to delete QueueEntry", remove(entriesMap,99));
verifyAllDeletedMessagedNotPresent(head, entriesMap);
}
+
+ private boolean remove(Map<Integer,QueueEntry> entriesMap, int pos)
+ {
+ QueueEntry entry = entriesMap.remove(pos);
+ boolean wasDeleted = entry.isDeleted();
+ entry.delete();
+ return entry.isDeleted() && !wasDeleted;
+ }
private void verifyDeletedButPresentBeforeScavenge(SimpleQueueEntryImpl head, long messageId)
{
@@ -211,6 +219,9 @@ public class SimpleQueueEntryListTest extends QueueEntryListTestBase
{
ServerMessage message = mock(ServerMessage.class);
when(message.getMessageNumber()).thenReturn((long)i);
+ final MessageReference reference = mock(MessageReference.class);
+ when(reference.getMessage()).thenReturn(message);
+ when(message.newReference()).thenReturn(reference);
entries[i] = queueEntryList.add(message);
}
@@ -235,7 +246,7 @@ public class SimpleQueueEntryListTest extends QueueEntryListTestBase
// dequeue third
entries[2].acquire();
- entries[2].dequeue();
+ entries[2].delete();
SimpleQueueEntryImpl next = entries[2].getNextValidEntry();
assertEquals("expected forth entry", entries[3], next);
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryImplTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryImplTest.java
index acd0ccbdeb..a84dd6c249 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryImplTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/queue/SortedQueueEntryImplTest.java
@@ -22,19 +22,22 @@ package org.apache.qpid.server.queue;
import java.util.Collections;
import org.apache.qpid.AMQException;
import org.apache.qpid.server.message.AMQMessageHeader;
+import org.apache.qpid.server.message.MessageReference;
import org.apache.qpid.server.message.ServerMessage;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-public class SortedQueueEntryImplTest extends QueueEntryImplTestBase {
+public class SortedQueueEntryImplTest extends QueueEntryImplTestBase
+{
public final static String keys[] = { "CCC", "AAA", "BBB" };
private SelfValidatingSortedQueueEntryList queueEntryList = new SelfValidatingSortedQueueEntryList(new MockAMQQueue("test"),"KEY");
- public QueueEntryImpl getQueueEntryImpl(int msgId) throws AMQException {
+ public QueueEntryImpl getQueueEntryImpl(int msgId) throws AMQException
+ {
final ServerMessage message = mock(ServerMessage.class);
AMQMessageHeader hdr = mock(AMQMessageHeader.class);
when(message.getMessageHeader()).thenReturn(hdr);
@@ -42,6 +45,9 @@ public class SortedQueueEntryImplTest extends QueueEntryImplTestBase {
when(hdr.containsHeader(eq("KEY"))).thenReturn(true);
when(hdr.getHeaderNames()).thenReturn(Collections.singleton("KEY"));
+ final MessageReference reference = mock(MessageReference.class);
+ when(reference.getMessage()).thenReturn(message);
+ when(message.newReference()).thenReturn(reference);
return queueEntryList.add(message);
}
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/AuthenticatedPrincipalTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/AuthenticatedPrincipalTest.java
index cd5791952f..30da9eb582 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/AuthenticatedPrincipalTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/AuthenticatedPrincipalTest.java
@@ -136,7 +136,7 @@ public class AuthenticatedPrincipalTest extends TestCase
assertFalse(user1principal2.equals(user1principal1));
}
- public void testEqualsWithDisimilarObjects()
+ public void testEqualsWithDissimilarObjects()
{
UsernamePrincipal wrappedPrincipal = new UsernamePrincipal("user1");
AuthenticatedPrincipal authenticatedPrincipal = new AuthenticatedPrincipal(wrappedPrincipal);
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/database/Base64MD5PasswordFilePrincipalDatabaseTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/database/Base64MD5PasswordFilePrincipalDatabaseTest.java
index 4102a1fc68..8cb77ef18a 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/database/Base64MD5PasswordFilePrincipalDatabaseTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/database/Base64MD5PasswordFilePrincipalDatabaseTest.java
@@ -253,7 +253,7 @@ public class Base64MD5PasswordFilePrincipalDatabaseTest extends TestCase
}
catch (IOException e)
{
- fail("Unable to valdate file contents due to:" + e.getMessage());
+ fail("Unable to validate file contents due to:" + e.getMessage());
}
}
@@ -384,7 +384,7 @@ public class Base64MD5PasswordFilePrincipalDatabaseTest extends TestCase
}
catch (IOException e)
{
- fail("Unable to valdate file contents due to:" + e.getMessage());
+ fail("Unable to validate file contents due to:" + e.getMessage());
}
}
@@ -445,7 +445,7 @@ public class Base64MD5PasswordFilePrincipalDatabaseTest extends TestCase
try
{
_database.verifyPassword("made.up.username", PASSWORD.toCharArray());
- fail("Should not have been able to verify this non-existant users password.");
+ fail("Should not have been able to verify this nonexistent users password.");
}
catch (AccountNotFoundException e)
{
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabaseTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabaseTest.java
index eecbcdf38d..4c7c175d7b 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabaseTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabaseTest.java
@@ -141,7 +141,7 @@ public class PlainPasswordFilePrincipalDatabaseTest extends TestCase
}
catch (IOException e)
{
- fail("Unable to valdate file contents due to:" + e.getMessage());
+ fail("Unable to validate file contents due to:" + e.getMessage());
}
testFile.delete();
}
@@ -275,7 +275,7 @@ public class PlainPasswordFilePrincipalDatabaseTest extends TestCase
}
catch (IOException e)
{
- fail("Unable to valdate file contents due to:" + e.getMessage());
+ fail("Unable to validate file contents due to:" + e.getMessage());
}
testFile.delete();
}
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/jmx/JMXPasswordAuthenticatorTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/jmx/JMXPasswordAuthenticatorTest.java
index a4dd97e6a1..1aaa580ea3 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/jmx/JMXPasswordAuthenticatorTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/jmx/JMXPasswordAuthenticatorTest.java
@@ -38,7 +38,6 @@ import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.security.SubjectCreator;
import org.apache.qpid.server.security.auth.AuthenticationResult;
import org.apache.qpid.server.security.auth.AuthenticationResult.AuthenticationStatus;
-import org.apache.qpid.server.security.auth.jmx.JMXPasswordAuthenticator;
import org.apache.qpid.server.security.auth.SubjectAuthenticationResult;
import org.apache.qpid.server.security.SecurityManager;
@@ -58,7 +57,7 @@ public class JMXPasswordAuthenticatorTest extends TestCase
private JMXPasswordAuthenticator _rmipa;
- private SubjectCreator _usernamePasswordOkaySuvjectCreator = createMockSubjectCreator(true, null);
+ private SubjectCreator _usernamePasswordOkaySubjectCreator = createMockSubjectCreator(true, null);
private SubjectCreator _badPasswordSubjectCreator = createMockSubjectCreator(false, null);
protected void setUp() throws Exception
@@ -72,7 +71,7 @@ public class JMXPasswordAuthenticatorTest extends TestCase
*/
public void testAuthenticationSuccess()
{
- when(_broker.getSubjectCreator(any(SocketAddress.class))).thenReturn(_usernamePasswordOkaySuvjectCreator);
+ when(_broker.getSubjectCreator(any(SocketAddress.class))).thenReturn(_usernamePasswordOkaySubjectCreator);
when(_securityManager.accessManagement()).thenReturn(true);
Subject newSubject = _rmipa.authenticate(_credentials);
@@ -100,7 +99,7 @@ public class JMXPasswordAuthenticatorTest extends TestCase
public void testAuthorisationFailure()
{
- when(_broker.getSubjectCreator(any(SocketAddress.class))).thenReturn(_usernamePasswordOkaySuvjectCreator);
+ when(_broker.getSubjectCreator(any(SocketAddress.class))).thenReturn(_usernamePasswordOkaySubjectCreator);
when(_securityManager.accessManagement()).thenReturn(false);
try
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationManagerTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationManagerTest.java
index 586bff5683..99a24c0150 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationManagerTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationManagerTest.java
@@ -96,7 +96,7 @@ public class ExternalAuthenticationManagerTest extends QpidTestCase
assertEquals("person", saslServer.getAuthorizationID());
}
- public void testAuthenticatePrinicpalCnAndDc() throws Exception
+ public void testAuthenticatePrincipalCnAndDc() throws Exception
{
X500Principal principal = new X500Principal("CN=person, DC=example, DC=com");
UsernamePrincipal expectedPrincipal = new UsernamePrincipal("person@example.com");
@@ -111,7 +111,7 @@ public class ExternalAuthenticationManagerTest extends QpidTestCase
assertEquals("person@example.com", saslServer.getAuthorizationID());
}
- public void testAuthenticatePrinicpalCnDc_OtherComponentsIgnored() throws Exception
+ public void testAuthenticatePrincipalCnDc_OtherComponentsIgnored() throws Exception
{
X500Principal principal = new X500Principal("CN=person, DC=example, DC=com, O=My Company Ltd, L=Newbury, ST=Berkshire, C=GB");
UsernamePrincipal expectedPrincipal = new UsernamePrincipal("person@example.com");
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/sasl/SaslServerTestCase.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/sasl/SaslServerTestCase.java
index f5247634ac..07a5315ec9 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/sasl/SaslServerTestCase.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/sasl/SaslServerTestCase.java
@@ -33,15 +33,15 @@ public abstract class SaslServerTestCase extends TestCase
protected SaslServer server;
protected String username = "u";
protected String password = "p";
- protected String notpassword = "a";
+ protected String notPassword = "a";
protected PrincipalDatabase db = new TestPrincipalDatabase();
- protected byte[] correctresponse;
- protected byte[] wrongresponse;
+ protected byte[] correctResponse;
+ protected byte[] wrongResponse;
- public void testSucessfulAuth() throws SaslException
+ public void testSuccessfulAuth() throws SaslException
{
- byte[] resp = this.server.evaluateResponse(correctresponse);
+ byte[] resp = this.server.evaluateResponse(correctResponse);
assertNull(resp);
}
@@ -50,7 +50,7 @@ public abstract class SaslServerTestCase extends TestCase
boolean exceptionCaught = false;
try
{
- byte[] resp = this.server.evaluateResponse(wrongresponse);
+ byte[] resp = this.server.evaluateResponse(wrongResponse);
}
catch (SaslException e)
{
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/sasl/amqplain/AMQPlainSaslServerTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/sasl/amqplain/AMQPlainSaslServerTest.java
index 6245064bf7..37580e69a2 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/sasl/amqplain/AMQPlainSaslServerTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/sasl/amqplain/AMQPlainSaslServerTest.java
@@ -36,8 +36,8 @@ public class AMQPlainSaslServerTest extends SaslServerTestCase
FieldTable table = FieldTableFactory.newFieldTable();
table.setString("LOGIN", username);
table.setString("PASSWORD", password);
- correctresponse = table.getDataAsBytes();
- table.setString("PASSWORD", notpassword);
- wrongresponse = table.getDataAsBytes();
+ correctResponse = table.getDataAsBytes();
+ table.setString("PASSWORD", notPassword);
+ wrongResponse = table.getDataAsBytes();
}
}
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/sasl/plain/PlainSaslServerTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/sasl/plain/PlainSaslServerTest.java
index 5dd51250dc..659b0ec4a7 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/sasl/plain/PlainSaslServerTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/auth/sasl/plain/PlainSaslServerTest.java
@@ -32,8 +32,8 @@ public class PlainSaslServerTest extends SaslServerTestCase
UsernamePasswordInitialiser handler = new PlainInitialiser();
handler.initialise(db);
this.server = new PlainSaslServer(handler.getCallbackHandler());
- correctresponse = new byte[]{0x0, (byte) username.charAt(0), 0x0, (byte) password.charAt(0)};
- wrongresponse = new byte[]{0x0,(byte) username.charAt(0), 0x0, (byte) notpassword.charAt(0)};
+ correctResponse = new byte[]{0x0, (byte) username.charAt(0), 0x0, (byte) password.charAt(0)};
+ wrongResponse = new byte[]{0x0,(byte) username.charAt(0), 0x0, (byte) notPassword.charAt(0)};
}
}
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/group/FileGroupDatabaseTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/group/FileGroupDatabaseTest.java
index b020c1655a..a44f1a4473 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/group/FileGroupDatabaseTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/security/group/FileGroupDatabaseTest.java
@@ -187,7 +187,7 @@ public class FileGroupDatabaseTest extends TestCase
assertTrue(groups.contains(MY_GROUP1));
}
- public void testGetGroupPrincipalsForUserWhenUserAdddedToGroupTheyAreAlreadyIn() throws Exception
+ public void testGetGroupPrincipalsForUserWhenUserAddedToGroupTheyAreAlreadyIn() throws Exception
{
writeAndSetGroupFile("myGroup.users", USER1);
_groupDatabase.addUserToGroup(USER1, MY_GROUP);
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/AbstractDurableConfigurationStoreTestCase.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/AbstractDurableConfigurationStoreTestCase.java
index fd8148f2ce..3dfe057285 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/AbstractDurableConfigurationStoreTestCase.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/AbstractDurableConfigurationStoreTestCase.java
@@ -40,7 +40,7 @@ import org.apache.qpid.AMQStoreException;
import org.apache.qpid.common.AMQPFilterTypes;
import org.apache.qpid.server.binding.Binding;
import org.apache.qpid.server.exchange.Exchange;
-import org.apache.qpid.server.message.EnqueableMessage;
+import org.apache.qpid.server.message.EnqueueableMessage;
import org.apache.qpid.server.model.LifetimePolicy;
import org.apache.qpid.server.model.Queue;
import org.apache.qpid.server.model.UUIDGenerator;
@@ -441,7 +441,7 @@ public abstract class AbstractDurableConfigurationStoreTestCase extends QpidTest
UUID queueId1 = UUIDGenerator.generateRandomUUID();
TransactionLogResource queue1 = mock(TransactionLogResource.class);
when(queue1.getId()).thenReturn(queueId1);
- EnqueableMessage message1 = mock(EnqueableMessage.class);
+ EnqueueableMessage message1 = mock(EnqueueableMessage.class);
when(message1.isPersistent()).thenReturn(true);
when(message1.getMessageNumber()).thenReturn(messageNumber);
final StoredMessage storedMessage = mock(StoredMessage.class);
@@ -454,9 +454,9 @@ public abstract class AbstractDurableConfigurationStoreTestCase extends QpidTest
private static class TestRecord implements Record
{
private TransactionLogResource _queue;
- private EnqueableMessage _message;
+ private EnqueueableMessage _message;
- public TestRecord(TransactionLogResource queue, EnqueableMessage message)
+ public TestRecord(TransactionLogResource queue, EnqueueableMessage message)
{
super();
_queue = queue;
@@ -470,7 +470,7 @@ public abstract class AbstractDurableConfigurationStoreTestCase extends QpidTest
}
@Override
- public EnqueableMessage getMessage()
+ public EnqueueableMessage getMessage()
{
return _message;
}
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/DurableConfigurationRecovererTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/DurableConfigurationRecovererTest.java
index 9dcaccacac..9bce9398c1 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/DurableConfigurationRecovererTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/DurableConfigurationRecovererTest.java
@@ -375,7 +375,7 @@ public class DurableConfigurationRecovererTest extends QpidTestCase
}
catch(IllegalConfigurationException e)
{
- assertEquals("Unkown type for configured object: Wibble", e.getMessage());
+ assertEquals("Unknown type for configured object: Wibble", e.getMessage());
}
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/EventManagerTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/EventManagerTest.java
index 2be79c5839..702874fb88 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/EventManagerTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/EventManagerTest.java
@@ -45,7 +45,7 @@ public class EventManagerTest extends TestCase
verifyZeroInteractions(_mockListener);
}
- public void testEventListenerFiresMulitpleTimes()
+ public void testEventListenerFiresMultipleTimes()
{
_eventManager.addEventListener(_mockListener, BEFORE_ACTIVATE);
_eventManager.addEventListener(_mockListener, AFTER_ACTIVATE);
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/MessageStoreQuotaEventsTestBase.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/MessageStoreQuotaEventsTestBase.java
index 5f86c887f0..7cc3c50199 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/MessageStoreQuotaEventsTestBase.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/MessageStoreQuotaEventsTestBase.java
@@ -28,7 +28,7 @@ import java.util.UUID;
import org.apache.log4j.Logger;
import org.apache.qpid.AMQStoreException;
-import org.apache.qpid.server.message.EnqueableMessage;
+import org.apache.qpid.server.message.EnqueueableMessage;
import org.apache.qpid.server.model.VirtualHost;
import org.apache.qpid.server.store.MessageStoreRecoveryHandler.StoredMessageRecoveryHandler;
import org.apache.qpid.test.utils.QpidTestCase;
@@ -103,10 +103,10 @@ public abstract class MessageStoreQuotaEventsTestBase extends QpidTestCase imple
{
Transaction transaction = _store.newTransaction();
- List<EnqueableMessage> messages = new ArrayList<EnqueableMessage>();
+ List<EnqueueableMessage> messages = new ArrayList<EnqueueableMessage>();
for (int i = 0; i < getNumberOfMessagesToFillStore(); i++)
{
- EnqueableMessage m = addMessage(i);
+ EnqueueableMessage m = addMessage(i);
messages.add(m);
transaction.enqueueMessage(this, m);
}
@@ -114,7 +114,7 @@ public abstract class MessageStoreQuotaEventsTestBase extends QpidTestCase imple
assertEvent(1, Event.PERSISTENT_MESSAGE_SIZE_OVERFULL);
- for (EnqueableMessage m : messages)
+ for (EnqueueableMessage m : messages)
{
m.getStoredMessage().remove();
}
@@ -122,7 +122,7 @@ public abstract class MessageStoreQuotaEventsTestBase extends QpidTestCase imple
assertEvent(2, Event.PERSISTENT_MESSAGE_SIZE_UNDERFULL);
}
- protected EnqueableMessage addMessage(long id) throws AMQStoreException
+ protected EnqueueableMessage addMessage(long id) throws AMQStoreException
{
StorableMessageMetaData metaData = createMetaData(id, MESSAGE_DATA.length);
StoredMessage<?> handle = _store.addMessage(metaData);
@@ -158,7 +158,7 @@ public abstract class MessageStoreQuotaEventsTestBase extends QpidTestCase imple
return _transactionResource;
}
- private static class TestMessage implements EnqueableMessage
+ private static class TestMessage implements EnqueueableMessage
{
private final StoredMessage<?> _handle;
private final long _messageId;
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/StateManagerTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/StateManagerTest.java
index 8c1421f2dd..16d18de713 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/StateManagerTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/StateManagerTest.java
@@ -99,7 +99,7 @@ public class StateManagerTest extends TestCase implements EventListener
{
assertEquals(State.INITIAL, _manager.getState());
performValidTransition(StateManager.INITIALISE);
- performValidTransition(StateManager.INITALISE_COMPLETE);
+ performValidTransition(StateManager.INITIALISE_COMPLETE);
performValidTransition(StateManager.ACTIVATE);
performValidTransition(StateManager.ACTIVATE_COMPLETE);
performValidTransition(StateManager.QUIESCE);
@@ -112,13 +112,13 @@ public class StateManagerTest extends TestCase implements EventListener
_manager = new StateManager(this);
assertEquals(State.INITIAL, _manager.getState());
performValidTransition(StateManager.INITIALISE);
- performValidTransition(StateManager.INITALISE_COMPLETE);
+ performValidTransition(StateManager.INITIALISE_COMPLETE);
performValidTransition(StateManager.CLOSE_INITIALISED);
performValidTransition(StateManager.CLOSE_COMPLETE);
_manager = new StateManager(this);
performValidTransition(StateManager.INITIALISE);
- performValidTransition(StateManager.INITALISE_COMPLETE);
+ performValidTransition(StateManager.INITIALISE_COMPLETE);
performValidTransition(StateManager.ACTIVATE);
performValidTransition(StateManager.ACTIVATE_COMPLETE);
performValidTransition(StateManager.QUIESCE);
@@ -140,7 +140,7 @@ public class StateManagerTest extends TestCase implements EventListener
assertEquals(State.INITIAL, _manager.getState());
performInvalidTransitions(StateManager.INITIALISE, State.INITIALISED);
- performInvalidTransitions(StateManager.INITALISE_COMPLETE, State.ACTIVATING, State.CLOSING);
+ performInvalidTransitions(StateManager.INITIALISE_COMPLETE, State.ACTIVATING, State.CLOSING);
performInvalidTransitions(StateManager.ACTIVATE, State.ACTIVE, State.CLOSING);
performInvalidTransitions(StateManager.ACTIVATE_COMPLETE, State.QUIESCING, State.CLOSING, State.INITIALISED);
performInvalidTransitions(StateManager.QUIESCE, State.QUIESCED);
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/TestableMemoryMessageStore.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/TestableMemoryMessageStore.java
index bb3c0cf535..9dde7d26d0 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/TestableMemoryMessageStore.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/TestableMemoryMessageStore.java
@@ -21,7 +21,7 @@
package org.apache.qpid.server.store;
import org.apache.qpid.AMQStoreException;
-import org.apache.qpid.server.message.EnqueableMessage;
+import org.apache.qpid.server.message.EnqueueableMessage;
import org.apache.qpid.server.queue.AMQQueue;
import java.nio.ByteBuffer;
@@ -56,13 +56,13 @@ public class TestableMemoryMessageStore extends TestMemoryMessageStore
private class TestableTransaction implements Transaction
{
@Override
- public void enqueueMessage(TransactionLogResource queue, EnqueableMessage message) throws AMQStoreException
+ public void enqueueMessage(TransactionLogResource queue, EnqueueableMessage message) throws AMQStoreException
{
getMessages().put(message.getMessageNumber(), (AMQQueue)queue);
}
@Override
- public void dequeueMessage(TransactionLogResource queue, EnqueableMessage message) throws AMQStoreException
+ public void dequeueMessage(TransactionLogResource queue, EnqueueableMessage message) throws AMQStoreException
{
getMessages().remove(message.getMessageNumber());
}
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/subscription/SubscriptionListTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/subscription/SubscriptionListTest.java
index c4d1a1e614..cd5b178464 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/subscription/SubscriptionListTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/subscription/SubscriptionListTest.java
@@ -251,7 +251,7 @@ public class SubscriptionListTest extends QpidTestCase
* Test that if the subscription not contained in the list is requested to be removed
* that the removal fails
*/
- public void testRemoveNonExistantNode()
+ public void testRemoveNonexistentNode()
{
Subscription sub4 = new MockSubscription();
assertNull("Should not have been a node present for the subscription", getNodeForSubscription(_subList, sub4));
@@ -360,7 +360,7 @@ public class SubscriptionListTest extends QpidTestCase
*/
public void testIteratorSkipsFirstDeletedNode()
{
- //'delete' but dont remove the node for the 1st subscription
+ //'delete' but don't remove the node for the 1st subscription
assertTrue("Deleting subscription node should have succeeded",
getNodeForSubscription(_subList, _sub1).delete());
assertNotNull("Should still have been a node present for the deleted subscription",
@@ -383,7 +383,7 @@ public class SubscriptionListTest extends QpidTestCase
*/
public void testIteratorSkipsCentralDeletedNode()
{
- //'delete' but dont remove the node for the 2nd subscription
+ //'delete' but don't remove the node for the 2nd subscription
assertTrue("Deleting subscription node should have succeeded",
getNodeForSubscription(_subList, _sub2).delete());
assertNotNull("Should still have been a node present for the deleted subscription",
@@ -406,7 +406,7 @@ public class SubscriptionListTest extends QpidTestCase
*/
public void testIteratorSkipsDeletedFinalNode()
{
- //'delete' but dont remove the node for the 3rd subscription
+ //'delete' but don't remove the node for the 3rd subscription
assertTrue("Deleting subscription node should have succeeded",
getNodeForSubscription(_subList, _sub3).delete());
assertNotNull("Should still have been a node present for the deleted 3rd subscription",
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/txn/AsyncAutoCommitTransactionTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/txn/AsyncAutoCommitTransactionTest.java
index 5c1012d50b..8285bdba4c 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/txn/AsyncAutoCommitTransactionTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/txn/AsyncAutoCommitTransactionTest.java
@@ -23,7 +23,7 @@ import static org.mockito.Mockito.*;
import java.util.Collections;
-import org.apache.qpid.server.message.EnqueableMessage;
+import org.apache.qpid.server.message.EnqueueableMessage;
import org.apache.qpid.server.queue.BaseQueue;
import org.apache.qpid.server.store.MessageStore;
import org.apache.qpid.server.store.StoreFuture;
@@ -37,7 +37,7 @@ public class AsyncAutoCommitTransactionTest extends QpidTestCase
private static final String STRICT_ORDER_SYSTEM_PROPERTY = AsyncAutoCommitTransaction.QPID_STRICT_ORDER_WITH_MIXED_DELIVERY_MODE;
private FutureRecorder _futureRecorder = mock(FutureRecorder.class);
- private EnqueableMessage _message = mock(EnqueableMessage.class);
+ private EnqueueableMessage _message = mock(EnqueueableMessage.class);
private BaseQueue _queue = mock(BaseQueue.class);
private MessageStore _messageStore = mock(MessageStore.class);
private Transaction _storeTransaction = mock(Transaction.class);
@@ -72,7 +72,7 @@ public class AsyncAutoCommitTransactionTest extends QpidTestCase
verifyZeroInteractions(_postTransactionAction);
}
- public void testEnqueuePersistentMessageOnMultiplQueuesPostCommitNotCalled() throws Exception
+ public void testEnqueuePersistentMessageOnMultipleQueuesPostCommitNotCalled() throws Exception
{
setTestSystemProperty(STRICT_ORDER_SYSTEM_PROPERTY, "false");
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/txn/AutoCommitTransactionTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/txn/AutoCommitTransactionTest.java
index 06b8539eb1..3c66a4c94b 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/txn/AutoCommitTransactionTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/txn/AutoCommitTransactionTest.java
@@ -361,7 +361,7 @@ public class AutoCommitTransactionTest extends QpidTestCase
}
/**
- * Tests the add of a post-commit action. Since AutoCommitTranctions
+ * Tests the add of a post-commit action. Since AutoCommitTransactions
* have no long lived transactions, the post commit action is fired immediately.
*/
public void testPostCommitActionFiredImmediately() throws Exception
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/txn/LocalTransactionTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/txn/LocalTransactionTest.java
index 4904cbc6fb..f3f5e00346 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/txn/LocalTransactionTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/txn/LocalTransactionTest.java
@@ -347,7 +347,7 @@ public class LocalTransactionTest extends QpidTestCase
}
/**
- * Tests the add of a post-commit action. Unlike AutoCommitTranctions, the post transaction actions
+ * Tests the add of a post-commit action. Unlike AutoCommitTransactions, the post transaction actions
* is added to a list to be fired on commit or rollback.
*/
public void testAddingPostCommitActionNotFiredImmediately() throws Exception
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/txn/MockAction.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/txn/MockAction.java
index 15c135ea2c..8fba28e200 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/txn/MockAction.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/txn/MockAction.java
@@ -23,7 +23,7 @@ package org.apache.qpid.server.txn;
import org.apache.qpid.server.txn.ServerTransaction.Action;
/**
- * Mock implementation of a ServerTranaction Action
+ * Mock implementation of a ServerTransaction Action
* allowing its state to be observed.
*
*/
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/txn/MockStoreTransaction.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/txn/MockStoreTransaction.java
index 0221f3d509..17955a8d52 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/txn/MockStoreTransaction.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/txn/MockStoreTransaction.java
@@ -22,7 +22,7 @@ package org.apache.qpid.server.txn;
import org.apache.commons.lang.NotImplementedException;
import org.apache.qpid.AMQStoreException;
-import org.apache.qpid.server.message.EnqueableMessage;
+import org.apache.qpid.server.message.EnqueueableMessage;
import org.apache.qpid.server.store.MessageStore;
import org.apache.qpid.server.store.NullMessageStore;
import org.apache.qpid.server.store.StoreFuture;
@@ -60,7 +60,7 @@ class MockStoreTransaction implements Transaction
return _state;
}
- public void enqueueMessage(TransactionLogResource queue, EnqueableMessage message) throws AMQStoreException
+ public void enqueueMessage(TransactionLogResource queue, EnqueueableMessage message) throws AMQStoreException
{
if (_throwExceptionOnQueueOp)
{
@@ -81,7 +81,7 @@ class MockStoreTransaction implements Transaction
return _numberOfEnqueuedMessages;
}
- public void dequeueMessage(TransactionLogResource queue, EnqueableMessage message) throws AMQStoreException
+ public void dequeueMessage(TransactionLogResource queue, EnqueueableMessage message) throws AMQStoreException
{
if (_throwExceptionOnQueueOp)
{
diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/StandardVirtualHostTest.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/StandardVirtualHostTest.java
index 03cb483e40..f46349daa4 100644
--- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/StandardVirtualHostTest.java
+++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/StandardVirtualHostTest.java
@@ -279,7 +279,7 @@ public class StandardVirtualHostTest extends QpidTestCase
* @param vhostName name of the virtualhost
* @param queueName name of the queue
* @param exchangeName name of a direct exchange to declare (unless dontDeclare = true) and bind the queue to (null = none)
- * @param dontDeclare if true then dont declare the exchange, even if its name is non-null
+ * @param dontDeclare if true then don't declare the exchange, even if its name is non-null
* @param routingKeys routingKeys to bind the queue with (empty array = none)
* @return
*/
diff --git a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/PlainConfiguration.java b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/PlainConfiguration.java
index ab309c54ce..31c345f718 100644
--- a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/PlainConfiguration.java
+++ b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/PlainConfiguration.java
@@ -182,7 +182,7 @@ public class PlainConfiguration extends AbstractConfiguration
break; // continue reading next line
}
- // invalid location for continuation character (add one to line beacuse we ate the EOL)
+ // invalid location for continuation character (add one to line because we ate the EOL)
throw new IllegalConfigurationException(String.format(PREMATURE_CONTINUATION_MSG, getLine() + 1));
}
else if (_st.ttype == '\'' || _st.ttype == '"')
diff --git a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/Rule.java b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/Rule.java
index cef9a8696b..9e9b33194e 100644
--- a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/Rule.java
+++ b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/Rule.java
@@ -35,7 +35,7 @@ import org.apache.qpid.server.security.access.Permission;
*/
public class Rule implements Comparable<Rule>
{
- /** String indicating all identitied. */
+ /** String indicating all identified. */
public static final String ALL = "all";
private Integer _number;
diff --git a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/RuleSet.java b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/RuleSet.java
index e321e0e8f0..2e2b6b2041 100644
--- a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/RuleSet.java
+++ b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/RuleSet.java
@@ -242,7 +242,7 @@ public class RuleSet
/** Returns true if a username has the name[@domain][/realm] format */
protected boolean isvalidUserName(String name)
{
- // check for '@' and '/' in namne
+ // check for '@' and '/' in name
int atPos = name.indexOf(AT);
int slashPos = name.indexOf(SLASH);
boolean atFound = atPos != StringUtils.INDEX_NOT_FOUND && atPos == name.lastIndexOf(AT);
diff --git a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/config/PlainConfigurationTest.java b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/config/PlainConfigurationTest.java
index 3a324bc571..e22f4af895 100644
--- a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/config/PlainConfigurationTest.java
+++ b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/config/PlainConfigurationTest.java
@@ -323,7 +323,7 @@ public class PlainConfigurationTest extends TestCase
* be introduced anywhere in the ACL, whereas the C++ supports only whitespace at the beginning of
* of line.
*/
- public void testCommentsSuppported() throws Exception
+ public void testCommentsSupported() throws Exception
{
final PlainConfiguration config = writeACLConfig("#Comment",
"ACL DENY-LOG user1 ACCESS VIRTUALHOST # another comment",
@@ -362,7 +362,7 @@ public class PlainConfigurationTest extends TestCase
/**
* Tests interpretation of an acl utilising line continuation.
*/
- public void testLineContination() throws Exception
+ public void testLineContinuation() throws Exception
{
final PlainConfiguration config = writeACLConfig("ACL DENY-LOG user1 \\",
"ACCESS VIRTUALHOST");
diff --git a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/firewall/HostnameFirewallRuleTest.java b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/firewall/HostnameFirewallRuleTest.java
index be82cb294a..d2beebfb0f 100644
--- a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/firewall/HostnameFirewallRuleTest.java
+++ b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/firewall/HostnameFirewallRuleTest.java
@@ -51,7 +51,7 @@ public class HostnameFirewallRuleTest extends TestCase
assertTrue(_HostnameFirewallRule.matches(addressWithMatchingHostname));
}
- public void testSingleHostnameWilcard() throws Exception
+ public void testSingleHostnameWildcard() throws Exception
{
String hostnameInRule = ".*FOO.*";
InetAddress addressWithMatchingHostname = mock(InetAddress.class);
diff --git a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlTest.java b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlTest.java
index a8406308c0..ea8e469edb 100644
--- a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlTest.java
+++ b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/DefaultAccessControlTest.java
@@ -329,7 +329,7 @@ public class DefaultAccessControlTest extends TestCase
/**
* Tests that granting of access method rights with mask allows matching operations to be performed on the specified component
*/
- public void testAuthoriseAccessMethodWhenMatchingAcessOperationsAllowedOnSpecifiedComponent() throws ConfigurationException
+ public void testAuthoriseAccessMethodWhenMatchingAccessOperationsAllowedOnSpecifiedComponent() throws ConfigurationException
{
final RuleSet rs = new RuleSet();
diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java
index 261c937836..fe82f65115 100644
--- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java
+++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java
@@ -89,7 +89,7 @@ public class ServerSession extends Session
{
private static final Logger _logger = LoggerFactory.getLogger(ServerSession.class);
- private static final String NULL_DESTINTATION = UUID.randomUUID().toString();
+ private static final String NULL_DESTINATION = UUID.randomUUID().toString();
private static final int PRODUCER_CREDIT_TOPUP_THRESHOLD = 1 << 30;
private static final int UNFINISHED_COMMAND_QUEUE_THRESHOLD = 500;
@@ -421,12 +421,12 @@ public class ServerSession extends Session
public void register(String destination, Subscription_0_10 sub)
{
- _subscriptions.put(destination == null ? NULL_DESTINTATION : destination, sub);
+ _subscriptions.put(destination == null ? NULL_DESTINATION : destination, sub);
}
public Subscription_0_10 getSubscription(String destination)
{
- return _subscriptions.get(destination == null ? NULL_DESTINTATION : destination);
+ return _subscriptions.get(destination == null ? NULL_DESTINATION : destination);
}
public void unregister(Subscription_0_10 sub)
diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java
index 5b52d31255..73f8569384 100644
--- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java
+++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java
@@ -976,7 +976,7 @@ public class ServerSessionDelegate extends SessionDelegate
}
else
{
- //TODO - here because of non-compiant python tests
+ //TODO - here because of non-compliant python tests
// should raise exception ILLEGAL_ARGUMENT "binding-key not set"
if (!method.hasBindingKey())
{
diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/Subscription_0_10.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/Subscription_0_10.java
index f68973096a..17d0e5cb64 100644
--- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/Subscription_0_10.java
+++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/Subscription_0_10.java
@@ -37,7 +37,6 @@ import org.apache.qpid.server.message.ServerMessage;
import org.apache.qpid.server.queue.AMQQueue;
import org.apache.qpid.server.queue.BaseQueue;
import org.apache.qpid.server.queue.QueueEntry;
-import org.apache.qpid.server.queue.QueueEntryInstanceProperties;
import org.apache.qpid.server.subscription.Subscription;
import org.apache.qpid.server.txn.AutoCommitTransaction;
import org.apache.qpid.server.txn.ServerTransaction;
@@ -532,7 +531,7 @@ public class Subscription_0_10 implements Subscription, FlowCreditManager.FlowCr
{
restoreCredit(entry);
}
- entry.discard();
+ entry.delete();
}
public void onRollback()
@@ -548,7 +547,7 @@ public class Subscription_0_10 implements Subscription, FlowCreditManager.FlowCr
entry.routeToAlternate();
if(entry.isAcquiredBy(this))
{
- entry.discard();
+ entry.delete();
}
}
@@ -581,11 +580,11 @@ public class Subscription_0_10 implements Subscription, FlowCreditManager.FlowCr
final ServerMessage msg = entry.getMessage();
if (alternateExchange != null)
{
- final List<? extends BaseQueue> destinationQueues = alternateExchange.route(entry.getMessage(), new QueueEntryInstanceProperties(entry));
+ final List<? extends BaseQueue> destinationQueues = alternateExchange.route(entry.getMessage(), entry.getInstanceProperties());
if (destinationQueues == null || destinationQueues.isEmpty())
{
- entry.discard();
+ entry.delete();
logActor.message( ChannelMessages.DISCARDMSG_NOROUTE(msg.getMessageNumber(), alternateExchange.getName()));
}
@@ -602,7 +601,7 @@ public class Subscription_0_10 implements Subscription, FlowCreditManager.FlowCr
}
else
{
- entry.discard();
+ entry.delete();
logActor.message(ChannelMessages.DISCARDMSG_NOALTEXCH(msg.getMessageNumber(), entry.getQueue().getName(), msg.getRoutingKey()));
}
}
@@ -787,7 +786,7 @@ public class Subscription_0_10 implements Subscription, FlowCreditManager.FlowCr
{
_unacknowledgedBytes.addAndGet(-entry.getSize());
_unacknowledgedCount.decrementAndGet();
- entry.discard();
+ entry.delete();
}
}
diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java
index bb1d1949a2..b7dc105cb7 100644
--- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java
+++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java
@@ -74,7 +74,6 @@ import org.apache.qpid.server.protocol.AMQSessionModel;
import org.apache.qpid.server.queue.AMQQueue;
import org.apache.qpid.server.queue.BaseQueue;
import org.apache.qpid.server.queue.QueueEntry;
-import org.apache.qpid.server.queue.QueueEntryInstanceProperties;
import org.apache.qpid.server.security.SecurityManager;
import org.apache.qpid.server.store.MessageStore;
import org.apache.qpid.server.store.StoreFuture;
@@ -394,7 +393,7 @@ public class AMQChannel implements AMQSessionModel, AsyncAutoCommitTransaction.F
*
* Pre-requisite: the current message is judged to have no destination queues.
*
- * @throws AMQConnectionException if the message is mandatoryclose-on-no-route
+ * @throws AMQConnectionException if the message is mandatory close-on-no-route
* @see AMQProtocolSession#isCloseWhenNoRoute()
*/
private void handleUnroutableMessage(AMQMessage message) throws AMQConnectionException
@@ -736,7 +735,7 @@ public class AMQChannel implements AMQSessionModel, AsyncAutoCommitTransaction.F
}
else
{
- unacked.discard();
+ unacked.delete();
}
}
@@ -771,7 +770,7 @@ public class AMQChannel implements AMQSessionModel, AsyncAutoCommitTransaction.F
_logger.warn(System.identityHashCode(this) + " Requested requeue of message(" + unacked
+ "):" + deliveryTag + " but no queue defined and no DeadLetter queue so DROPPING message.");
- unacked.discard();
+ unacked.delete();
}
}
else
@@ -970,7 +969,7 @@ public class AMQChannel implements AMQSessionModel, AsyncAutoCommitTransaction.F
// perform an Async delivery for each of the subscriptions in this
// Channel. The alternative would be to ensure that the subscription
// had received the change in suspension state. That way the logic
- // behind decieding to start an async delivery was located with the
+ // behind deciding to start an async delivery was located with the
// Subscription.
if (wasSuspended)
{
@@ -1362,7 +1361,7 @@ public class AMQChannel implements AMQSessionModel, AsyncAutoCommitTransaction.F
{
for(QueueEntry entry : _ackedMessages)
{
- entry.discard();
+ entry.delete();
}
}
finally
@@ -1571,19 +1570,19 @@ public class AMQChannel implements AMQSessionModel, AsyncAutoCommitTransaction.F
{
_logger.debug("No alternate exchange configured for queue, must discard the message as unable to DLQ: delivery tag: " + deliveryTag);
_actor.message(_logSubject, ChannelMessages.DISCARDMSG_NOALTEXCH(msg.getMessageNumber(), queue.getName(), msg.getRoutingKey()));
- rejectedQueueEntry.discard();
+ rejectedQueueEntry.delete();
return;
}
final List<? extends BaseQueue> destinationQueues =
- altExchange.route(rejectedQueueEntry.getMessage(), new QueueEntryInstanceProperties(rejectedQueueEntry));
+ altExchange.route(rejectedQueueEntry.getMessage(), rejectedQueueEntry.getInstanceProperties());
if (destinationQueues == null || destinationQueues.isEmpty())
{
_logger.debug("Routing process provided no queues to enqueue the message on, must discard message as unable to DLQ: delivery tag: " + deliveryTag);
_actor.message(_logSubject, ChannelMessages.DISCARDMSG_NOROUTE(msg.getMessageNumber(), altExchange.getName()));
- rejectedQueueEntry.discard();
+ rejectedQueueEntry.delete();
return;
}
diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
index f04475eb33..c7a84fa3b6 100644
--- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
+++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
@@ -73,6 +73,8 @@ import org.apache.qpid.protocol.AMQConstant;
import org.apache.qpid.protocol.AMQMethodEvent;
import org.apache.qpid.protocol.AMQMethodListener;
import org.apache.qpid.protocol.ServerProtocolEngine;
+import org.apache.qpid.server.message.InstanceProperties;
+import org.apache.qpid.server.message.ServerMessage;
import org.apache.qpid.server.protocol.AMQSessionModel;
import org.apache.qpid.server.configuration.BrokerProperties;
import org.apache.qpid.server.protocol.v0_8.handler.ServerMethodDispatcherImpl;
@@ -88,7 +90,6 @@ import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.Transport;
import org.apache.qpid.server.protocol.v0_8.output.ProtocolOutputConverter;
import org.apache.qpid.server.protocol.v0_8.output.ProtocolOutputConverterRegistry;
-import org.apache.qpid.server.queue.QueueEntry;
import org.apache.qpid.server.security.auth.AuthenticatedPrincipal;
import org.apache.qpid.server.protocol.v0_8.state.AMQState;
import org.apache.qpid.server.protocol.v0_8.state.AMQStateManager;
@@ -348,7 +349,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi
* Process the data block.
* If the message is for a channel it is added to {@link #_channelsForCurrentMessage}.
*
- * @throws an AMQConnectionException if unable to process the data block. In this case,
+ * @throws AMQConnectionException if unable to process the data block. In this case,
* the connection is already closed by the time the exception is thrown. If any other
* type of exception is thrown, the connection is not already closed.
*/
@@ -376,7 +377,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi
* Handle the supplied frame.
* Adds this frame's channel to {@link #_channelsForCurrentMessage}.
*
- * @throws an AMQConnectionException if unable to process the data block. In this case,
+ * @throws AMQConnectionException if unable to process the data block. In this case,
* the connection is already closed by the time the exception is thrown. If any other
* type of exception is thrown, the connection is not already closed.
*/
@@ -386,7 +387,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi
AMQChannel amqChannel = _channelMap.get(channelId);
if(amqChannel != null)
{
- // The _receivedLock is already aquired in the caller
+ // The _receivedLock is already acquired in the caller
// It is safe to add channel
_channelsForCurrentMessage.add(amqChannel);
}
@@ -476,7 +477,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi
(_codecFactory.getDecoder()).setExpectProtocolInitiation(false);
try
{
- // Log incomming protocol negotiation request
+ // Log incoming protocol negotiation request
_actor.message(ConnectionMessages.OPEN(null, pi.getProtocolMajor() + "-" + pi.getProtocolMinor(), null, null, false, true, false, false));
ProtocolVersion pv = pi.checkVersion(); // Fails if not correct
@@ -607,7 +608,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi
{
if (_logger.isDebugEnabled())
{
- _logger.debug("ChannelException occured on non-existent channel:" + e.getMessage());
+ _logger.debug("ChannelException occurred on non-existent channel:" + e.getMessage());
}
if (_logger.isInfoEnabled())
@@ -850,14 +851,14 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi
public void closeChannelOk(int channelId)
{
- // todo QPID-847 - This is called from two lcoations ChannelCloseHandler and ChannelCloseOkHandler.
- // When it is the CC_OK_Handler then it makes sence to remove the channel else we will leak memory.
+ // todo QPID-847 - This is called from two locations ChannelCloseHandler and ChannelCloseOkHandler.
+ // When it is the CC_OK_Handler then it makes sense to remove the channel else we will leak memory.
// We do it from the Close Handler as we are sending the OK back to the client.
// While this is AMQP spec compliant. The Java client in the event of an IllegalArgumentException
// will send a close-ok.. Where we should call removeChannel.
// However, due to the poor exception handling on the client. The client-user will be notified of the
// InvalidArgument and if they then decide to close the session/connection then the there will be time
- // for that to occur i.e. a new close method be sent before the exeption handling can mark the session closed.
+ // for that to occur i.e. a new close method be sent before the exception handling can mark the session closed.
_closingChannelsList.remove(channelId);
}
@@ -1667,12 +1668,17 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi
_channelId = channelId;
}
- public void deliverToClient(final Subscription sub, final QueueEntry entry, final long deliveryTag)
+ @Override
+ public void deliverToClient(final Subscription sub, final ServerMessage message,
+ final InstanceProperties props, final long deliveryTag)
throws AMQException
{
- registerMessageDelivered(entry.getMessage().getSize());
- _protocolOutputConverter.writeDeliver(entry, _channelId, deliveryTag, ((SubscriptionImpl)sub).getConsumerTag());
- entry.incrementDeliveryCount();
+ registerMessageDelivered(message.getSize());
+ _protocolOutputConverter.writeDeliver(message,
+ props,
+ _channelId,
+ deliveryTag,
+ ((SubscriptionImpl)sub).getConsumerTag());
}
}
diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolSession.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolSession.java
index 559ab3468e..85d995518a 100644
--- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolSession.java
+++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolSession.java
@@ -123,7 +123,7 @@ public interface AMQProtocolSession extends AMQVersionAwareProtocolSession, Auth
void closeChannel(int channelId, AMQConstant cause, String message) throws AMQException;
/**
- * Markes the specific channel as closed. This will release the lock for that channel id so a new channel can be
+ * Marks the specific channel as closed. This will release the lock for that channel id so a new channel can be
* created on that id.
*
* @param channelId id of the channel to close
diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ExtractResendAndRequeue.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ExtractResendAndRequeue.java
index 5e416b52ca..060aebdd65 100644
--- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ExtractResendAndRequeue.java
+++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ExtractResendAndRequeue.java
@@ -37,20 +37,20 @@ public class ExtractResendAndRequeue implements UnacknowledgedMessageMap.Visitor
private final Map<Long, QueueEntry> _msgToRequeue;
private final Map<Long, QueueEntry> _msgToResend;
- private final boolean _requeueIfUnabletoResend;
+ private final boolean _requeueIfUnableToResend;
private final UnacknowledgedMessageMap _unacknowledgedMessageMap;
private final MessageStore _transactionLog;
public ExtractResendAndRequeue(UnacknowledgedMessageMap unacknowledgedMessageMap,
Map<Long, QueueEntry> msgToRequeue,
Map<Long, QueueEntry> msgToResend,
- boolean requeueIfUnabletoResend,
+ boolean requeueIfUnableToResend,
MessageStore txnLog)
{
_unacknowledgedMessageMap = unacknowledgedMessageMap;
_msgToRequeue = msgToRequeue;
_msgToResend = msgToResend;
- _requeueIfUnabletoResend = requeueIfUnabletoResend;
+ _requeueIfUnableToResend = requeueIfUnableToResend;
_transactionLog = txnLog;
}
@@ -78,7 +78,7 @@ public class ExtractResendAndRequeue implements UnacknowledgedMessageMap.Visitor
// cannot resend, so re-queue.
if (!message.isQueueDeleted())
{
- if (_requeueIfUnabletoResend)
+ if (_requeueIfUnableToResend)
{
_msgToRequeue.put(deliveryTag, message);
}
@@ -115,7 +115,7 @@ public class ExtractResendAndRequeue implements UnacknowledgedMessageMap.Visitor
public void postCommit()
{
- node.discard();
+ node.delete();
}
public void onRollback()
diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/SubscriptionImpl.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/SubscriptionImpl.java
index d48e8b3dea..7c52fbe3b0 100644
--- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/SubscriptionImpl.java
+++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/SubscriptionImpl.java
@@ -28,7 +28,6 @@ import org.apache.qpid.framing.AMQShortString;
import org.apache.qpid.framing.FieldTable;
import org.apache.qpid.server.filter.FilterManager;
import org.apache.qpid.server.filter.FilterManagerFactory;
-import org.apache.qpid.server.filter.Filterable;
import org.apache.qpid.server.flow.FlowCreditManager;
import org.apache.qpid.server.logging.LogActor;
import org.apache.qpid.server.logging.LogSubject;
@@ -36,6 +35,9 @@ import org.apache.qpid.server.logging.actors.CurrentActor;
import org.apache.qpid.server.logging.actors.SubscriptionActor;
import org.apache.qpid.server.logging.messages.SubscriptionMessages;
import org.apache.qpid.server.logging.subjects.SubscriptionLogSubject;
+import org.apache.qpid.server.message.InstanceProperties;
+import org.apache.qpid.server.message.MessageReference;
+import org.apache.qpid.server.message.ServerMessage;
import org.apache.qpid.server.protocol.MessageConverterRegistry;
import org.apache.qpid.server.protocol.v0_8.output.ProtocolOutputConverter;
import org.apache.qpid.server.protocol.AMQSessionModel;
@@ -56,7 +58,7 @@ import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
/**
- * Encapsulation of a supscription to a queue. <p/> Ties together the protocol session of a subscriber, the consumer tag
+ * Encapsulation of a subscription to a queue. <p/> Ties together the protocol session of a subscriber, the consumer tag
* that was given out by the broker and the channel id. <p/>
*/
public abstract class SubscriptionImpl implements Subscription, FlowCreditManager.FlowCreditManagerListener
@@ -132,7 +134,7 @@ public abstract class SubscriptionImpl implements Subscription, FlowCreditManage
synchronized (getChannel())
{
long deliveryTag = getChannel().getNextDeliveryTag();
- sendToClient(entry, deliveryTag);
+ sendToClient(entry.getMessage(), entry.getInstanceProperties(), deliveryTag);
}
}
@@ -147,7 +149,7 @@ public abstract class SubscriptionImpl implements Subscription, FlowCreditManage
public static class NoAckSubscription extends SubscriptionImpl
{
- private volatile AutoCommitTransaction _txn;
+ private final AutoCommitTransaction _txn;
public NoAckSubscription(AMQChannel channel, AMQProtocolSession protocolSession,
AMQShortString consumerTag, FieldTable filters,
@@ -157,6 +159,7 @@ public abstract class SubscriptionImpl implements Subscription, FlowCreditManage
throws AMQException
{
super(channel, protocolSession, consumerTag, filters, noLocal, creditManager, deliveryMethod, recordMethod);
+ _txn = new AutoCommitTransaction(protocolSession.getVirtualHost().getMessageStore());
}
@@ -192,23 +195,22 @@ public abstract class SubscriptionImpl implements Subscription, FlowCreditManage
// The send may of course still fail, in which case, as
// the message is unacked, it will be lost.
- if(_txn == null)
- {
- _txn = new AutoCommitTransaction(getQueue().getVirtualHost().getMessageStore());
- }
_txn.dequeue(getQueue(), entry.getMessage(), NOOP);
- entry.dequeue();
+ ServerMessage message = entry.getMessage();
+ MessageReference ref = message.newReference();
+ InstanceProperties props = entry.getInstanceProperties();
+ entry.delete();
synchronized (getChannel())
{
getChannel().getProtocolSession().setDeferFlush(batch);
long deliveryTag = getChannel().getNextDeliveryTag();
- sendToClient(entry, deliveryTag);
+ sendToClient(message, props, deliveryTag);
}
- entry.dispose();
+ ref.release();
}
@@ -301,8 +303,8 @@ public abstract class SubscriptionImpl implements Subscription, FlowCreditManage
addUnacknowledgedMessage(entry);
recordMessageDelivery(entry, deliveryTag);
- sendToClient(entry, deliveryTag);
-
+ sendToClient(entry.getMessage(), entry.getInstanceProperties(), deliveryTag);
+ entry.incrementDeliveryCount();
}
}
@@ -688,12 +690,12 @@ public abstract class SubscriptionImpl implements Subscription, FlowCreditManage
}
- protected void sendToClient(final QueueEntry entry, final long deliveryTag)
+ protected void sendToClient(final ServerMessage message, final InstanceProperties props, final long deliveryTag)
throws AMQException
{
- _deliveryMethod.deliverToClient(this,entry,deliveryTag);
+ _deliveryMethod.deliverToClient(this, message, props, deliveryTag);
_deliveredCount.incrementAndGet();
- _deliveredBytes.addAndGet(entry.getSize());
+ _deliveredBytes.addAndGet(message.getSize());
}
diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/BasicGetMethodHandler.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/BasicGetMethodHandler.java
index 5238a41e49..4b569ccc71 100644
--- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/BasicGetMethodHandler.java
+++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/BasicGetMethodHandler.java
@@ -28,10 +28,11 @@ import org.apache.qpid.framing.BasicGetBody;
import org.apache.qpid.framing.BasicGetEmptyBody;
import org.apache.qpid.framing.MethodRegistry;
import org.apache.qpid.protocol.AMQConstant;
+import org.apache.qpid.server.message.InstanceProperties;
+import org.apache.qpid.server.message.ServerMessage;
import org.apache.qpid.server.protocol.v0_8.AMQChannel;
import org.apache.qpid.server.flow.FlowCreditManager;
import org.apache.qpid.server.flow.MessageOnlyCreditManager;
-import org.apache.qpid.server.protocol.v0_8.AMQMessage;
import org.apache.qpid.server.protocol.v0_8.AMQProtocolSession;
import org.apache.qpid.server.protocol.AMQSessionModel;
import org.apache.qpid.server.queue.AMQQueue;
@@ -126,21 +127,18 @@ public class BasicGetMethodHandler implements StateAwareMethodListener<BasicGetB
final ClientDeliveryMethod getDeliveryMethod = new ClientDeliveryMethod()
{
- public void deliverToClient(final Subscription sub, final QueueEntry entry, final long deliveryTag)
+ @Override
+ public void deliverToClient(final Subscription sub, final ServerMessage message, final
+ InstanceProperties props, final long deliveryTag)
throws AMQException
{
- singleMessageCredit.useCreditForMessage(entry.getMessage().getSize());
- if(entry.getMessage() instanceof AMQMessage)
- {
- session.getProtocolOutputConverter().writeGetOk(entry, channel.getChannelId(),
- deliveryTag, queue.getMessageCount());
- entry.incrementDeliveryCount();
- }
- else
- {
- //TODO Convert AMQP 0-10 message
- throw new AMQException(AMQConstant.NOT_IMPLEMENTED, "Not implemented conversion of 0-10 message", null);
- }
+ singleMessageCredit.useCreditForMessage(message.getSize());
+ session.getProtocolOutputConverter().writeGetOk(message,
+ props,
+ channel.getChannelId(),
+ deliveryTag,
+ queue.getMessageCount());
+
}
};
diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/BasicRejectMethodHandler.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/BasicRejectMethodHandler.java
index 0cfdff3338..f2ab154b32 100644
--- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/BasicRejectMethodHandler.java
+++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/BasicRejectMethodHandler.java
@@ -79,7 +79,7 @@ public class BasicRejectMethodHandler implements StateAwareMethodListener<BasicR
message = channel.getUnacknowledgedMessageMap().remove(deliveryTag);
if(message != null)
{
- message.discard();
+ message.delete();
}
return;
}
diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/UnexpectedMethodException.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/UnexpectedMethodException.java
index 32a9f768ec..cb14254494 100644
--- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/UnexpectedMethodException.java
+++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/handler/UnexpectedMethodException.java
@@ -31,6 +31,6 @@ public class UnexpectedMethodException extends AMQException
public UnexpectedMethodException(AMQMethodBody body)
{
- super("Unexpected method recevied: " + body.getClass().getName());
+ super("Unexpected method received: " + body.getClass().getName());
}
}
diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/output/ProtocolOutputConverter.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/output/ProtocolOutputConverter.java
index 48e42ce5a3..1e69edba91 100644
--- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/output/ProtocolOutputConverter.java
+++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/output/ProtocolOutputConverter.java
@@ -1,60 +1,69 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-/*
- * This file is auto-generated by Qpid Gentools v.0.1 - do not modify.
- * Supported AMQP versions:
- * 8-0
- */
-package org.apache.qpid.server.protocol.v0_8.output;
-
-import org.apache.qpid.AMQException;
-import org.apache.qpid.framing.AMQDataBlock;
-import org.apache.qpid.framing.AMQShortString;
-import org.apache.qpid.framing.ContentHeaderBody;
-import org.apache.qpid.framing.abstraction.MessagePublishInfo;
-import org.apache.qpid.server.message.MessageContentSource;
-import org.apache.qpid.server.protocol.v0_8.AMQProtocolSession;
-import org.apache.qpid.server.queue.QueueEntry;
-
-public interface ProtocolOutputConverter
-{
- void confirmConsumerAutoClose(int channelId, AMQShortString consumerTag);
-
- interface Factory
- {
- ProtocolOutputConverter newInstance(AMQProtocolSession session);
- }
-
- void writeDeliver(QueueEntry entry, int channelId, long deliveryTag, AMQShortString consumerTag)
- throws AMQException;
-
- void writeGetOk(QueueEntry message, int channelId, long deliveryTag, int queueSize) throws AMQException;
-
- byte getProtocolMinorVersion();
-
- byte getProtocolMajorVersion();
-
- void writeReturn(MessagePublishInfo messagePublishInfo, ContentHeaderBody header, MessageContentSource msgContent, int channelId, int replyCode, AMQShortString replyText)
- throws AMQException;
-
- void writeFrame(AMQDataBlock block);
-}
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+/*
+ * This file is auto-generated by Qpid Gentools v.0.1 - do not modify.
+ * Supported AMQP versions:
+ * 8-0
+ */
+package org.apache.qpid.server.protocol.v0_8.output;
+
+import org.apache.qpid.AMQException;
+import org.apache.qpid.framing.AMQDataBlock;
+import org.apache.qpid.framing.AMQShortString;
+import org.apache.qpid.framing.ContentHeaderBody;
+import org.apache.qpid.framing.abstraction.MessagePublishInfo;
+import org.apache.qpid.server.message.InstanceProperties;
+import org.apache.qpid.server.message.MessageContentSource;
+import org.apache.qpid.server.message.ServerMessage;
+import org.apache.qpid.server.protocol.v0_8.AMQProtocolSession;
+import org.apache.qpid.server.queue.QueueEntry;
+
+public interface ProtocolOutputConverter
+{
+ void confirmConsumerAutoClose(int channelId, AMQShortString consumerTag);
+
+ interface Factory
+ {
+ ProtocolOutputConverter newInstance(AMQProtocolSession session);
+ }
+
+ void writeDeliver(final ServerMessage msg,
+ final InstanceProperties props, int channelId,
+ long deliveryTag,
+ AMQShortString consumerTag)
+ throws AMQException;
+
+ void writeGetOk(final ServerMessage msg,
+ final InstanceProperties props,
+ int channelId,
+ long deliveryTag,
+ int queueSize) throws AMQException;
+
+ byte getProtocolMinorVersion();
+
+ byte getProtocolMajorVersion();
+
+ void writeReturn(MessagePublishInfo messagePublishInfo, ContentHeaderBody header, MessageContentSource msgContent, int channelId, int replyCode, AMQShortString replyText)
+ throws AMQException;
+
+ void writeFrame(AMQDataBlock block);
+}
diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/output/ProtocolOutputConverterImpl.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/output/ProtocolOutputConverterImpl.java
index dd5e13e56a..290a859df6 100644
--- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/output/ProtocolOutputConverterImpl.java
+++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/output/ProtocolOutputConverterImpl.java
@@ -33,13 +33,13 @@ import org.apache.qpid.framing.ContentHeaderBody;
import org.apache.qpid.framing.MethodRegistry;
import org.apache.qpid.framing.abstraction.MessagePublishInfo;
import org.apache.qpid.protocol.AMQVersionAwareProtocolSession;
+import org.apache.qpid.server.message.InstanceProperties;
import org.apache.qpid.server.message.ServerMessage;
import org.apache.qpid.server.plugin.MessageConverter;
import org.apache.qpid.server.protocol.MessageConverterRegistry;
import org.apache.qpid.server.protocol.v0_8.AMQMessage;
import org.apache.qpid.server.message.MessageContentSource;
import org.apache.qpid.server.protocol.v0_8.AMQProtocolSession;
-import org.apache.qpid.server.queue.QueueEntry;
import java.io.DataOutput;
import java.io.IOException;
@@ -64,24 +64,27 @@ class ProtocolOutputConverterImpl implements ProtocolOutputConverter
return _protocolSession;
}
- public void writeDeliver(QueueEntry entry, int channelId, long deliveryTag, AMQShortString consumerTag)
+ public void writeDeliver(final ServerMessage m,
+ final InstanceProperties props, int channelId,
+ long deliveryTag,
+ AMQShortString consumerTag)
throws AMQException
{
- AMQMessage msg = convertToAMQMessage(entry);
- AMQBody deliverBody = createEncodedDeliverBody(msg, entry.isRedelivered(), deliveryTag, consumerTag);
+ final AMQMessage msg = convertToAMQMessage(m);
+ final boolean isRedelivered = Boolean.TRUE.equals(props.getProperty(InstanceProperties.Property.REDELIVERED));
+ AMQBody deliverBody = createEncodedDeliverBody(msg, isRedelivered, deliveryTag, consumerTag);
writeMessageDelivery(msg, channelId, deliverBody);
}
- private AMQMessage convertToAMQMessage(QueueEntry entry)
+ private AMQMessage convertToAMQMessage(ServerMessage serverMessage)
{
- ServerMessage serverMessage = entry.getMessage();
if(serverMessage instanceof AMQMessage)
{
return (AMQMessage) serverMessage;
}
else
{
- return getMessageConverter(serverMessage).convert(serverMessage, entry.getQueue().getVirtualHost());
+ return getMessageConverter(serverMessage).convert(serverMessage, _protocolSession.getVirtualHost());
}
}
@@ -186,10 +189,14 @@ class ProtocolOutputConverterImpl implements ProtocolOutputConverter
}
}
- public void writeGetOk(QueueEntry entry, int channelId, long deliveryTag, int queueSize) throws AMQException
+ public void writeGetOk(final ServerMessage msg,
+ final InstanceProperties props,
+ int channelId,
+ long deliveryTag,
+ int queueSize) throws AMQException
{
- AMQBody deliver = createEncodedGetOkBody(entry, deliveryTag, queueSize);
- writeMessageDelivery(convertToAMQMessage(entry), channelId, deliver);
+ AMQBody deliver = createEncodedGetOkBody(msg, props, deliveryTag, queueSize);
+ writeMessageDelivery(convertToAMQMessage(msg), channelId, deliver);
}
@@ -274,18 +281,18 @@ class ProtocolOutputConverterImpl implements ProtocolOutputConverter
}
}
- private AMQBody createEncodedGetOkBody(QueueEntry entry, long deliveryTag, int queueSize)
+ private AMQBody createEncodedGetOkBody(ServerMessage msg, InstanceProperties props, long deliveryTag, int queueSize)
throws AMQException
{
final AMQShortString exchangeName;
final AMQShortString routingKey;
- final AMQMessage message = convertToAMQMessage(entry);
+ final AMQMessage message = convertToAMQMessage(msg);
final MessagePublishInfo pb = message.getMessagePublishInfo();
exchangeName = pb.getExchange();
routingKey = pb.getRoutingKey();
- final boolean isRedelivered = entry.isRedelivered();
+ final boolean isRedelivered = Boolean.TRUE.equals(props.getProperty(InstanceProperties.Property.REDELIVERED));
BasicGetOkBody getOkBody =
_methodRegistry.createBasicGetOkBody(deliveryTag,
diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/AckTest.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/AckTest.java
index 176d1858f1..2243cbff11 100644
--- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/AckTest.java
+++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/AckTest.java
@@ -182,7 +182,7 @@ public class AckTest extends QpidTestCase
final int msgCount = 10;
publishMessages(msgCount, true);
UnacknowledgedMessageMap map = _channel.getUnacknowledgedMessageMap();
- assertEquals("Unextpected size for unacknowledge message map",msgCount,map.size());
+ assertEquals("Unexpected size for unacknowledged message map",msgCount,map.size());
Set<Long> deliveryTagSet = map.getDeliveryTags();
int i = 1;
@@ -333,93 +333,6 @@ public class AckTest extends QpidTestCase
}
-
-/*
- public void testPrefetchHighLow() throws AMQException
- {
- int lowMark = 5;
- int highMark = 10;
-
- _subscription = SubscriptionFactoryImpl.INSTANCE.createSubscription(5, _protocolSession, DEFAULT_CONSUMER_TAG, true,null,false, new LimitlessCreditManager());
- _channel.setPrefetchLowMarkCount(lowMark);
- _channel.setPrefetchHighMarkCount(highMark);
-
- assertTrue(_channel.getPrefetchLowMarkCount() == lowMark);
- assertTrue(_channel.getPrefetchHighMarkCount() == highMark);
-
- publishMessages(highMark);
-
- // at this point we should have sent out only highMark messages
- // which have not bee received so will be queued up in the channel
- // which should be suspended
- assertTrue(_subscription.isSuspended());
- UnacknowledgedMessageMap map = _channel.getUnacknowledgedMessageMap();
- assertTrue(map.size() == highMark);
-
- //acknowledge messages so we are just above lowMark
- _channel.acknowledgeMessage(lowMark - 1, true);
-
- //we should still be suspended
- assertTrue(_subscription.isSuspended());
- assertTrue(map.size() == lowMark + 1);
-
- //acknowledge one more message
- _channel.acknowledgeMessage(lowMark, true);
-
- //and suspension should be lifted
- assertTrue(!_subscription.isSuspended());
-
- //pubilsh more msgs so we are just below the limit
- publishMessages(lowMark - 1);
-
- //we should not be suspended
- assertTrue(!_subscription.isSuspended());
-
- //acknowledge all messages
- _channel.acknowledgeMessage(0, true);
- try
- {
- Thread.sleep(3000);
- }
- catch (InterruptedException e)
- {
- _log.error("Error: " + e, e);
- }
- //map will be empty
- assertTrue(map.size() == 0);
- }
-
-*/
-/*
- public void testPrefetch() throws AMQException
- {
- _subscription = SubscriptionFactoryImpl.INSTANCE.createSubscription(5, _protocolSession, DEFAULT_CONSUMER_TAG, true,null,false, new LimitlessCreditManager());
- _channel.setMessageCredit(5);
-
- assertTrue(_channel.getPrefetchCount() == 5);
-
- final int msgCount = 5;
- publishMessages(msgCount);
-
- // at this point we should have sent out only 5 messages with a further 5 queued
- // up in the channel which should now be suspended
- assertTrue(_subscription.isSuspended());
- UnacknowledgedMessageMap map = _channel.getUnacknowledgedMessageMap();
- assertTrue(map.size() == 5);
- _channel.acknowledgeMessage(5, true);
- assertTrue(!_subscription.isSuspended());
- try
- {
- Thread.sleep(3000);
- }
- catch (InterruptedException e)
- {
- _log.error("Error: " + e, e);
- }
- assertTrue(map.size() == 0);
- }
-
-*/
public static junit.framework.Test suite()
{
return new junit.framework.TestSuite(AckTest.class);
diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/AcknowledgeTest.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/AcknowledgeTest.java
index 43f88ca2a3..bb5fecdfb4 100644
--- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/AcknowledgeTest.java
+++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/AcknowledgeTest.java
@@ -117,12 +117,12 @@ public class AcknowledgeTest extends QpidTestCase
runMessageAck(10, 1, 0, true, 0);
}
- protected void runMessageAck(int sendMessageCount, long firstDeliveryTag, long acknowledgeDeliveryTag, boolean acknowldegeMultiple, int remainingUnackedMessages) throws AMQException
+ protected void runMessageAck(int sendMessageCount, long firstDeliveryTag, long acknowledgeDeliveryTag, boolean acknowledgeMultiple, int remainingUnackedMessages) throws AMQException
{
//Check store is empty
checkStoreContents(0);
- //Send required messsages to the queue
+ //Send required messages to the queue
BrokerTestHelper_0_8.publishMessages(getChannel(),
sendMessageCount,
_queueName,
@@ -147,7 +147,7 @@ public class AcknowledgeTest extends QpidTestCase
//Wait for the messages to be delivered
getSession().awaitDelivery(sendMessageCount);
- //Check that they are all waiting to be acknoledged
+ //Check that they are all waiting to be acknowledged
assertEquals("Channel should have unacked msgs", sendMessageCount, getChannel().getUnacknowledgedMessageMap().size());
List<InternalTestProtocolSession.DeliveryPair> messages = getSession().getDelivers(getChannel().getChannelId(), subscriber, sendMessageCount);
@@ -159,7 +159,7 @@ public class AcknowledgeTest extends QpidTestCase
assertEquals("First message does not have expected deliveryTag", firstDeliveryTag, messages.get(0).getDeliveryTag());
//Send required Acknowledgement
- getChannel().acknowledgeMessage(acknowledgeDeliveryTag, acknowldegeMultiple);
+ getChannel().acknowledgeMessage(acknowledgeDeliveryTag, acknowledgeMultiple);
if (getChannel().isTransactional())
{
diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/BrokerTestHelper_0_8.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/BrokerTestHelper_0_8.java
index 0919607bd7..991a0272d4 100644
--- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/BrokerTestHelper_0_8.java
+++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/BrokerTestHelper_0_8.java
@@ -66,11 +66,11 @@ public class BrokerTestHelper_0_8 extends BrokerTestHelper
public static void publishMessages(AMQChannel channel, int numberOfMessages, String queueName, String exchangeName) throws AMQException
{
- AMQShortString rouningKey = new AMQShortString(queueName);
+ AMQShortString routingKey = new AMQShortString(queueName);
AMQShortString exchangeNameAsShortString = new AMQShortString(exchangeName);
MessagePublishInfo info = mock(MessagePublishInfo.class);
when(info.getExchange()).thenReturn(exchangeNameAsShortString);
- when(info.getRoutingKey()).thenReturn(rouningKey);
+ when(info.getRoutingKey()).thenReturn(routingKey);
Exchange exchange = channel.getVirtualHost().getExchange(exchangeName);
for (int count = 0; count < numberOfMessages; count++)
diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/ExtractResendAndRequeueTest.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/ExtractResendAndRequeueTest.java
index 7f36b4a081..36a57fa05f 100644
--- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/ExtractResendAndRequeueTest.java
+++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/ExtractResendAndRequeueTest.java
@@ -45,12 +45,12 @@ import java.util.Map;
*
* This clearing/prep for resend was done as a result of the rollback call. HOWEVER, the delivery thread was still
* in the process of sending messages to the client. It is therefore possible that a message could block on the
- * _unackedMap lock waiting for the visit to compelete so that it can add the new message to the unackedMap....
+ * _unackedMap lock waiting for the visit to complete so that it can add the new message to the unackedMap....
* which is then cleared by the resend/rollback thread.
*
* This problem was encountered by the testSend2ThenRollback test.
*
- * To try and increase the chance of the race condition occuring this test will send multiple messages so that the
+ * To try and increase the chance of the race condition occurring this test will send multiple messages so that the
* delivery thread will be in progress while the rollback method is called. Hopefully this will cause the
* deliveryTag to be lost
*/
@@ -82,7 +82,7 @@ public class ExtractResendAndRequeueTest extends TestCase
id++;
}
- // Iterate through the QueueEntryList and add entries to unacknowledgeMessageMap and referecenList
+ // Iterate through the QueueEntryList and add entries to unacknowledgedMessageMap and referenceList
QueueEntryIterator queueEntries = list.iterator();
while(queueEntries.advance())
{
@@ -97,13 +97,13 @@ public class ExtractResendAndRequeueTest extends TestCase
}
/**
- * Helper method to create a new subscription and aquire the given messages.
+ * Helper method to create a new subscription and acquire the given messages.
*
- * @param messageList The messages to aquire
+ * @param messageList The messages to acquire
*
- * @return Subscription that performed the aquire
+ * @return Subscription that performed the acquire
*/
- private Subscription createSubscriptionAndAquireMessages(LinkedList<QueueEntry> messageList)
+ private Subscription createSubscriptionAndAcquireMessages(LinkedList<QueueEntry> messageList)
{
Subscription subscription = new MockSubscription();
@@ -119,7 +119,7 @@ public class ExtractResendAndRequeueTest extends TestCase
/**
* This is the normal consumer rollback method.
*
- * An active consumer that has aquired messages expects those messasges to be reset when rollback is requested.
+ * An active consumer that has acquired messages expects those messages to be reset when rollback is requested.
*
* This test validates that the msgToResend map includes all the messages and none are left behind.
*
@@ -128,12 +128,12 @@ public class ExtractResendAndRequeueTest extends TestCase
public void testResend() throws AMQException
{
//We don't need the subscription object here.
- createSubscriptionAndAquireMessages(_referenceList);
+ createSubscriptionAndAcquireMessages(_referenceList);
final Map<Long, QueueEntry> msgToRequeue = new LinkedHashMap<Long, QueueEntry>();
final Map<Long, QueueEntry> msgToResend = new LinkedHashMap<Long, QueueEntry>();
- // requeueIfUnabletoResend doesn't matter here.
+ // requeueIfUnableToResend doesn't matter here.
_unacknowledgedMessageMap.visit(new ExtractResendAndRequeue(_unacknowledgedMessageMap, msgToRequeue,
msgToResend, true, _messageStore));
@@ -145,8 +145,8 @@ public class ExtractResendAndRequeueTest extends TestCase
/**
* This is the normal consumer close method.
*
- * When a consumer that has aquired messages expects closes the messages that it has aquired should be removed from
- * the unacknowledgeMap and placed in msgToRequeue
+ * When a consumer that has acquired messages expects closes the messages that it has acquired should be removed from
+ * the unacknowledgedMap and placed in msgToRequeue
*
* This test validates that the msgToRequeue map includes all the messages and none are left behind.
*
@@ -154,7 +154,7 @@ public class ExtractResendAndRequeueTest extends TestCase
*/
public void testRequeueDueToSubscriptionClosure() throws AMQException
{
- Subscription subscription = createSubscriptionAndAquireMessages(_referenceList);
+ Subscription subscription = createSubscriptionAndAcquireMessages(_referenceList);
// Close subscription
subscription.close();
@@ -162,7 +162,7 @@ public class ExtractResendAndRequeueTest extends TestCase
final Map<Long, QueueEntry> msgToRequeue = new LinkedHashMap<Long, QueueEntry>();
final Map<Long, QueueEntry> msgToResend = new LinkedHashMap<Long, QueueEntry>();
- // requeueIfUnabletoResend doesn't matter here.
+ // requeueIfUnableToResend doesn't matter here.
_unacknowledgedMessageMap.visit(new ExtractResendAndRequeue(_unacknowledgedMessageMap, msgToRequeue,
msgToResend, true, _messageStore));
@@ -173,7 +173,7 @@ public class ExtractResendAndRequeueTest extends TestCase
/**
* If the subscription is null, due to message being retrieved via a GET, And we request that messages are requeued
- * requeueIfUnabletoResend(set to true) then all messages should be sent to the msgToRequeue map.
+ * requeueIfUnableToResend(set to true) then all messages should be sent to the msgToRequeue map.
*
* @throws AMQException the visit interface throws this
*/
@@ -183,7 +183,7 @@ public class ExtractResendAndRequeueTest extends TestCase
final Map<Long, QueueEntry> msgToRequeue = new LinkedHashMap<Long, QueueEntry>();
final Map<Long, QueueEntry> msgToResend = new LinkedHashMap<Long, QueueEntry>();
- // requeueIfUnabletoResend = true so all messages should go to msgToRequeue
+ // requeueIfUnableToResend = true so all messages should go to msgToRequeue
_unacknowledgedMessageMap.visit(new ExtractResendAndRequeue(_unacknowledgedMessageMap, msgToRequeue,
msgToResend, true, _messageStore));
@@ -194,7 +194,7 @@ public class ExtractResendAndRequeueTest extends TestCase
/**
* If the subscription is null, due to message being retrieved via a GET, And we request that we don't
- * requeueIfUnabletoResend(set to false) then all messages should be dropped as we do not have a dead letter queue.
+ * requeueIfUnableToResend(set to false) then all messages should be dropped as we do not have a dead letter queue.
*
* @throws AMQException the visit interface throws this
*/
@@ -204,7 +204,7 @@ public class ExtractResendAndRequeueTest extends TestCase
final Map<Long, QueueEntry> msgToRequeue = new LinkedHashMap<Long, QueueEntry>();
final Map<Long, QueueEntry> msgToResend = new LinkedHashMap<Long, QueueEntry>();
- // requeueIfUnabletoResend = false so all messages should be dropped all maps should be empty
+ // requeueIfUnableToResend = false so all messages should be dropped all maps should be empty
_unacknowledgedMessageMap.visit(new ExtractResendAndRequeue(_unacknowledgedMessageMap, msgToRequeue,
msgToResend, false, _messageStore));
@@ -222,7 +222,7 @@ public class ExtractResendAndRequeueTest extends TestCase
/**
* If the subscription is null, due to message being retrieved via a GET, AND the queue upon which the message was
- * delivered has been deleted then it is not possible to requeue. Currently we simply discar the message but in the
+ * delivered has been deleted then it is not possible to requeue. Currently we simply discard the message but in the
* future we may wish to dead letter the message.
*
* Validate that at the end of the visit all Maps are empty and all messages are marked as deleted
@@ -236,7 +236,7 @@ public class ExtractResendAndRequeueTest extends TestCase
_queue.delete();
- // requeueIfUnabletoResend : value doesn't matter here as queue has been deleted
+ // requeueIfUnableToResend : value doesn't matter here as queue has been deleted
_unacknowledgedMessageMap.visit(new ExtractResendAndRequeue(_unacknowledgedMessageMap, msgToRequeue,
msgToResend, false, _messageStore));
diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java
index 1680a16b42..ef0837b3c6 100644
--- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java
+++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java
@@ -41,7 +41,9 @@ import org.apache.qpid.framing.AMQShortString;
import org.apache.qpid.framing.ContentHeaderBody;
import org.apache.qpid.framing.abstraction.MessagePublishInfo;
import org.apache.qpid.protocol.AMQConstant;
+import org.apache.qpid.server.message.InstanceProperties;
import org.apache.qpid.server.message.MessageContentSource;
+import org.apache.qpid.server.message.ServerMessage;
import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.protocol.AMQSessionModel;
import org.apache.qpid.server.protocol.v0_8.output.ProtocolOutputConverter;
@@ -133,11 +135,6 @@ public class InternalTestProtocolSession extends AMQProtocolEngine implements Pr
}
}
- // *** ProtocolOutputConverter Implementation
- public void writeReturn(AMQMessage message, int channelId, int replyCode, AMQShortString replyText) throws AMQException
- {
- }
-
public ClientDeliveryMethod createDeliveryMethod(int channelId)
{
return new InternalWriteDeliverMethod(channelId);
@@ -147,7 +144,10 @@ public class InternalTestProtocolSession extends AMQProtocolEngine implements Pr
{
}
- public void writeDeliver(QueueEntry entry, int channelId, long deliveryTag, AMQShortString consumerTag) throws AMQException
+ public void writeDeliver(final ServerMessage msg,
+ final InstanceProperties props, int channelId,
+ long deliveryTag,
+ AMQShortString consumerTag) throws AMQException
{
_deliveryCount.incrementAndGet();
@@ -169,11 +169,15 @@ public class InternalTestProtocolSession extends AMQProtocolEngine implements Pr
consumers.put(consumerTag, consumerDelivers);
}
- consumerDelivers.add(new DeliveryPair(deliveryTag, (AMQMessage)entry.getMessage()));
+ consumerDelivers.add(new DeliveryPair(deliveryTag, (AMQMessage)msg));
}
}
- public void writeGetOk(QueueEntry message, int channelId, long deliveryTag, int queueSize) throws AMQException
+ public void writeGetOk(final ServerMessage msg,
+ final InstanceProperties props,
+ int channelId,
+ long deliveryTag,
+ int queueSize) throws AMQException
{
}
@@ -187,7 +191,7 @@ public class InternalTestProtocolSession extends AMQProtocolEngine implements Pr
}
catch (InterruptedException e)
{
- _logger.error("Thread interupted", e);
+ _logger.error("Thread interrupted", e);
}
}
}
@@ -195,15 +199,15 @@ public class InternalTestProtocolSession extends AMQProtocolEngine implements Pr
public class DeliveryPair
{
private long _deliveryTag;
- private AMQMessage _message;
+ private ServerMessage _message;
- public DeliveryPair(long deliveryTag, AMQMessage message)
+ public DeliveryPair(long deliveryTag, ServerMessage message)
{
_deliveryTag = deliveryTag;
_message = message;
}
- public AMQMessage getMessage()
+ public ServerMessage getMessage()
{
return _message;
}
@@ -242,7 +246,9 @@ public class InternalTestProtocolSession extends AMQProtocolEngine implements Pr
}
- public void deliverToClient(Subscription sub, QueueEntry entry, long deliveryTag) throws AMQException
+ @Override
+ public void deliverToClient(Subscription sub, ServerMessage message,
+ InstanceProperties props, long deliveryTag) throws AMQException
{
_deliveryCount.incrementAndGet();
@@ -264,7 +270,7 @@ public class InternalTestProtocolSession extends AMQProtocolEngine implements Pr
consumers.put(((SubscriptionImpl)sub).getConsumerTag(), consumerDelivers);
}
- consumerDelivers.add(new DeliveryPair(deliveryTag, (AMQMessage)entry.getMessage()));
+ consumerDelivers.add(new DeliveryPair(deliveryTag, message));
}
}
}
diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/MaxChannelsTest.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/MaxChannelsTest.java
index a77475c05f..16c890eaea 100644
--- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/MaxChannelsTest.java
+++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/MaxChannelsTest.java
@@ -60,7 +60,7 @@ public class MaxChannelsTest extends QpidTestCase
}
catch (AMQException e)
{
- assertEquals("Wrong exception recevied.", e.getErrorCode(), AMQConstant.NOT_ALLOWED);
+ assertEquals("Wrong exception received.", e.getErrorCode(), AMQConstant.NOT_ALLOWED);
}
assertEquals("Maximum number of channels not set.", new Long(maxChannels), new Long(_session.getChannels().size()));
}
diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/QueueBrowserUsesNoAckTest.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/QueueBrowserUsesNoAckTest.java
index 4f9df3b38d..8c716a0b56 100644
--- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/QueueBrowserUsesNoAckTest.java
+++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/QueueBrowserUsesNoAckTest.java
@@ -95,7 +95,7 @@ public class QueueBrowserUsesNoAckTest extends QpidTestCase
//Check store is empty
checkStoreContents(0);
- //Send required messsages to the queue
+ //Send required messages to the queue
BrokerTestHelper_0_8.publishMessages(getChannel(),
sendMessageCount,
_queueName,
@@ -124,7 +124,7 @@ public class QueueBrowserUsesNoAckTest extends QpidTestCase
getSession().getDelivers(getChannel().getChannelId(), browser,
prefetch);
- //Ensure we recevied the prefetched messages
+ //Ensure we received the prefetched messages
assertEquals(prefetch, messages.size());
//Check the process didn't suspend the subscription as this would
diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/SubscriptionFactoryImplTest.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/SubscriptionFactoryImplTest.java
index e98dd63450..e0d1b28007 100644
--- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/SubscriptionFactoryImplTest.java
+++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/SubscriptionFactoryImplTest.java
@@ -81,9 +81,9 @@ public class SubscriptionFactoryImplTest extends QpidTestCase
//create a browser subscription
FieldTable filters = new FieldTable();
filters.put(AMQPFilterTypes.NO_CONSUME.getValue(), true);
- Subscription browerSub = SubscriptionFactoryImpl.INSTANCE.createSubscription(1, _session, new AMQShortString("1"), true, null, false, _channel.getCreditManager());
- assertEquals("Unexpected Subscription ID allocated", previousId + 1, browerSub.getSubscriptionID());
- previousId = browerSub.getSubscriptionID();
+ Subscription browserSub = SubscriptionFactoryImpl.INSTANCE.createSubscription(1, _session, new AMQShortString("1"), true, null, false, _channel.getCreditManager());
+ assertEquals("Unexpected Subscription ID allocated", previousId + 1, browserSub.getSubscriptionID());
+ previousId = browserSub.getSubscriptionID();
//create an BasicGet NoAck subscription
Subscription getNoAckSub = SubscriptionFactoryImpl.INSTANCE.createBasicGetNoAckSubscription(_channel, _session, new AMQShortString("1"), null, false,
diff --git a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageMetaData_1_0.java b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageMetaData_1_0.java
index 8db6c86fc4..5026007360 100755
--- a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageMetaData_1_0.java
+++ b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageMetaData_1_0.java
@@ -88,9 +88,9 @@ public class MessageMetaData_1_0 implements StorableMessageMetaData
this(fragments, decoder, new ArrayList<ByteBuffer>(3));
}
- public MessageMetaData_1_0(ByteBuffer[] fragments, SectionDecoder decoder, List<ByteBuffer> immuatableSections)
+ public MessageMetaData_1_0(ByteBuffer[] fragments, SectionDecoder decoder, List<ByteBuffer> immutableSections)
{
- this(constructSections(fragments, decoder,immuatableSections), immuatableSections);
+ this(constructSections(fragments, decoder,immutableSections), immutableSections);
}
private MessageMetaData_1_0(List<Section> sections, List<ByteBuffer> encodedSections)
diff --git a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLink_1_0.java b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLink_1_0.java
index 034927c56b..4abf1bf76b 100644
--- a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLink_1_0.java
+++ b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLink_1_0.java
@@ -631,7 +631,7 @@ public class SendingLink_1_0 implements SendingLinkListener, Link_1_0, DeliveryS
{
public void postCommit()
{
- queueEntry.discard();
+ queueEntry.delete();
}
public void onRollback()
diff --git a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Subscription_1_0.java b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Subscription_1_0.java
index e5f3a52e3b..6a3f5b46e1 100644
--- a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Subscription_1_0.java
+++ b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Subscription_1_0.java
@@ -148,14 +148,12 @@ class
public boolean hasInterest(final QueueEntry entry)
{
- if(entry.getMessage() instanceof Message_1_0)
+ if(_noLocal && entry.getMessage().getConnectionReference() == getSession().getConnection().getReference())
{
- if(_noLocal && ((Message_1_0)entry.getMessage()).getConnectionReference() == getSession().getConnection().getReference())
- {
- return false;
- }
+ return false;
}
- else if(MessageConverterRegistry.getConverter(entry.getMessage().getClass(), Message_1_0.class)==null)
+ else if(!(entry.getMessage() instanceof Message_1_0)
+ && MessageConverterRegistry.getConverter(entry.getMessage().getClass(), Message_1_0.class)==null)
{
return false;
}
@@ -537,7 +535,7 @@ class
{
if(_queueEntry.isAcquiredBy(Subscription_1_0.this))
{
- _queueEntry.discard();
+ _queueEntry.delete();
}
}
diff --git a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/TxnCoordinatorLink_1_0.java b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/TxnCoordinatorLink_1_0.java
index 10d4811916..3dd9b565ad 100644
--- a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/TxnCoordinatorLink_1_0.java
+++ b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/TxnCoordinatorLink_1_0.java
@@ -104,7 +104,7 @@ public class TxnCoordinatorLink_1_0 implements ReceivingLinkListener, Link_1_0
}
- // Only interested int he amqp-value section that holds the message to the co-ordinator
+ // Only interested int he amqp-value section that holds the message to the coordinator
try
{
List<Section> sections = _sectionDecoder.parseAll(payload);
@@ -182,7 +182,7 @@ public class TxnCoordinatorLink_1_0 implements ReceivingLinkListener, Link_1_0
{
error = new Error();
error.setCondition(AmqpError.NOT_FOUND);
- error.setDescription("Unkown transactionId" + transactionId);
+ error.setDescription("Unknown transactionId" + transactionId);
}
return error;
}
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/filter/RedirectingAuthorisationFilter.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/filter/RedirectingAuthorisationFilter.java
index c5e9890620..184a653fa8 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/filter/RedirectingAuthorisationFilter.java
+++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/filter/RedirectingAuthorisationFilter.java
@@ -53,10 +53,10 @@ public class RedirectingAuthorisationFilter implements Filter
@Override
public void init(FilterConfig config) throws ServletException
{
- String loginlUrl = config.getInitParameter(INIT_PARAM_LOGIN_URL);
- if (loginlUrl != null)
+ String loginUrl = config.getInitParameter(INIT_PARAM_LOGIN_URL);
+ if (loginUrl != null)
{
- _loginUrl = loginlUrl;
+ _loginUrl = loginUrl;
}
ServletContext servletContext = config.getServletContext();
_broker = HttpManagementUtil.getBroker(servletContext);
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/log/LogFileHelper.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/log/LogFileHelper.java
index 4104661017..51256ab5fa 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/log/LogFileHelper.java
+++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/log/LogFileHelper.java
@@ -202,12 +202,12 @@ public class LogFileHelper
String name = file.getName();
if (name.startsWith(baseFileName))
{
- String diplayPath = name;
+ String displayPath = name;
if (!relativePath.equals(""))
{
- diplayPath = relativePath + name;
+ displayPath = relativePath + name;
}
- files.add(new LogFileDetails(diplayPath, appenderName, includeLogFileLocation ? file : null, getMimeType(name), file.length(),
+ files.add(new LogFileDetails(displayPath, appenderName, includeLogFileLocation ? file : null, getMimeType(name), file.length(),
file.lastModified()));
}
}
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java
index ac0d369402..a71d833fc3 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java
+++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java
@@ -445,7 +445,7 @@ public class MessageServlet extends AbstractServlet
}
catch(RuntimeException e)
{
- LOGGER.error("Failure to perform message opertion", e);
+ LOGGER.error("Failure to perform message operation", e);
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
}
}
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
index 08a8676601..ca11bd9465 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
+++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
@@ -104,8 +104,8 @@ public class RestServlet extends AbstractServlet
Class<? extends ConfiguredObject> clazz = (Class<? extends ConfiguredObject>)itemClass;
classes.add(clazz);
}
- Class<? extends ConfiguredObject>[] hierachyClasses = (Class<? extends ConfiguredObject>[])new Class[classes.size()];
- _hierarchy = classes.toArray(hierachyClasses);
+ Class<? extends ConfiguredObject>[] hierarchyClasses = (Class<? extends ConfiguredObject>[])new Class[classes.size()];
+ _hierarchy = classes.toArray(hierarchyClasses);
}
else
{
diff --git a/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/log/LogFileHelperTest.java b/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/log/LogFileHelperTest.java
index 608ef28f02..26e6cddc82 100644
--- a/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/log/LogFileHelperTest.java
+++ b/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/log/LogFileHelperTest.java
@@ -214,9 +214,9 @@ public class LogFileHelperTest extends QpidTestCase
{
assertEquals("Unexpected mime type", LogFileHelper.TEXT_MIME_TYPE, d.getMimeType());
}
- assertEquals("Unexpecte file location", files[j], d.getLocation());
- assertEquals("Unexpecte file size", files[j].length(), d.getSize());
- assertEquals("Unexpecte file last modified date", files[j].lastModified(), d.getLastModified());
+ assertEquals("Unexpected file location", files[j], d.getLocation());
+ assertEquals("Unexpected file size", files[j].length(), d.getSize());
+ assertEquals("Unexpected file last modified date", files[j].lastModified(), d.getLastModified());
}
assertTrue("Gzip log file is not found", gzipFileFound);
}
@@ -235,13 +235,13 @@ public class LogFileHelperTest extends QpidTestCase
assertTrue("No details should be created for non-existing file", details.isEmpty());
}
- public void testFindLogFileDetailsForIncorectlySpecifiedLogFilePath()
+ public void testFindLogFileDetailsForIncorrectlySpecifiedLogFilePath()
{
String[] logFileDisplayedPaths = { "FileAppender\\" + _appendersFiles.get("FileAppender").get(0).getName() };
try
{
_helper.findLogFileDetails(logFileDisplayedPaths);
- fail("Exception is expected for incorectly set path to log file");
+ fail("Exception is expected for incorrectly set path to log file");
}
catch (IllegalArgumentException e)
{
diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/MBeanIntrospector.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/MBeanIntrospector.java
index 79ddc8cfc0..d227b3a02e 100644
--- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/MBeanIntrospector.java
+++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/MBeanIntrospector.java
@@ -47,7 +47,7 @@ class MBeanIntrospector
{
private static final String _defaultAttributeDescription = "Management attribute";
- private static final String _defaultOerationDescription = "Management operation";
+ private static final String _defaultOperationDescription = "Management operation";
private static final String _defaultConstructorDescription = "MBean constructor";
private static final String _defaultMbeanDescription = "Management interface of the MBean";
@@ -221,7 +221,7 @@ class MBeanIntrospector
* Helper method to retrieve the attribute index from the list of attributes.
* @param attribute
* @param list
- * @return attribute index no. -1 if attribtue doesn't exist
+ * @return attribute index no. -1 if attribute doesn't exist
* @throws javax.management.NotCompliantMBeanException
*/
private static int getIndexIfAlreadyExists(MBeanAttributeInfo attribute,
@@ -281,7 +281,7 @@ class MBeanIntrospector
MBeanParameterInfo[] paramsInfo = getParametersInfo(operation.getParameterAnnotations(),
operation.getParameterTypes());
- String operationDesc = _defaultOerationDescription;
+ String operationDesc = _defaultOperationDescription;
int impact = MBeanOperationInfo.UNKNOWN;
if (operation.getAnnotation(MBeanOperation.class) != null)
diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/MBeanInvocationHandlerImpl.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/MBeanInvocationHandlerImpl.java
index 8bc2afb176..0f963df66f 100644
--- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/MBeanInvocationHandlerImpl.java
+++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/MBeanInvocationHandlerImpl.java
@@ -198,7 +198,7 @@ public class MBeanInvocationHandlerImpl implements InvocationHandler
}
else
{
- _logger.error("Unexpected error occured on invoking of " + method + " with arguments " + Arrays.toString(args), targetException);
+ _logger.error("Unexpected error occurred on invoking of " + method + " with arguments " + Arrays.toString(args), targetException);
}
}
diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/ManagedObjectRegistry.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/ManagedObjectRegistry.java
index 2ae0ac7052..d8aea03b36 100644
--- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/ManagedObjectRegistry.java
+++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/ManagedObjectRegistry.java
@@ -29,12 +29,12 @@ import java.io.IOException;
/**
* Handles the registration (and unregistration and so on) of managed objects.
*
- * Managed objects are responsible for exposting attributes, operations and notifications. They will expose
+ * Managed objects are responsible for exporting attributes, operations and notifications. They will expose
* these outside the JVM therefore it is important not to use implementation objects directly as managed objects.
* Instead, creating inner classes and exposing those is an effective way of exposing internal state in a
* controlled way.
*
- * Although we do not explictly use them while targetting Java 5, the enhanced MXBean approach in Java 6 will
+ * Although we do not explicitly use them while targeting Java 5, the enhanced MXBean approach in Java 6 will
* be the obvious choice for managed objects.
*
*/
diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java
index cda32cc3f8..49cb6aa8cb 100644
--- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java
+++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java
@@ -69,7 +69,7 @@ public class QueueMBean extends AMQManagedObject implements ManagedQueue, QueueN
private static final CompositeType MSG_DATA_TYPE;
private static final TabularType MSG_LIST_DATA_TYPE;
private static final CompositeType MSG_CONTENT_TYPE;
- private static final String[] VIEW_MSG_COMPOSIT_ITEM_NAMES_ARRAY = VIEW_MSG_CONTENT_COMPOSITE_ITEM_NAMES_DESC.toArray(
+ private static final String[] VIEW_MSG_COMPOSITE_ITEM_NAMES_ARRAY = VIEW_MSG_CONTENT_COMPOSITE_ITEM_NAMES_DESC.toArray(
new String[VIEW_MSG_CONTENT_COMPOSITE_ITEM_NAMES_DESC.size()]);
static
@@ -396,7 +396,7 @@ public class QueueMBean extends AMQManagedObject implements ManagedQueue, QueueN
Object[] itemValues = { messageId, mimeType, encoding, msgContent };
- return new CompositeDataSupport(MSG_CONTENT_TYPE, VIEW_MSG_COMPOSIT_ITEM_NAMES_ARRAY, itemValues);
+ return new CompositeDataSupport(MSG_CONTENT_TYPE, VIEW_MSG_COMPOSITE_ITEM_NAMES_ARRAY, itemValues);
}
diff --git a/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/UserManagementMBeanTest.java b/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/UserManagementMBeanTest.java
index 8ca6c521eb..5a21bdab7d 100644
--- a/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/UserManagementMBeanTest.java
+++ b/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/UserManagementMBeanTest.java
@@ -120,7 +120,7 @@ public class UserManagementMBeanTest extends TestCase
{
boolean reloadSuccess = _userManagement.reloadData();
- assertTrue("Reload should return true to flag succesful update", reloadSuccess);
+ assertTrue("Reload should return true to flag successful update", reloadSuccess);
verify(_mockProvider).reload();
}
diff --git a/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoReceiver.java b/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoReceiver.java
index 0ab195ced8..fa2711ddde 100644
--- a/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoReceiver.java
+++ b/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoReceiver.java
@@ -243,7 +243,12 @@ final class IoReceiver implements Runnable, Closeable
t instanceof SocketException &&
"Socket is closed".equalsIgnoreCase(t.getMessage());
- return !brokenClose && !sslSocketClosed;
+ boolean recvFailed = closed.get() &&
+ shutdownBroken &&
+ t instanceof SocketException &&
+ "Socket operation on nonsocket: recv failed".equalsIgnoreCase(t.getMessage());
+
+ return !brokenClose && !sslSocketClosed && !recvFailed;
}
public Ticker getTicker()
diff --git a/qpid/java/pom.xml b/qpid/java/pom.xml
index c8875fb39b..54395ed4fe 100644
--- a/qpid/java/pom.xml
+++ b/qpid/java/pom.xml
@@ -135,26 +135,6 @@
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>${log4j-version}</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>${slf4j-version}</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>${slf4j-version}</version>
- <scope>test</scope>
- </dependency>
</dependencies>
<modules>
diff --git a/qpid/java/qpid-test-utils/pom.xml b/qpid/java/qpid-test-utils/pom.xml
index 17422d5378..a0acfec072 100644
--- a/qpid/java/qpid-test-utils/pom.xml
+++ b/qpid/java/qpid-test-utils/pom.xml
@@ -41,6 +41,20 @@
</dependency>
<dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>${slf4j-version}</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>${slf4j-version}</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jms_1.1_spec</artifactId>
<version>1.0</version>
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/server/store/QuotaMessageStore.java b/qpid/java/systests/src/main/java/org/apache/qpid/server/store/QuotaMessageStore.java
index cfa9e26209..7b43cd5022 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/server/store/QuotaMessageStore.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/server/store/QuotaMessageStore.java
@@ -24,7 +24,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicLong;
import org.apache.qpid.AMQStoreException;
-import org.apache.qpid.server.message.EnqueableMessage;
+import org.apache.qpid.server.message.EnqueueableMessage;
import org.apache.qpid.server.message.MessageContentSource;
import org.apache.qpid.server.model.VirtualHost;
@@ -110,13 +110,13 @@ public class
}
@Override
- public void enqueueMessage(TransactionLogResource queue, EnqueableMessage message) throws AMQStoreException
+ public void enqueueMessage(TransactionLogResource queue, EnqueueableMessage message) throws AMQStoreException
{
_storeSizeIncrease.addAndGet(((MessageContentSource)message).getSize());
}
@Override
- public void dequeueMessage(TransactionLogResource queue, EnqueableMessage message) throws AMQStoreException
+ public void dequeueMessage(TransactionLogResource queue, EnqueueableMessage message) throws AMQStoreException
{
_storeSizeIncrease.addAndGet(-((MessageContentSource)message).getSize());
}
@@ -153,9 +153,11 @@ public class
@Override
public void close()
{
- _stateManager.attainState(State.CLOSING);
- _closed.getAndSet(true);
- _stateManager.attainState(State.CLOSED);
+ if (_closed.compareAndSet(false, true))
+ {
+ _stateManager.attainState(State.CLOSING);
+ _stateManager.attainState(State.CLOSED);
+ }
}
@Override
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/server/store/SlowMessageStore.java b/qpid/java/systests/src/main/java/org/apache/qpid/server/store/SlowMessageStore.java
index 85dd0edd45..9cacffa086 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/server/store/SlowMessageStore.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/server/store/SlowMessageStore.java
@@ -26,7 +26,7 @@ import java.util.UUID;
import org.apache.log4j.Logger;
import org.apache.qpid.AMQStoreException;
-import org.apache.qpid.server.message.EnqueableMessage;
+import org.apache.qpid.server.message.EnqueueableMessage;
import org.apache.qpid.server.message.ServerMessage;
import org.apache.qpid.server.model.VirtualHost;
@@ -265,7 +265,7 @@ public class SlowMessageStore implements MessageStore, DurableConfigurationStore
_underlying = underlying;
}
- public void enqueueMessage(TransactionLogResource queue, EnqueableMessage message)
+ public void enqueueMessage(TransactionLogResource queue, EnqueueableMessage message)
throws AMQStoreException
{
doPreDelay("enqueueMessage");
@@ -273,7 +273,7 @@ public class SlowMessageStore implements MessageStore, DurableConfigurationStore
doPostDelay("enqueueMessage");
}
- public void dequeueMessage(TransactionLogResource queue, EnqueableMessage message)
+ public void dequeueMessage(TransactionLogResource queue, EnqueueableMessage message)
throws AMQStoreException
{
doPreDelay("dequeueMessage");
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/PortRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/PortRestTest.java
index bae259ece7..81273589ea 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/PortRestTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/PortRestTest.java
@@ -29,6 +29,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import org.apache.qpid.server.BrokerOptions;
import org.apache.qpid.server.model.AuthenticationProvider;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.Protocol;
@@ -288,4 +289,38 @@ public class PortRestTest extends QpidRestTestCase
Map<String, Object> port = getRestTestHelper().getJsonAsSingletonList("/rest/port/" + portName);
assertEquals("Unexpected auth provider", ANONYMOUS_AUTHENTICATION_PROVIDER, port.get(Port.AUTHENTICATION_PROVIDER));
}
+
+ public void testDefaultAmqpPortIsQuiescedWhenInManagementMode() throws Exception
+ {
+ // restart Broker in management port
+ stopBroker();
+ startBroker(0, true);
+ getRestTestHelper().setUsernameAndPassword(BrokerOptions.MANAGEMENT_MODE_USER_NAME, MANAGEMENT_MODE_PASSWORD);
+
+ String ampqPortName = TestBrokerConfiguration.ENTRY_NAME_AMQP_PORT;
+ Map<String, Object> portData = getRestTestHelper().getJsonAsSingletonList("/rest/port/" + URLDecoder.decode(ampqPortName, "UTF-8"));
+ Asserts.assertPortAttributes(portData, State.QUIESCED);
+ }
+
+ public void testNewPortQuiescedIfPortNumberWasUsed() throws Exception
+ {
+ String ampqPortName = TestBrokerConfiguration.ENTRY_NAME_AMQP_PORT;
+ Map<String, Object> portData = getRestTestHelper().getJsonAsSingletonList("/rest/port/" + URLDecoder.decode(ampqPortName, "UTF-8"));
+ int amqpPort = (Integer)portData.get(Port.PORT);
+
+ int deleteResponseCode = getRestTestHelper().submitRequest("/rest/port/" + ampqPortName, "DELETE", null);
+ assertEquals("Port deletion should be allowed", 200, deleteResponseCode);
+
+ String newPortName = "reused-port";
+ Map<String, Object> attributes = new HashMap<String, Object>();
+ attributes.put(Port.NAME, newPortName);
+ attributes.put(Port.PORT, amqpPort); // reuses port that was previously in use
+ attributes.put(Port.AUTHENTICATION_PROVIDER, TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER);
+
+ int responseCode = getRestTestHelper().submitRequest("/rest/port/" + newPortName, "PUT", attributes);
+ assertEquals("Unexpected response code for port creation", 201, responseCode);
+
+ portData = getRestTestHelper().getJsonAsSingletonList("/rest/port/" + URLDecoder.decode(newPortName, "UTF-8"));
+ Asserts.assertPortAttributes(portData, State.QUIESCED);
+ }
}
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java
index 666449b658..7f41a8eb2e 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java
@@ -281,8 +281,7 @@ public class BrokerACLTest extends QpidRestTestCase
assertPortExists(portName);
}
- // TODO: test disabled until allowing the deletion of active ports outside management mode
- public void DISABLED_testDeletePortAllowed() throws Exception
+ public void testDeletePortAllowed() throws Exception
{
getRestTestHelper().setUsernameAndPassword(ALLOWED_USER, ALLOWED_USER);
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/client/timeouts/SyncWaitDelayTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/client/timeouts/SyncWaitDelayTest.java
index 182cd5ff0c..74afbf7903 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/test/client/timeouts/SyncWaitDelayTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/client/timeouts/SyncWaitDelayTest.java
@@ -57,7 +57,7 @@ public class SyncWaitDelayTest extends QpidBrokerTestCase
final String prefix = "virtualhosts.virtualhost." + VIRTUALHOST;
setVirtualHostConfigurationProperty(prefix + ".type", StandardVirtualHostFactory.TYPE);
- setVirtualHostConfigurationProperty(prefix + ".store.class", "org.apache.qpid.server.store.SlowMessageStore");
+ setVirtualHostConfigurationProperty(prefix + ".store.class", org.apache.qpid.server.store.SlowMessageStore.class.getName());
setVirtualHostConfigurationProperty(prefix + ".store.delays.commitTran.post", String.valueOf(POST_COMMIT_DELAY));
super.setUp();
diff --git a/qpid/python/qpid-python-test b/qpid/python/qpid-python-test
index 13f31fe78b..dfe6a6fc7a 100755
--- a/qpid/python/qpid-python-test
+++ b/qpid/python/qpid-python-test
@@ -633,7 +633,7 @@ if not list_only:
if xmlr:
xmlr.end()
-if failed or skipped:
+if failed:
sys.exit(1)
else:
sys.exit(0)
diff --git a/qpid/python/qpid/compat.py b/qpid/python/qpid/compat.py
index ee3bf919ad..0753cb0461 100644
--- a/qpid/python/qpid/compat.py
+++ b/qpid/python/qpid/compat.py
@@ -54,7 +54,8 @@ class BaseWaiter:
def wait(self, timeout=None):
start = time.time()
if timeout is not None:
- while True:
+ ready = False
+ while timeout > 0:
try:
ready, _, _ = select([self], [], [], timeout)
break
diff --git a/qpid/tools/src/py/qls/efp.py b/qpid/tools/src/py/qls/efp.py
index 8ce160f7c7..3ad8104faa 100644
--- a/qpid/tools/src/py/qls/efp.py
+++ b/qpid/tools/src/py/qls/efp.py
@@ -40,7 +40,7 @@ class EfpManager(object):
print
for ptn in self.partitions:
ptn.report()
- def run(self, args):
+ def run(self, _):
for dir_entry in os.listdir(self.directory):
try:
efpp = EfpPartition(os.path.join(self.directory, dir_entry))
diff --git a/qpid/tools/src/py/qls/err.py b/qpid/tools/src/py/qls/err.py
index 11b12985cb..d56d739915 100644
--- a/qpid/tools/src/py/qls/err.py
+++ b/qpid/tools/src/py/qls/err.py
@@ -43,7 +43,7 @@ class AlreadyLockedError(QlsRecordError):
def __str__(self):
return 'Transactional operation already locked in TransactionMap: ' + QlsRecordError.__str__(self)
-class DatqaSizeError(QlsError):
+class DataSizeError(QlsError):
"""Error class for Data size mismatch"""
def __init__(self, expected_size, actual_size, data_str):
QlsError.__init__(self)
@@ -61,6 +61,13 @@ class DuplicateRecordIdError(QlsRecordError):
def __str__(self):
return 'Duplicate Record Id in enqueue map: ' + QlsRecordError.__str__(self)
+class EnqueueCountUnderflowError(QlsRecordError):
+ """Attempted to decrement enqueue count past 0"""
+ def __init__(self, file_header, record):
+ QlsRecordError.__init__(self, file_header, record)
+ def __str__(self):
+ return 'Enqueue record count underflow: ' + QlsRecordError.__str__(self)
+
class ExternalDataError(QlsRecordError):
"""Data present in Enqueue record when external data flag is set"""
def __init__(self, file_header, record):
@@ -75,6 +82,13 @@ class FirstRecordOffsetMismatchError(QlsRecordError):
def __str__(self):
return 'First record offset mismatch: ' + QlsRecordError.__str__(self) + ' expected_offset=0x%x' % \
self.file_header.first_record_offset
+
+class InvalidClassError(QlsError):
+ """Invalid class name or type"""
+ def __init__(self, class_name):
+ self.class_name = class_name
+ def __str__(self):
+ return 'Invalid class name "%s"' % self.class_name
class InvalidEfpDirectoryNameError(QlsError):
"""Invalid EFP directory name - should be NNNNk, where NNNN is a number (of any length)"""
diff --git a/qpid/tools/src/py/qls/jrnl.py b/qpid/tools/src/py/qls/jrnl.py
index eef885b217..ffd200ddba 100644
--- a/qpid/tools/src/py/qls/jrnl.py
+++ b/qpid/tools/src/py/qls/jrnl.py
@@ -20,6 +20,7 @@
import os
import os.path
import qls.err
+import string
import struct
from time import gmtime, strftime
@@ -46,25 +47,55 @@ class JournalRecoveryManager(object):
self.journals = {}
self.high_rid_counter = HighCounter()
def report(self, print_stats_flag):
- if not self.tpl is None:
+ if self.tpl is not None:
self.tpl.report(print_stats_flag)
for queue_name in sorted(self.journals.keys()):
self.journals[queue_name].report(print_stats_flag)
def run(self, args):
tpl_dir = os.path.join(self.directory, JournalRecoveryManager.TPL_DIR_NAME)
if os.path.exists(tpl_dir):
- self.tpl = Journal(os.path.join(self.directory, tpl_dir), None)
+ self.tpl = Journal(tpl_dir, None)
self.tpl.recover(self.high_rid_counter)
print
jrnl_dir = os.path.join(self.directory, JournalRecoveryManager.JRNL_DIR_NAME)
+ prepared_list = self.tpl.txn_map.get_prepared_list()
if os.path.exists(jrnl_dir):
- for dir_entry in os.listdir(jrnl_dir):
- jrnl = Journal(os.path.join(jrnl_dir, dir_entry), self.tpl.get_outstanding_transaction_list())
+ for dir_entry in sorted(os.listdir(jrnl_dir)):
+ jrnl = Journal(os.path.join(jrnl_dir, dir_entry), prepared_list)
jrnl.recover(self.high_rid_counter)
self.journals[jrnl.get_queue_name()] = jrnl
- if args.txn:
- jrnl.reconcile_transactions(self.high_rid_counter)
print
+ self._reconcile_transactions(prepared_list, args.txn)
+ def _reconcile_transactions(self, prepared_list, txn_flag):
+ print 'Transaction reconciliation report:'
+ print len(prepared_list), 'open transaction(s) found in prepared transaction list:'
+ for xid in prepared_list.keys():
+ commit_flag = prepared_list[xid]
+ if commit_flag is None:
+ status = '[Prepared, neither committed nor aborted - assuming commit]'
+ elif commit_flag:
+ status = '[Prepared, but interrupted during commit phase]'
+ else:
+ status = '[Prepared, but interrupted during abort phase]'
+ print ' ', Utils.format_xid(xid), status
+ if prepared_list[xid] is None: # Prepared, but not committed or aborted
+ enqueue_record = self.tpl.get_txn_map_record(xid)
+ dequeue_record = Utils.create_record('QLSd', DequeueRecord.TXN_COMPLETE_COMMIT_FLAG, \
+ self.tpl.current_journal_file, self.high_rid_counter.get_next(), \
+ enqueue_record.record_id, xid, None)
+ if txn_flag:
+ self.tpl.add_record(dequeue_record)
+ for queue_name in sorted(self.journals.keys()):
+ self.journals[queue_name].reconcile_transactions(prepared_list, txn_flag)
+ if len(prepared_list) > 0:
+ print 'Completing prepared transactions in prepared transaction list:'
+ for xid in prepared_list.keys():
+ print ' ', Utils.format_xid(xid)
+ transaction_record = Utils.create_record('QLSc', 0, self.tpl.current_journal_file, \
+ self.high_rid_counter.get_next(), None, xid, None)
+ if txn_flag:
+ self.tpl.add_record(transaction_record)
+ print
class EnqueueMap(object):
"""
@@ -73,23 +104,29 @@ class EnqueueMap(object):
def __init__(self, journal):
self.journal = journal
self.enq_map = {}
- def add(self, file_header, enq_record, locked_flag):
+ def add(self, journal_file, enq_record, locked_flag):
if enq_record.record_id in self.enq_map:
raise qls.err.DuplicateRecordIdError(self.journal.current_file_header, enq_record)
- self.enq_map[enq_record.record_id] = [file_header.file_num, enq_record, locked_flag]
+ self.enq_map[enq_record.record_id] = [journal_file, enq_record, locked_flag]
def contains(self, rid):
"""Return True if the map contains the given rid"""
return rid in self.enq_map
- def delete(self, file_header, deq_record):
+ def delete(self, journal_file, deq_record):
if deq_record.dequeue_record_id in self.enq_map:
+ enq_list = self.enq_map[deq_record.dequeue_record_id]
del self.enq_map[deq_record.dequeue_record_id]
+ return enq_list
else:
- raise qls.err.RecordIdNotFoundError(file_header, deq_record)
- def lock(self, file_header, dequeue_record):
- if not dequeue_record.dequeue_record_id in self.enq_map:
- raise qls.err.RecordIdNotFoundError(file_header, dequeue_record)
+ raise qls.err.RecordIdNotFoundError(journal_file.file_header, deq_record)
+ def get(self, record_id):
+ if record_id in self.enq_map:
+ return self.enq_map[record_id]
+ return None
+ def lock(self, journal_file, dequeue_record):
+ if dequeue_record.dequeue_record_id not in self.enq_map:
+ raise qls.err.RecordIdNotFoundError(journal_file.file_header, dequeue_record)
self.enq_map[dequeue_record.dequeue_record_id][2] = True
- def report_str(self, show_stats, show_records):
+ def report_str(self, _, show_records):
"""Return a string containing a text report for all records in the map"""
if len(self.enq_map) == 0:
return 'No enqueued records found.'
@@ -99,24 +136,24 @@ class EnqueueMap(object):
rid_list = self.enq_map.keys()
rid_list.sort()
for rid in rid_list:
- file_num, record, locked_flag = self.enq_map[rid]
+ journal_file, record, locked_flag = self.enq_map[rid]
if locked_flag:
lock_str = '[LOCKED]'
else:
lock_str = ''
- rstr += '\n %d:%s %s' % (file_num, record, lock_str)
+ rstr += '\n %d:%s %s' % (journal_file.file_header.file_num, record, lock_str)
else:
rstr += '.'
return rstr
- def unlock(self, file_header, dequeue_record):
+ def unlock(self, journal_file, dequeue_record):
"""Set the transaction lock for a given record_id to False"""
if dequeue_record.dequeue_record_id in self.enq_map:
if self.enq_map[dequeue_record.dequeue_record_id][2]:
self.enq_map[dequeue_record.dequeue_record_id][2] = False
else:
- raise qls.err.RecordNotLockedError(file_header, dequeue_record)
+ raise qls.err.RecordNotLockedError(journal_file.file_header, dequeue_record)
else:
- raise qls.err.RecordIdNotFoundError(file_header, dequeue_record)
+ raise qls.err.RecordIdNotFoundError(journal_file.file_header, dequeue_record)
class TransactionMap(object):
"""
@@ -127,38 +164,40 @@ class TransactionMap(object):
self.enq_map = enq_map
def abort(self, xid):
"""Perform an abort operation for the given xid record"""
- for file_header, record, lock_flag in self.txn_map[xid]:
+ for journal_file, record, _ in self.txn_map[xid]:
if isinstance(record, DequeueRecord):
if self.enq_map.contains(record.dequeue_record_id):
- self.enq_map.unlock(file_header, record)
+ self.enq_map.unlock(journal_file, record)
+ else:
+ journal_file.decr_enq_cnt(record)
del self.txn_map[xid]
- def add(self, file_header, record):
+ def add(self, journal_file, record):
if record.xid is None:
- raise qls.err.NonTransactionalRecordError(file_header, record, 'TransactionMap.add()')
+ raise qls.err.NonTransactionalRecordError(journal_file.file_header, record, 'TransactionMap.add()')
if isinstance(record, DequeueRecord):
try:
- self.enq_map.lock(file_header, record)
+ self.enq_map.lock(journal_file, record)
except qls.err.RecordIdNotFoundError:
# Not in emap, look for rid in tmap - should not happen in practice
txn_op = self._find_record_id(record.xid, record.dequeue_record_id)
if txn_op != None:
if txn_op[2]:
- raise qls.err.AlreadyLockedError(file_header, record)
+ raise qls.err.AlreadyLockedError(journal_file.file_header, record)
txn_op[2] = True
if record.xid in self.txn_map:
- self.txn_map[record.xid].append([file_header, record, False]) # append to existing list
+ self.txn_map[record.xid].append([journal_file, record, False]) # append to existing list
else:
- self.txn_map[record.xid] = [[file_header, record, False]] # create new list
+ self.txn_map[record.xid] = [[journal_file, record, False]] # create new list
def commit(self, xid):
"""Perform a commit operation for the given xid record"""
mismatch_list = []
- for file_header, record, lock in self.txn_map[xid]:
+ for journal_file, record, lock in self.txn_map[xid]:
if isinstance(record, EnqueueRecord):
- self.enq_map.add(file_header, record, lock) # Transfer enq to emap
+ self.enq_map.add(journal_file, record, lock) # Transfer enq to emap
else:
if self.enq_map.contains(record.dequeue_record_id):
- self.enq_map.unlock(file_header, record)
- self.enq_map.delete(file_header, record)
+ self.enq_map.unlock(journal_file, record)
+ self.enq_map.delete(journal_file, record)[0].decr_enq_cnt(record)
else:
mismatch_list.append('0x%x' % record.dequeue_record_id)
del self.txn_map[xid]
@@ -166,27 +205,47 @@ class TransactionMap(object):
def contains(self, xid):
"""Return True if the xid exists in the map; False otherwise"""
return xid in self.txn_map
- def delete(self, file_header, transaction_record):
+ def delete(self, journal_file, transaction_record):
"""Remove a transaction record from the map using either a commit or abort header"""
if transaction_record.magic[-1] == 'c':
return self.commit(transaction_record.xid)
if transaction_record.magic[-1] == 'a':
self.abort(transaction_record.xid)
else:
- raise qls.err.InvalidRecordTypeError(file_header, transaction_record, 'delete from Transaction Map')
+ raise qls.err.InvalidRecordTypeError(journal_file.file_header, transaction_record,
+ 'delete from Transaction Map')
+ def get(self, xid):
+ if xid in self.txn_map:
+ return self.txn_map[xid]
+ return None
+ def get_prepared_list(self):
+ """
+ Prepared list is a map of xid(key) to one of None, True or False. These represent respectively:
+ None: prepared, but neither committed or aborted (interrupted before commit or abort)
+ False: prepared and aborted (interrupted before abort complete)
+ True: prepared and committed (interrupted before commit complete)
+ """
+ prepared_list = {}
+ for xid in self.get_xid_list():
+ for _, record, _ in self.txn_map[xid]:
+ if isinstance(record, EnqueueRecord):
+ prepared_list[xid] = None
+ else:
+ prepared_list[xid] = record.is_transaction_complete_commit()
+ return prepared_list
def get_xid_list(self):
return self.txn_map.keys()
- def report_str(self, show_stats, show_records):
+ def report_str(self, _, show_records):
"""Return a string containing a text report for all records in the map"""
if len(self.txn_map) == 0:
return 'No outstanding transactions found.'
rstr = '%d outstanding transaction(s)' % len(self.txn_map)
if show_records:
rstr += ':'
- for xid, list in self.txn_map.iteritems():
- rstr += '\n %s containing %d operations:' % (Utils.format_xid(xid), len(list))
- for file_header, record, locked_flag in list:
- rstr += '\n %d:%s' % (file_header.file_num, record)
+ for xid, op_list in self.txn_map.iteritems():
+ rstr += '\n %s containing %d operations:' % (Utils.format_xid(xid), len(op_list))
+ for journal_file, record, _ in op_list:
+ rstr += '\n %d:%s' % (journal_file.file_header.file_num, record)
else:
rstr += '.'
return rstr
@@ -202,48 +261,48 @@ class TransactionMap(object):
return txn_op
return None
+class JournalStatistics(object):
+ """Journal statistics"""
+ def __init__(self):
+ self.total_record_count = 0
+ self.transient_record_count = 0
+ self.filler_record_count = 0
+ self.enqueue_count = 0
+ self.dequeue_count = 0
+ self.transaction_record_count = 0
+ self.transaction_enqueue_count = 0
+ self.transaction_dequeue_count = 0
+ self.transaction_commit_count = 0
+ self.transaction_abort_count = 0
+ self.transaction_operation_count = 0
+ def __str__(self):
+ fstr = 'Total record count: %d\n' + \
+ 'Transient record count: %d\n' + \
+ 'Filler_record_count: %d\n' + \
+ 'Enqueue_count: %d\n' + \
+ 'Dequeue_count: %d\n' + \
+ 'Transaction_record_count: %d\n' + \
+ 'Transaction_enqueue_count: %d\n' + \
+ 'Transaction_dequeue_count: %d\n' + \
+ 'Transaction_commit_count: %d\n' + \
+ 'Transaction_abort_count: %d\n' + \
+ 'Transaction_operation_count: %d\n'
+ return fstr % (self.total_record_count,
+ self.transient_record_count,
+ self.filler_record_count,
+ self.enqueue_count,
+ self.dequeue_count,
+ self.transaction_record_count,
+ self.transaction_enqueue_count,
+ self.transaction_dequeue_count,
+ self.transaction_commit_count,
+ self.transaction_abort_count,
+ self.transaction_operation_count)
+
class Journal(object):
"""
Instance of a Qpid Linear Store (QLS) journal.
"""
- class JournalStatistics(object):
- """Journal statistics"""
- def __init__(self):
- self.total_record_count = 0
- self.transient_record_count = 0
- self.filler_record_count = 0
- self.enqueue_count = 0
- self.dequeue_count = 0
- self.transaction_record_count = 0
- self.transaction_enqueue_count = 0
- self.transaction_dequeue_count = 0
- self.transaction_commit_count = 0
- self.transaction_abort_count = 0
- self.transaction_operation_count = 0
- def __str__(self):
- fstr = 'Total record count: %d\n' + \
- 'Transient record count: %d\n' + \
- 'Filler_record_count: %d\n' + \
- 'Enqueue_count: %d\n' + \
- 'Dequeue_count: %d\n' + \
- 'Transaction_record_count: %d\n' + \
- 'Transaction_enqueue_count: %d\n' + \
- 'Transaction_dequeue_count: %d\n' + \
- 'Transaction_commit_count: %d\n' + \
- 'Transaction_abort_count: %d\n' + \
- 'Transaction_operation_count: %d\n'
- return fstr % (self.total_record_count,
- self.transient_record_count,
- self.filler_record_count,
- self.enqueue_count,
- self.dequeue_count,
- self.transaction_record_count,
- self.transaction_enqueue_count,
- self.transaction_dequeue_count,
- self.transaction_commit_count,
- self.transaction_abort_count,
- self.transaction_operation_count)
-
def __init__(self, directory, xid_prepared_list):
self.directory = directory
self.queue_name = os.path.basename(directory)
@@ -252,12 +311,25 @@ class Journal(object):
self.file_num_itr = None
self.enq_map = EnqueueMap(self)
self.txn_map = TransactionMap(self.enq_map)
- self.current_file_header = None
+ self.current_journal_file = None
self.first_rec_flag = None
- self.statistics = Journal.JournalStatistics()
- self.warnings = []
+ self.statistics = JournalStatistics()
self.xid_prepared_list = xid_prepared_list # This is None for the TPL instance only
- def get_outstanding_transaction_list(self):
+ def add_record(self, record):
+ if isinstance(record, EnqueueRecord) or isinstance(record, DequeueRecord):
+ if record.xid_size > 0:
+ self.txn_map.add(self.current_journal_file, record)
+ else:
+ self.enq_map.add(self.current_journal_file, record, False)
+ elif isinstance(record, TransactionRecord):
+ self.txn_map.delete(self.current_journal_file, record)
+ else:
+ raise qls.err.InvalidRecordTypeError(self.current_journal_file, record, 'add to Journal')
+ def get_enq_map_record(self, rid):
+ return self.enq_map.get(rid)
+ def get_txn_map_record(self, xid):
+ return self.txn_map.get(xid)
+ def get_outstanding_txn_list(self):
return self.txn_map.get_xid_list()
def get_queue_name(self):
return self.queue_name
@@ -271,15 +343,28 @@ class Journal(object):
#print '[No more files in journal]' # DEBUG
#print #DEBUG
pass
- def reconcile_transactions(self, high_rid_counter):
- if not self.xid_prepared_list is None: # ie This is not the TPL instance
- print 'Reconcile outstanding prepared transactions:'
- for xid in self.txn_map.get_xid_list():
- if xid in self.xid_prepared_list:
- print ' Committing', Utils.format_xid(xid)
- self.txn_map.commit(xid)
+ def reconcile_transactions(self, prepared_list, txn_flag):
+ xid_list = self.txn_map.get_xid_list()
+ if len(xid_list) > 0:
+ print self.queue_name, 'contains', len(xid_list), 'open transaction(s):'
+ for xid in xid_list:
+ if xid in prepared_list.keys():
+ commit_flag = prepared_list[xid]
+ if commit_flag is None:
+ print ' ', Utils.format_xid(xid), '- Assuming commit after prepare'
+ if txn_flag:
+ self.txn_map.commit(xid)
+ elif commit_flag:
+ print ' ', Utils.format_xid(xid), '- Completing interrupted commit operation'
+ if txn_flag:
+ self.txn_map.commit(xid)
else:
- print ' Aborting', Utils.format_xid(xid)
+ print ' ', Utils.format_xid(xid), '- Completing interrupted abort operation'
+ if txn_flag:
+ self.txn_map.abort(xid)
+ else:
+ print ' ', Utils.format_xid(xid), '- Aborting, not in prepared transaction list'
+ if txn_flag:
self.txn_map.abort(xid)
def report(self, print_stats_flag):
print 'Journal "%s":' % self.queue_name
@@ -287,13 +372,9 @@ class Journal(object):
print str(self.statistics)
print self.enq_map.report_str(True, True)
print self.txn_map.report_str(True, True)
- print 'file_num p_no efp journal_file'
- print '-------- ---- ----- ------------'
+ JournalFile.report_header()
for file_num in sorted(self.files.keys()):
- file_hdr = self.files[file_num]
- comment = '<uninitialized>' if file_hdr.file_num == 0 else ''
- print '%8d %4d %4dk %s %s' % (file_num, file_hdr.partition_num, file_hdr.efp_data_size_kb,
- os.path.basename(file_hdr.file_handle.name), comment)
+ self.files[file_num].report()
print
#--- protected functions ---
def _analyze_files(self):
@@ -305,22 +386,26 @@ class Journal(object):
args = Utils.load_args(file_handle, RecordHeader)
file_hdr = FileHeader(*args)
file_hdr.init(file_handle, *Utils.load_args(file_handle, FileHeader))
- if not file_hdr.is_valid(file_hdr):
+ if not file_hdr.is_header_valid(file_hdr):
break
file_hdr.load(file_handle)
+ if not file_hdr.is_valid():
+ break
Utils.skip(file_handle, file_hdr.file_header_size_sblks * Utils.SBLK_SIZE)
- self.files[file_hdr.file_num] = file_hdr
+ self.files[file_hdr.file_num] = JournalFile(file_hdr)
self.file_num_list = sorted(self.files.keys())
self.file_num_itr = iter(self.file_num_list)
def _check_file(self):
- if not self.current_file_header is None and not self.current_file_header.is_end_of_file():
+ if self.current_journal_file is not None and not self.current_journal_file.file_header.is_end_of_file():
return
self._get_next_file()
- self.current_file_header.file_handle.seek(self.current_file_header.first_record_offset)
+ fhdr = self.current_journal_file.file_header
+ fhdr.file_handle.seek(fhdr.first_record_offset)
def _get_next_file(self):
- if not self.current_file_header is None:
- if not self.current_file_header.file_handle.closed: # sanity check, should not be necessary
- self.current_file_header.file_handle.close()
+ if self.current_journal_file is not None:
+ file_handle = self.current_journal_file.file_header.file_handle
+ if not file_handle.closed: # sanity check, should not be necessary
+ file_handle.close()
file_num = 0
try:
while file_num == 0:
@@ -329,18 +414,18 @@ class Journal(object):
pass
if file_num == 0:
raise qls.err.NoMoreFilesInJournalError(self.queue_name)
- self.current_file_header = self.files[file_num]
+ self.current_journal_file = self.files[file_num]
self.first_rec_flag = True
- print self.current_file_header
- #print '[file_num=0x%x]' % self.current_file_header.file_num #DEBUG
+ print self.current_journal_file.file_header
+ #print '[file_num=0x%x]' % self.current_journal_file.file_num #DEBUG
def _get_next_record(self, high_rid_counter):
self._check_file()
- this_record = Utils.load(self.current_file_header.file_handle, RecordHeader)
- if not this_record.is_valid(self.current_file_header):
+ this_record = Utils.load(self.current_journal_file.file_header.file_handle, RecordHeader)
+ if not this_record.is_header_valid(self.current_journal_file.file_header):
return False
if self.first_rec_flag:
- if this_record.file_offset != self.current_file_header.first_record_offset:
- raise qls.err.FirstRecordOffsetMismatchError(self.current_file_header, this_record)
+ if this_record.file_offset != self.current_journal_file.file_header.first_record_offset:
+ raise qls.err.FirstRecordOffsetMismatchError(self.current_journal_file.file_header, this_record)
self.first_rec_flag = False
high_rid_counter.check(this_record.record_id)
self.statistics.total_record_count += 1
@@ -355,65 +440,96 @@ class Journal(object):
print this_record
else:
self.statistics.filler_record_count += 1
- Utils.skip(self.current_file_header.file_handle, Utils.DBLK_SIZE)
+ Utils.skip(self.current_journal_file.file_header.file_handle, Utils.DBLK_SIZE)
return True
def _handle_enqueue_record(self, enqueue_record):
- start_file_header = self.current_file_header
- while enqueue_record.load(self.current_file_header.file_handle):
+ start_journal_file = self.current_journal_file
+ while enqueue_record.load(self.current_journal_file.file_header.file_handle):
self._get_next_file()
+ if not enqueue_record.is_valid(self.current_journal_file):
+ return
if enqueue_record.is_external() and enqueue_record.data != None:
- raise qls.err.ExternalDataError(self.current_file_header, enqueue_record)
+ raise qls.err.ExternalDataError(self.current_journal_file.file_header, enqueue_record)
if enqueue_record.is_transient():
self.statistics.transient_record_count += 1
return
if enqueue_record.xid_size > 0:
- self.txn_map.add(start_file_header, enqueue_record)
+ self.txn_map.add(start_journal_file, enqueue_record)
self.statistics.transaction_operation_count += 1
self.statistics.transaction_record_count += 1
self.statistics.transaction_enqueue_count += 1
else:
- self.enq_map.add(start_file_header, enqueue_record, False)
+ self.enq_map.add(start_journal_file, enqueue_record, False)
+ start_journal_file.incr_enq_cnt()
self.statistics.enqueue_count += 1
#print enqueue_record, # DEBUG
def _handle_dequeue_record(self, dequeue_record):
- while dequeue_record.load(self.current_file_header.file_handle):
+ start_journal_file = self.current_journal_file
+ while dequeue_record.load(self.current_journal_file.file_header.file_handle):
self._get_next_file()
+ if not dequeue_record.is_valid(self.current_journal_file):
+ return
if dequeue_record.xid_size > 0:
if self.xid_prepared_list is None: # ie this is the TPL
dequeue_record.transaction_prepared_list_flag = True
- self.txn_map.add(self.current_file_header, dequeue_record)
+ elif not self.enq_map.contains(dequeue_record.dequeue_record_id):
+ dequeue_record.warnings.append('NOT IN EMAP') # Only for non-TPL records
+ self.txn_map.add(start_journal_file, dequeue_record)
self.statistics.transaction_operation_count += 1
self.statistics.transaction_record_count += 1
self.statistics.transaction_dequeue_count += 1
else:
try:
- self.enq_map.delete(self.current_file_header, dequeue_record)
+ self.enq_map.delete(start_journal_file, dequeue_record)[0].decr_enq_cnt(dequeue_record)
except qls.err.RecordIdNotFoundError:
- pass # TODO: handle missing enqueue warning here
+ dequeue_record.warnings.append('NOT IN EMAP')
self.statistics.dequeue_count += 1
#print dequeue_record, # DEBUG
def _handle_transaction_record(self, transaction_record):
- while transaction_record.load(self.current_file_header.file_handle):
+ while transaction_record.load(self.current_journal_file.file_header.file_handle):
self._get_next_file()
+ if not transaction_record.is_valid(self.current_journal_file):
+ return
if transaction_record.magic[-1] == 'a':
self.statistics.transaction_abort_count += 1
else:
self.statistics.transaction_commit_count += 1
if self.txn_map.contains(transaction_record.xid):
- mismatched_rids = self.txn_map.delete(self.current_file_header, transaction_record)
- if mismatched_rids != None and len(mismatched_rids) > 0:
- self.warnings.append('WARNING: transactional dequeues not found in enqueue map; rids=%s' %
- mismatched_rids)
+ self.txn_map.delete(self.current_journal_file, transaction_record)
else:
- self.warnings.append('WARNING: %s not found in transaction map' % \
- Utils.format_xid(transaction_record.xid))
+ transaction_record.warnings.append('NOT IN TMAP')
# if transaction_record.magic[-1] == 'c': # commits only
# self._txn_obj_list[hdr.xid] = hdr
self.statistics.transaction_record_count += 1
#print transaction_record, # DEBUG
def _load_data(self, record):
while not record.is_complete:
- record.load(self.current_file_header.file_handle)
+ record.load(self.current_journal_file.file_handle)
+
+class JournalFile(object):
+ def __init__(self, file_header):
+ self.file_header = file_header
+ self.enq_cnt = 0
+ self.deq_cnt = 0
+ def incr_enq_cnt(self):
+ self.enq_cnt += 1
+ def decr_enq_cnt(self, record):
+ if self.enq_cnt <= self.deq_cnt:
+ raise qls.err.EnqueueCountUnderflowError(self.file_header, record)
+ self.deq_cnt += 1
+ def get_enq_cnt(self):
+ return self.enq_cnt - self.deq_cnt
+ def is_outstanding_enq(self):
+ return self.enq_cnt > self.deq_cnt
+ @staticmethod
+ def report_header():
+ print 'file_num enq_cnt p_no efp journal_file'
+ print '-------- ------- ---- ----- ------------'
+ def report(self):
+ comment = '<uninitialized>' if self.file_header.file_num == 0 else ''
+ print '%8d %7d %4d %4dk %s %s' % (self.file_header.file_num, self.get_enq_cnt(), self.file_header.partition_num,
+ self.file_header.efp_data_size_kb,
+ os.path.basename(self.file_header.file_handle.name), comment)
class RecordHeader(object):
FORMAT = '<4s2H2Q'
@@ -424,6 +540,7 @@ class RecordHeader(object):
self.user_flags = user_flags
self.serial = serial
self.record_id = record_id
+ self.warnings = []
def load(self, file_handle):
pass
@staticmethod
@@ -433,7 +550,7 @@ class RecordHeader(object):
def is_empty(self):
"""Return True if this record is empty (ie has a magic of 0x0000"""
return self.magic == '\x00'*4
- def is_valid(self, file_header):
+ def is_header_valid(self, file_header):
"""Check that this record is valid"""
if self.is_empty():
return False
@@ -447,6 +564,11 @@ class RecordHeader(object):
#print #DEBUG
return False
return True
+ def _get_warnings(self):
+ warn_str = ''
+ for warn in self.warnings:
+ warn_str += '<%s>' % warn
+ return warn_str
def __str__(self):
"""Return string representation of this header"""
if self.is_empty():
@@ -460,12 +582,13 @@ class RecordHeader(object):
class RecordTail(object):
FORMAT = '<4sL2Q'
- def __init__(self, file_handle):
- self.file_offset = file_handle.tell()
+ def __init__(self, file_handle): # TODO - clumsy, only allows reading from disk. Move all disk stuff to laod()
+ self.file_offset = file_handle.tell() if file_handle is not None else 0
self.complete = False
self.read_size = struct.calcsize(RecordTail.FORMAT)
- self.fbin = file_handle.read(self.read_size)
- if len(self.fbin) >= self.read_size:
+ self.fbin = file_handle.read(self.read_size) if file_handle is not None else None
+ self.valid_flag = None
+ if self.fbin is not None and len(self.fbin) >= self.read_size:
self.complete = True
self.xmagic, self.checksum, self.serial, self.record_id = struct.unpack(RecordTail.FORMAT, self.fbin)
def load(self, file_handle):
@@ -477,14 +600,27 @@ class RecordTail(object):
self.xmagic, self.checksum, self.serial, self.record_id = struct.unpack(RecordTail.FORMAT, self.fbin)
def is_complete(self):
return self.complete
+ def is_valid(self, record):
+ if self.valid_flag is None:
+ if not self.complete:
+ return False
+ self.valid_flag = Utils.inv_str(self.xmagic) == record.magic and \
+ self.serial == record.serial and \
+ self.record_id == record.record_id
+ # TODO: When we can verify the checksum, add this here
+ return self.valid_flag
def __str__(self):
"""Return a string representation of the this RecordTail instance"""
+ if self.valid_flag is not None:
+ if not self.valid_flag:
+ return '[INVALID RECORD TAIL]'
magic = Utils.inv_str(self.xmagic)
- return '[%c cs=0x%x rid=0x%x]' % (magic[-1].upper(), self.checksum, self.record_id)
+ magic_char = magic[-1].upper() if magic[-1] in string.printable else '?'
+ return '[%c cs=0x%08x rid=0x%x]' % (magic_char, self.checksum, self.record_id)
class FileHeader(RecordHeader):
FORMAT = '<2H4x5QH'
- def init(self, file_handle, file_offset, file_header_size_sblks, partition_num, efp_data_size_kb,
+ def init(self, file_handle, _, file_header_size_sblks, partition_num, efp_data_size_kb,
first_record_offset, timestamp_sec, timestamp_ns, file_num, queue_name_len):
self.file_handle = file_handle
self.file_header_size_sblks = file_header_size_sblks
@@ -503,6 +639,20 @@ class FileHeader(RecordHeader):
return (self.file_header_size_sblks * Utils.SBLK_SIZE) + (self.efp_data_size_kb * 1024)
def is_end_of_file(self):
return self.file_handle.tell() >= self.get_file_size()
+ def is_valid(self):
+ if not RecordHeader.is_header_valid(self, self):
+ return False
+ if self.file_handle is None or self.file_header_size_sblks == 0 or self.partition_num == 0 or \
+ self.efp_data_size_kb == 0 or self.first_record_offset == 0 or self.timestamp_sec == 0 or \
+ self.timestamp_ns == 0 or self.file_num == 0:
+ return False
+ if self.queue_name_len == 0:
+ return False
+ if self.queue_name is None:
+ return False
+ if len(self.queue_name) != self.queue_name_len:
+ return False
+ return True
def timestamp_str(self):
"""Get the timestamp of this record in string format"""
time = gmtime(self.timestamp_sec)
@@ -510,14 +660,16 @@ class FileHeader(RecordHeader):
return strftime(fstr, time)
def __str__(self):
"""Return a string representation of the this FileHeader instance"""
- return '%s fnum=%d fro=0x%08x p=%d s=%dk t=%s' % (RecordHeader.__str__(self), self.file_num, self.first_record_offset,
- self.partition_num, self.efp_data_size_kb, self.timestamp_str())
+ return '%s fnum=%d fro=0x%08x p=%d s=%dk t=%s %s' % (RecordHeader.__str__(self), self.file_num,
+ self.first_record_offset, self.partition_num,
+ self.efp_data_size_kb, self.timestamp_str(),
+ self._get_warnings())
class EnqueueRecord(RecordHeader):
FORMAT = '<2Q'
EXTERNAL_FLAG_MASK = 0x20
TRANSIENT_FLAG_MASK = 0x10
- def init(self, file_offset, xid_size, data_size):
+ def init(self, _, xid_size, data_size):
self.xid_size = xid_size
self.data_size = data_size
self.xid = None
@@ -529,6 +681,21 @@ class EnqueueRecord(RecordHeader):
return self.user_flags & EnqueueRecord.EXTERNAL_FLAG_MASK > 0
def is_transient(self):
return self.user_flags & EnqueueRecord.TRANSIENT_FLAG_MASK > 0
+ def is_valid(self, journal_file):
+ if not RecordHeader.is_header_valid(self, journal_file.file_header):
+ return False
+ if not (self.xid_complete and self.data_complete):
+ return False
+ if self.xid_size > 0 and len(self.xid) != self.xid_size:
+ return False
+ if self.data_size > 0 and len(self.data) != self.data_size:
+ return False
+ if self.xid_size > 0 or self.data_size > 0:
+ if self.record_tail is None:
+ return False
+ if not self.record_tail.is_valid(self):
+ return False
+ return True
def load(self, file_handle):
"""Return True when load is incomplete and must be called again with new file handle"""
self.xid, self.xid_complete = Utils.load_data(file_handle, self.xid, self.xid_size)
@@ -545,7 +712,10 @@ class EnqueueRecord(RecordHeader):
self.record_tail = RecordTail(file_handle)
elif not self.record_tail.is_complete():
self.record_tail.load(file_handle) # Continue loading partially loaded tail
- return not self.record_tail.is_complete()
+ if self.record_tail.is_complete():
+ self.record_tail.is_valid(self)
+ else:
+ return True
return False
def _print_flags(self):
"""Utility function to decode the flags field in the header and print a string representation"""
@@ -566,13 +736,14 @@ class EnqueueRecord(RecordHeader):
record_tail_str = ''
else:
record_tail_str = str(self.record_tail)
- return '%s %s %s %s %s' % (RecordHeader.__str__(self), Utils.format_xid(self.xid, self.xid_size),
- Utils.format_data(self.data_size, self.data), record_tail_str, self._print_flags())
+ return '%s %s %s %s %s %s' % (RecordHeader.__str__(self), Utils.format_xid(self.xid, self.xid_size),
+ Utils.format_data(self.data_size, self.data), record_tail_str,
+ self._print_flags(), self._get_warnings())
class DequeueRecord(RecordHeader):
FORMAT = '<2Q'
TXN_COMPLETE_COMMIT_FLAG = 0x10
- def init(self, file_offset, dequeue_record_id, xid_size):
+ def init(self, _, dequeue_record_id, xid_size):
self.dequeue_record_id = dequeue_record_id
self.xid_size = xid_size
self.transaction_prepared_list_flag = False
@@ -581,6 +752,19 @@ class DequeueRecord(RecordHeader):
self.record_tail = None
def is_transaction_complete_commit(self):
return self.user_flags & DequeueRecord.TXN_COMPLETE_COMMIT_FLAG > 0
+ def is_valid(self, journal_file):
+ if not RecordHeader.is_header_valid(self, journal_file.file_header):
+ return False
+ if self.xid_size > 0:
+ if not self.xid_complete:
+ return False
+ if self.xid_size > 0 and len(self.xid) != self.xid_size:
+ return False
+ if self.record_tail is None:
+ return False
+ if not self.record_tail.is_valid(self):
+ return False
+ return True
def load(self, file_handle):
"""Return True when load is incomplete and must be called again with new file handle"""
self.xid, self.xid_complete = Utils.load_data(file_handle, self.xid, self.xid_size)
@@ -591,7 +775,10 @@ class DequeueRecord(RecordHeader):
self.record_tail = RecordTail(file_handle)
elif not self.record_tail.is_complete():
self.record_tail.load(file_handle)
- return not self.record_tail.is_complete()
+ if self.record_tail.is_complete():
+ self.record_tail.is_valid(self)
+ else:
+ return True
return False
def _print_flags(self):
"""Utility function to decode the flags field in the header and print a string representation"""
@@ -607,16 +794,27 @@ class DequeueRecord(RecordHeader):
record_tail_str = ''
else:
record_tail_str = str(self.record_tail)
- return '%s %s drid=0x%x %s %s' % (RecordHeader.__str__(self), Utils.format_xid(self.xid, self.xid_size),
- self.dequeue_record_id, record_tail_str, self._print_flags())
+ return '%s %s drid=0x%x %s %s %s' % (RecordHeader.__str__(self), Utils.format_xid(self.xid, self.xid_size),
+ self.dequeue_record_id, record_tail_str, self._print_flags(),
+ self._get_warnings())
class TransactionRecord(RecordHeader):
FORMAT = '<Q'
- def init(self, file_offset, xid_size):
+ def init(self, _, xid_size):
self.xid_size = xid_size
self.xid = None
self.xid_complete = False
self.record_tail = None
+ def is_valid(self, journal_file):
+ if not RecordHeader.is_header_valid(self, journal_file.file_header):
+ return False
+ if not self.xid_complete or len(self.xid) != self.xid_size:
+ return False
+ if self.record_tail is None:
+ return False
+ if not self.record_tail.is_valid(self):
+ return False
+ return True
def load(self, file_handle):
"""Return True when load is incomplete and must be called again with new file handle"""
self.xid, self.xid_complete = Utils.load_data(file_handle, self.xid, self.xid_size)
@@ -627,7 +825,10 @@ class TransactionRecord(RecordHeader):
self.record_tail = RecordTail(file_handle)
elif not self.record_tail.is_complete():
self.record_tail.load(file_handle)
- return not self.record_tail.is_complete()
+ if self.record_tail.is_complete():
+ self.record_tail.is_valid(self)
+ else:
+ return True
return False
def __str__(self):
"""Return a string representation of the this TransactionRecord instance"""
@@ -635,14 +836,40 @@ class TransactionRecord(RecordHeader):
record_tail_str = ''
else:
record_tail_str = str(self.record_tail)
- return '%s %s %s' % (RecordHeader.__str__(self), Utils.format_xid(self.xid, self.xid_size), record_tail_str)
+ return '%s %s %s %s' % (RecordHeader.__str__(self), Utils.format_xid(self.xid, self.xid_size), record_tail_str,
+ self._get_warnings())
class Utils(object):
"""Class containing utility functions for dealing with the journal"""
DBLK_SIZE = 128
RECORD_VERSION = 2
SBLK_SIZE = 4096
- __printchars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ '
+ @staticmethod
+ def create_record(magic, uflags, journal_file, record_id, dequeue_record_id, xid, data):
+ record_class = _CLASSES.get(magic[-1])
+ record = record_class(0, magic, Utils.RECORD_VERSION, uflags, journal_file.file_header.serial, record_id)
+ xid_length = len(xid) if xid is not None else 0
+ if isinstance(record, EnqueueRecord):
+ data_length = len(data) if data is not None else 0
+ record.init(None, xid_length, data_length)
+ elif isinstance(record, DequeueRecord):
+ record.init(None, dequeue_record_id, xid_length)
+ elif isinstance(record, TransactionRecord):
+ record.init(None, xid_length)
+ else:
+ raise qls.err.InvalidClassError(record.__class__.__name__)
+ if xid is not None:
+ record.xid = xid
+ record.xid_complete = True
+ if data is not None:
+ record.data = data
+ record.data_complete = True
+ record.record_tail = RecordTail(None)
+ record.record_tail.xmagic = Utils.inv_str(magic)
+ record.record_tail.checksum = 0 # TODO: when we can calculate checksums, add this here
+ record.record_tail.serial = record.serial
+ record.record_tail.record_id = record.record_id
+ return record
@staticmethod
def format_data(dsize, data):
"""Format binary data for printing"""
@@ -727,7 +954,7 @@ class Utils(object):
hstr += '\\%02x' % ord(in_str[index])
return hstr
@staticmethod
- def _hex_split_str(in_str, split_size = 50):
+ def _hex_split_str(in_str):#, split_size = 50):
"""Split a hex string into two parts separated by an ellipsis"""
# if len(in_str) <= split_size:
# return Utils._hex_str(in_str, 0, len(in_str))
@@ -736,7 +963,10 @@ class Utils(object):
@staticmethod
def _is_printable(in_str):
"""Return True if in_str in printable; False otherwise."""
- return in_str.strip(Utils.__printchars) == ''
+ for this_char in in_str:
+ if this_char not in string.printable:
+ return False
+ return True
@staticmethod
def _rem_bytes_in_block(file_handle, block_size):
"""Return the remaining bytes in a block"""
diff --git a/qpid/tools/src/py/qpid_qls_analyze.py b/qpid/tools/src/py/qpid_qls_analyze.py
index b00a91cfca..165d41fe95 100755
--- a/qpid/tools/src/py/qpid_qls_analyze.py
+++ b/qpid/tools/src/py/qpid_qls_analyze.py
@@ -36,8 +36,9 @@ class QqpdLinearStoreAnalyzer(object):
def __init__(self):
self.args = None
self._process_args()
- self.efp_manager = efp.EfpManager(self.args.qls_dir)
- self.jrnl_recovery_mgr = jrnl.JournalRecoveryManager(self.args.qls_dir)
+ self.qls_dir = os.path.abspath(self.args.qls_dir)
+ self.efp_manager = efp.EfpManager(self.qls_dir)
+ self.jrnl_recovery_mgr = jrnl.JournalRecoveryManager(self.qls_dir)
def _analyze_efp(self):
self.efp_manager.run(self.args)
def _analyze_journals(self):