Commit Graph

2360 Commits

Author SHA1 Message Date
Clebert Suconic c801c00e33 ARTEMIS-2662 Using previously stored encodeSize on page record offset
There is no guarantee that the encodeSize size is the same in AMQP right after read.
As the protocol may add additional bytes right after decoded such as header, extra properties.. etc.
2020-03-17 05:55:25 -04:00
Clebert Suconic ff58e6e306 ARTEMIS-2658 Smoke tests for Paging on AMQP and Core 2020-03-16 16:43:31 -04:00
Justin Bertram 31f00fda36 NO-JIRA some tests for auto-create & FQQN w/JMS 2020-03-16 09:25:55 -05:00
Justin Bertram 91eeacca31 ARTEMIS-2659 fix race in AMQP test 2020-03-16 09:02:51 -05:00
Clebert Suconic c3128aa144 ARTEMIS-2642 Fixing Drain Timeout Issue on AMQP
The drain control has to immediately flush
otherwise a next flow control event may remove the previous status from Proton.
So, this really cannot wait the next executor, and it has to be done immediately.
2020-03-11 11:44:42 -04:00
brusdev aa8d598a35 ARTEMIS-2650 The delivering count is wrong after reconnecting an openwire client
Fix the conversion of the message id from the CORE messages.
Fix the credits acquired for acknowledges related to undelivered messages.
2020-03-11 11:14:29 -04:00
Justin Bertram 0cb3c96b3e ARTEMIS-1194 fix test 2020-03-10 10:32:30 -04:00
Justin Bertram ec958d7d27 NO-JIRA fix errant test directory 2020-03-09 21:08:30 -05:00
Andrius Dagys f1474ce7c8 ARTEMIS-1194 Add SOCKS support
Add a Netty socks proxy handler during channel initialisation to allow
Artemis to communicate via a SOCKS proxy. Supports SOCKS version 4a & 5.
Even if enabled in configuration, the proxy will not be used when the
target host is a loopback address.
2020-03-07 21:35:38 +00:00
brusdev 45fe604859 Revert "ARTEMIS-2644 Include client id into non durable subscriber queue name"
This reverts commit be0fa47d63.
2020-03-07 20:11:40 +00:00
Justin Bertram e9ee9956bd ARTEMIS-2639 lost notif props with OpenWire+divert
Historically speaking, all message properties starting with AMQ HDR
would not be passed to OpenWire messages. However, that blocked the
properties from management notifications so ARTEMIS-1209 was raised and
the solution there was to pass properties that started with _AMQ *if*
the consumer was connected to the management notification address.
However, in this case messages are diverted to a different address so
this check fails and the properties are removed. My solution will be to
check the message itself to see if it has the _AMQ_NotifType property
(which all notification messages do) rather than checking where the
consumer is connected.
2020-03-05 21:38:51 -05:00
Justin Bertram ed7fee6d9c ARTEMIS-2643 allow masked password when resetting via mgmnt 2020-03-05 21:38:09 -05:00
Justin Bertram 339ccccbd7 ARTEMIS-2631 address orphaned from JMS temp queue 2020-03-05 21:36:35 -05:00
Justin Bertram 766f88c22a ARTEMIS-2629 ensure queue auto-delete after expiration 2020-03-05 21:35:35 -05:00
Justin Bertram 8c259116a8 NO-JIRA clarify & verify web socket support for MQTT 2020-03-05 21:34:53 -05:00
brusdev be0fa47d63 ARTEMIS-2644 Include client id into non durable subscriber queue name 2020-03-05 19:09:03 +01:00
Bartosz Spyrko-Smietanko eb41be78f3 [ARTEMIS-2176] RA connection properties are not propagated to XARecoveryConfig 2020-03-03 08:56:18 +00:00
Clebert Suconic 0cac669840 ARTEMIS-2637 Making UDP client discovery resilient
In case there is a hardware, firewal or any other thing making the UDP connection to go deaf
we will now reopen the connection in an attempt to go over possible issues.

This is also improving locking around DiscoveryGroup initial connection.
2020-02-28 11:54:27 -05:00
brusdev de113e47ae ARTEMIS-2625 testListConsumers failing on IBM JDK 8
Fix JmxServerControlTest.testListConsumers.
2020-02-25 12:19:05 -06:00
Clebert Suconic ddd8ed4402 ARTEMIS-1975 Real Large Message support into AMQP
This is a Large commit where I am refactoring largeMessage Body out of CoreMessage
which is now reused with AMQP.

I had also to fix Reference Counting to fix how Large Messages are Acked

And I also had to make sure Large Messages are transversing correctly when in cluster.
2020-02-25 15:25:01 +01:00
Justin Bertram d0758f34f6 ARTEMIS-2624 auto-create expiry resources 2020-02-20 17:44:56 -05:00
Justin Bertram b76f3b3a0d ARTEMIS-2587 auto-create dead-letter resources
This is a reimplementation of the IndividualDeadLetterQueueStrategy
from 5.x in a way that makes sense with the Artemis addressing model.
2020-02-20 17:44:56 -05:00
Christopher L. Shannon (cshannon) 3966e47338 ARTEMIS-2613: Add support for DivertBindings for federated addresses
This will allow federated addresses to create remote consumers based on
the existing of divert bindings and matching queue bindings
2020-02-17 12:15:18 -05:00
Clebert Suconic 990890d228 ARTEMIS-2622 Making replica resilient to closed pages 2020-02-14 14:01:52 -05:00
Justin Bertram a8cf6b04b4 ARTEMIS-2607 interceptor returns false but processing continues 2020-02-14 13:23:05 -05:00
Justin Bertram 72429e1e49 ARTEMIS-2325 ack handler being invoked twice 2020-02-14 13:12:49 -05:00
Justin Bertram b76700c18f NO-JIRA fix JMSMessageConsumerTest.testTimedOutWaitingForWriteLogOnConsumer 2020-02-14 13:12:49 -05:00
Justin Bertram daae7e750a ARTEMIS-2619 allow disabling STOMP 'server' header 2020-02-12 19:38:38 -06:00
Francesco Nigro 5897909dc9 ARTEMIS-2617 use core pools to reduce GC on journal loading 2020-02-12 13:29:51 -05:00
Clebert Suconic 0487e712e2 NO-JIRA some Wait.assertEquals 2020-02-10 09:25:06 -05:00
brusdev b71178b4fb ARTEMIS-2600 Update mqtt-client version to 1.16 for tests 2020-02-06 12:21:54 -06:00
Wei Yang 1d1f0625db ARTEMIS-2544 Remove rolledback PageTransactionInfo to free up memory 2020-01-23 11:23:14 +08:00
Francesco Nigro fa0c187ae6 ARTEMIS-2602 Reduce number of copies for non JDBC Journal 2020-01-18 18:45:12 +01:00
Francesco Nigro b10d765139 ARTEMIS-2602 load surviving records into SparseArrayLinkedList 2020-01-17 14:31:52 -05:00
brusdev caa19ab144 ARTEMIS-2598 Update netty version to 4.1.43.Final
Update netty version to 4.1.43.Final and netty-tcnative version to 2.0.26.Final.
Change restricted-security-client.policy because Netty 4.1.43.Final requires
access to two more files: /etc/os-release and /usr/lib/os-release.
2020-01-17 14:28:31 -05:00
brusdev 1716655214 ARTEMIS-2597 Memory Leak when closing AMQP Consumers in the context
Remove server senders on remote link close.
2020-01-15 09:56:21 +01:00
Clebert Suconic 3fff744de4 NO-JIRA Adding Queue Delete Delay on openWireTestsuite
Some open wire tests will close a consumer and open it right away.

The removal of the queue is asynchronous, having this kind of behaviour may lead to issues
after we moved the QueueManager to be asynchronous.
2020-01-10 11:31:53 -05:00
Justin Bertram 29554acc56 NO-JIRA Bumping extra-tests pom 2020-01-10 09:07:13 -06:00
Justin Bertram 97735ca72c [maven-release-plugin] prepare for next development iteration 2020-01-10 09:00:58 -06:00
Justin Bertram 25a947f6cb [maven-release-plugin] prepare release 2.11.0 2020-01-10 08:57:46 -06:00
Clebert Suconic 757d38f53c NO-JIRA Fixing Stomp Tests after QueueManager change 2020-01-10 00:08:11 -05:00
Clebert Suconic e397a17796 ARTEMIS-2592 Fixing DeadLock between deleteMessages and depage
This was happening through purge
2020-01-09 19:41:14 -06:00
Francesco Nigro 6cc5749c7b ARTEMIS-2569 LinkedListImpl tests should not rely on the GC mechanism 2020-01-09 13:40:43 -05:00
Clebert Suconic 534d8b4719 NO-JIRA Happy new year! 2020-01-08 20:44:05 -05:00
Justin Bertram 0513393091 NO-JIRA fix tests after SSL resource regen 2020-01-08 13:04:17 -05:00
Keith Wall 39cd9d56f6 ARTEMIS-2497: [AMQP] Allow handling of the reject disposition to be configured. 2020-01-08 11:56:23 -05:00
Justin Bertram 81c83e05fa NO-JIRA regenerate expired SSL test resources 2020-01-08 14:09:33 +08:00
Justin Bertram 3e343db736 ARTEMIS-2580 fix tests 2020-01-08 14:00:04 +08:00
Christopher L. Shannon (cshannon) fe66506139 ARTEMIS-2565 - Add plugin support for Federated Queues/Addresses
Add a new interface called ActiveMQServerFederationPlugin to allow
customization of the federated queue/address feature of the broker
2020-01-06 06:38:35 -05:00
Clebert Suconic 13278cc45f ARTEMIS-2581 Duplicate Detection on AMQP should be configurable
There is an optimization in AMQP, that properties are only parsed over demand.

It happens that after ARTEMIS-2294 (commit 2dd0671698),
every send would request for the property on the message, resulting the properties to always be parsed upon send.
Even when there's no use of application properties.
2019-12-19 17:54:21 -05:00
Justin Bertram 8d8eaebb65 ARTEMIS-2580 support pluggable SSL TrustManagerFactory 2019-12-19 17:53:52 -05:00
Clebert Suconic 7efebc97c6 NO-JIRA moving OpenWire test under ./integration 2019-12-18 09:59:34 -05:00
Justin Bertram 2a452bd7a3 ARTEMIS-2578 clarify storage capacity messages
This is a surprisingly large change just to fix some log messages, but
the changes were necessary in order to get the relevant data to where it
was being logged. The fact that the data wasn't readily available is
probably why it wasn't logged in the first place.
2019-12-17 20:27:10 -05:00
Wei Yang 9c928377c9 NO-JIRA minor changes on test 2019-12-17 09:40:31 -05:00
brusdev b666cb495b ARTEMIS-2572 The retryMessages remove all paged messages
Add a paged message to the tail, when the QueueIterateAction doesn't handle it, to avoid removing unhandled paged message. Move the refRemoved calls from the QueueIterateActions to the iterQueue to fix the queue stats.
2019-12-10 13:00:16 +01:00
Clebert Suconic 108ee5d24b NO-JIRA Fixing intermittent failure 2019-12-03 16:25:00 -05:00
Clebert Suconic c699b5ed1d NO-JIRA Fixing intermittent failure 2019-12-03 15:49:58 -05:00
Clebert Suconic 0ce1487252 NO-JIRA Fixing wrong assumption on ClientTestBase 2019-12-03 15:29:34 -05:00
Justin Bertram 8614ca1167 ARTEMIS-2564 retryMessages incorrectly removes msgs 2019-12-03 14:24:01 -05:00
Keith Wall 7bd710520d ARTEMIS-2494: [AMQP] Allow Modified disposition to be used signal address full to a sending peer 2019-12-03 11:05:23 -05:00
Clebert Suconic a302c255cc NO-JIRA fixing tests that will fail eventually for the lack of fsync 2019-12-03 10:02:20 -05:00
Clebert Suconic 1ba1de4248 This closes #2906 2019-12-03 09:59:07 -05:00
Howard Gao 044319da05 ARTEMIS-2560 Duplicate amqp messages over cluster
When AMQPMessages are redistributed from one node to
another, the internal property of message is not
cleaned up and this causes a message to be routed
to a same queue more than once, causing duplicated
messages.
2019-12-03 09:46:28 -05:00
Clebert Suconic 0b1afd35dc ARTEMIS-2421 Using ActiveMQScheduledComponent 2019-11-26 16:15:06 -05:00
Bas Elzinga e12f3ddc6f ARTEMIS-2421 periodic journal lock evaluation
If a broker loses its file lock on the journal and doesn't notice (e.g.
network connection failure to an NFS mount) then it can continue to run
after its backup activates resulting in split-brain.

This commit implements periodic journal lock evaluation so that if a live
server loses its lock it will automatically restart itself.
2019-11-26 11:14:56 -05:00
Clebert Suconic 506c03a884 ARTEMIS-2559 Clear Transaction out of ResourceManager in case of failure 2019-11-22 10:30:29 -05:00
Clebert Suconic 91cbbb8698 ARTEMIS-2559 Connection failure should rollback pending XA TX 2019-11-21 17:52:45 -05:00
Christopher L. Shannon (cshannon) fb54707e2d ARTEMIS-2549 - Add Downstream support to Federation
This commit introduces the ability to configure a downstream connection
for federation.  This works by sending information to the remote broker
and that broker will parse the message and create a new upstream back
to the original broker.
2019-11-20 08:47:16 -05:00
Andy Taylor 0ab75b9968 ARTEMIS-2554 - Queue control browse broken with large messages
https://issues.apache.org/jira/browse/ARTEMIS-2554
2019-11-18 10:36:18 +00:00
michael.pearce f6401d81b5 ARTEMIS-2547 fix AMQP Client reconnect fails on broker stop start
Add unit test
Add fix to clear clientids when server is stopped.
2019-11-11 12:33:13 +00:00
Justin Bertram 566579f96f NO-JIRA make OpenWire test more robust 2019-11-08 13:08:00 -05:00
Justin Bertram 200bee1a5f NO-JIRA make a few AMQP tests more robust 2019-11-08 13:07:08 -05:00
brusdev 83e2595618 ARTEMIS-2534 Deleting addresses auto created on configuration reload
Skip the deletion of address's and queue's auto created on configuration
reload.
2019-11-05 16:05:27 -05:00
Justin Bertram ea0047a1b4 ARTEMIS-2504 fix divert test 2019-11-05 10:54:44 -06:00
Justin Bertram 84067d8fef ARTEMIS-2504 implement retroactive addresses
A new feature to preserve messages sent to an address for queues that will be
created on the address in the future. This is essentially equivalent to the
"retroactive consumer" feature from 5.x. However, it's implemented in a way
that fits with the address model of Artemis.
2019-10-28 09:01:42 -04:00
Justin Bertram c0e77e96d1 ARTEMIS-2529 update address-settings mngmnt 2019-10-28 09:01:42 -04:00
Christopher L. Shannon (cshannon) ad0581bf76 ARTEMIS-2531: Fix filter in FederatedQueue to prevent infinite consumer
creation in a circular or bidrectional setup
2019-10-25 14:26:46 -04:00
Christopher L. Shannon (cshannon) 1aed3f9dd6 ARTEMIS-2526 - Update ActiveMQServerImpl to call correct
beforeDestroyQueue hook
2019-10-24 16:20:08 -04:00
Wei Yang 89698b9dbc ARTEMIS-2524 Remove message from map in LVQ if it's deleted/moved/expired/changed 2019-10-21 20:46:13 -04:00
brusdev 98746a20a1 ARTEMIS-2523 Deprecate the parameter failoverOnInitialConnection
The parameter failoverOnInitialConnection wouldn't seem to be used and
makes no sense any more, because the connectors are retried in a loop.
So someone can just add the backup in the initial connection.
2019-10-21 07:04:21 +02:00
Howard Gao 6177d32774 ARTEMIS-2513 Large message's copy may be interfered by other threads
In LargeMessageImpl.copy(long) it need to open the underlying
file in order to read and copy bytes into the new copied message.
However there is a chance that another thread can come in and close
the file in the middle, making the copy failed
with "channel is null" error.

This is happening in cases where a large message is sent to a jms
topic (multicast address). During delivery it to multiple
subscribers, some consumer is doing delivery and closed the
underlying file after. Some other consumer is rolling back
the messages and eventually move it to DLQ (which will call
the above copy method). So there is a chance this bug being hit on.
2019-10-14 15:59:31 -04:00
Clebert Suconic 149e26075b NO-JIRA Replacing assertEquals(queue.getCount) by Wait.asserEquals on a test 2019-10-11 08:59:33 -04:00
Clebert Suconic b0497ed724 ARTEMIS-2517 JMX will be shutdown after failback 2019-10-10 14:44:55 -04:00
brusdev 28d1a53630 ARTEMIS-2508 Crititical analyser trigger shutdown if removeAllMessages
The crititical analyser trigger the broker shutdown if try to
removeAllMessages with a huge queue. The iterQueue is split so as
not to keep the lock too time.
2019-10-09 11:41:00 -04:00
Clebert Suconic abb7d16b92 NO-JIRA Improving SessionTest reliability
This test was eventually failing
Improving the assertions and loops
2019-10-09 11:18:58 -04:00
Justin Bertram 2992daaeb1 ARTEMIS-2514 dupl cache leak w/clustered temp q 2019-10-08 17:11:38 -04:00
Howard Gao d02da18dab ARTEMIS-2506 MQTT doesn't cleanup underlying connection for bad clients
When a bad MQTT clients drop its connection without proper closing
it the broker doesn't close the underlying physical connection.
2019-09-27 19:41:15 +08:00
Clebert Suconic 63b93499d2 ARTEMIS-2500 Fixing test after test rename 2019-09-23 20:43:54 -04:00
Howard Gao a2504288c6 ARTEMIS-2500 CoreMessage doesn't make a ful copy of its props on moveHeadersAndProperties
When CoreMessage is doing copyHeadersAndProperties() it doesn't
make a full copy of its properties (a TypedProperties object).
It will cause problem when multiple threads/parties are modifying the
properties of the copied messages from the same message.

This will be particular bad if the message is a large message
where moveHeadersAndProperties is being used.
2019-09-23 20:06:41 -04:00
Clebert Suconic 91f4d0a633 [maven-release-plugin] prepare for next development iteration 2019-09-23 11:19:54 -04:00
Clebert Suconic 86a975fdad [maven-release-plugin] prepare release 2.10.1 2019-09-23 11:19:42 -04:00
Francesco Nigro f51c799ac0 ARTEMIS-1811 NIO Seq File should use RandomAccessFile with heap buffers
It use RandomAccessFile to allow using heap buffers without additional
copies and/or leaks of direct buffers, as performed by FileChannel JDK
implementation (see https://bugs.openjdk.java.net/browse/JDK-8147468)
2019-09-23 10:55:20 -04:00
Clebert Suconic 70c2200c54 ARTEMIS-2496 Revert catch up with zero-copy, as it's causing issues into some integration usage
Revert "ARTEMIS-2336 Use zero copy to replicate journal/page/large message file"

This reverts commit 85b93f0883.
2019-09-18 11:55:23 -04:00
Clebert Suconic b846f356bb ARTEMIS-2462 Applying fix on delete SNF queue after ScaleDown 2019-09-17 14:05:00 -04:00
Howard Gao dd20f89bd0 ARTEMIS-2462 re-applying tests on SNF Delete Queue 2019-09-17 14:05:00 -04:00
Clebert Suconic d55ec37195 Revert "ARTEMIS-2462 Allow store-forward queue to be deleted afte scaledown"
This reverts commit 397cef699a.
2019-09-17 14:05:00 -04:00
Howard Gao 05a93314cd ARTEMIS-2493 OpenWire session close doesn't cleanup consumer refs
When an openwire client closes the session, the broker doesn't
clean up its server consumer references even though the core
consumers are closed. This results a leak when sessions within
a connection are created and closed when the connection keeps open.
2019-09-17 09:44:25 +08:00
Justin Bertram c56b8fb9d2 ARTEMIS-2489 ring q fails w/concurrent producers 2019-09-13 10:08:32 -05:00
Clebert Suconic 0acf191e21 ARTEMIS-2484 Ignoring QuorumFailOverLiveVotesTest.testQuorumVotingLiveNotDead 2019-09-11 14:50:02 -04:00
Andy Taylor 42327a490a ARTEMIS-2480 - Reloading configuration can kill broker
https://issues.apache.org/jira/browse/ARTEMIS-2480
2019-09-11 17:37:11 +02:00
Clebert Suconic 793a45f35a NO-JIRA Speeding up JMSNonDestructiveTest 2019-09-11 09:37:03 -04:00
Wei Yang e43c5390cf ARTEMIS-2478 Expired message not removed in non destructive queue 2019-09-11 09:37:03 -04:00
Clebert Suconic 5373c60891 ARTEMIS-2474 Retry interval ignored on Backup Connectors 2019-09-10 15:03:01 -04:00
Clebert Suconic 60b62940b9 ARTEMIS-2479 Initial connection will not work with infinite retry and multiple nodes 2019-09-10 15:02:27 -04:00
Wei Yang da6fedf6ae ARTEMIS-2472 Persistent and delivering size not right in replacement of lvq message 2019-09-06 14:26:30 -04:00
Francesco Nigro 9413925957 ARTEMIS-2473 RemoteQueueBindingImpl should check for empty filters 2019-09-06 14:26:03 -04:00
Clebert Suconic 93dcd27b39 NO-JIRA Fixing intermittent failure on BasicXaTest
It would fail on cannot destroy queue
as the failure could be asynchronous, introducing a quick race, which is acceptable
you just need to make sure the async operation will finish before removing the queue.

Fix is to introduce a Wait.assertEquals call.
2019-09-06 10:28:14 -04:00
Wei Yang 4a61d2dc76 ARTEMIS-2380 Fix delivering message in the case of consume close 2019-09-04 11:02:16 +08:00
Howard Gao 397cef699a ARTEMIS-2462 Allow store-forward queue to be deleted afte scaledown
After a node is scaled down to a target node, the sf queue in the
target node is not deleted.

Normally this is fine because may be reused when the scaled down
node is back up.

However in cloud environment many drainer pods can be created and
then shutdown in order to drain the messages to a live node (pod).
Each drainer pod will have a different node-id. Over time the sf
queues in the target broker node grows and those sf queues are
no longer reused.

Although use can use management API/console to manually delete
them, it would be nice to have an option to automatically delete
those sf queue/address resources after scale down.

In this PR it added a boolean configuration parameter called
cleanup-sf-queue to scale down policy so that if the parameter
is "true" the broker will send a message to the
target broker signalling that the SF queue is no longer
needed and should be deleted.

If the parameter is not defined (default) or is "false"
the scale down won't remove the sf queue.
2019-08-28 21:16:38 +08:00
Clebert Suconic 3a58387bd3 NO-JIRA Fixing ScaleDownDirectTest and ReconnectTest 2019-08-27 16:52:02 -04:00
Clebert Suconic 3293aba119 NO-JIRA Fixing SharedNothingReplicationFlowControlTest::testSendPages 2019-08-27 14:52:16 -04:00
Clebert Suconic 5d9395ddb9 NO-JIRA Fixing intermittent failure on QuorumFailOverLiveVotesTest 2019-08-27 11:28:01 -04:00
Clebert Suconic b52dec085a NO-JIRA Bumping extra-tests pom 2019-08-26 10:44:23 -04:00
Clebert Suconic 5016f69daa [maven-release-plugin] prepare for next development iteration 2019-08-26 10:42:13 -04:00
Clebert Suconic f092d5396a [maven-release-plugin] prepare release 2.10.0 2019-08-26 10:42:01 -04:00
Justin Bertram 354430ce36 ARTEMIS-2457 speed up ring q tests 2019-08-26 10:06:52 -04:00
gtully b20c2593e9 ARTEMIS-2433 add ExternalCertificateLoginModule to surface a SASL EXTERNAL identity (subjectDN) to JAAS. 2019-08-25 23:57:20 -04:00
Justin Bertram 449f0323ec ARTEMIS-2364 collision avoidance for redelivery
This is a feature from 5.x implemented via
https://issues.apache.org/jira/browse/AMQ-747.
2019-08-25 23:36:09 -04:00
Justin Bertram 51c2022f38 ARTEMIS-2457 implement ring queue 2019-08-25 23:29:44 -04:00
Clebert Suconic c929d34eed ARTEMIS-2454 Fixing body re-encoding 2019-08-25 23:03:53 -04:00
Clebert Suconic 3d7042d49a NO-JIRA fixing tests 2019-08-22 13:53:28 -04:00
Wei Yang 510339423e ARTEMIS-2459 Fix err in the replacement of a non-destructively consumed LVQ message 2019-08-22 11:50:28 -04:00
Clebert Suconic f2557c27ba NO-JIRA fixing checkstyle 2019-08-22 07:34:53 -04:00
Clebert Suconic b828de502c fix 2019-08-21 21:57:02 -04:00
Clebert Suconic a057f82a87 NO-JIRA Fixing test 2019-08-21 17:07:30 -04:00
Michael Pearce 25d0b511ce ARTEMIS-2458 Fix AMQP Transaction Session Close Ordering 2019-08-21 09:34:08 -04:00
Clebert Suconic 61eb379741 ARTEMIS-2458 Fix AMQP Transaction Rollback Ordering by using a sorted add 2019-08-21 09:34:07 -04:00
Clebert Suconic a48e2c9b6f ARTEMIS-2451 Some additional tests 2019-08-20 10:55:58 -04:00
Justin Bertram 2fe565f378 ARTEMIS-2451 eliminate knownDestinations cache 2019-08-20 10:49:44 -04:00
Wei Yang a644c498da ARTEMIS-2450 page-size-bytes should not be greater than Integer.MAX_VALUE 2019-08-19 17:18:06 +01:00
Premysl Srubar 3d631f06d0 Treat empty providerUrl string same way as null value. 2019-08-19 16:53:53 +01:00
yang wei 448449c88e ARTEMIS-2368 Fix races on closing consumer 2019-08-19 16:49:06 +01:00
yang wei 76d420590f ARTEMIS-2399 Improve performance when there are a lot of subscribers 2019-08-19 16:43:44 +01:00
Timothy Bish 448f72738b ARTEMIS-2437 Allow extended types in annotations in AMQP to Core
When converting from AMQP to core and back again support annotations that
aren't able to be placed into Core message properties by storing the bytes
from encoding the types to AMQP encodings and then decoding them again
when converting back into AMQP messages.

Requires update to proton-j 0.33.2 for encoding fix
2019-08-18 22:13:35 -04:00
Clebert Suconic 144c21fb6f ARTEMIS-2453 Fixing deadLock between destroyQueue and removeAddressInfo 2019-08-15 11:38:57 -04:00
Justin Bertram 9d44c40037 ARTEMIS-2449 limit size of producer details
The core server session tracks details about producers like what
addresses have had messages sent to them, the most recent message ID
sent to each address, and the number of messages sent to each address.
This information is made available to users via the
listProducersInfoAsJSON method on the various management interfaces
(JMX, web console, etc.). However, in situations where a server session
is long lived (e.g. in a pool) and is used to send to many different
addresses (e.g. randomly named temporary JMS queues) this info can
accumulate to a problematic degree. Therefore, we should limit the
amount of producer details saved by the session.
2019-08-08 14:24:28 -04:00
Justin Bertram d379cda374 ARTEMIS-2447 allow mapping admin to manage in LDAP plugin 2019-08-06 15:27:18 -05:00
Clebert Suconic 205a1399e7 ARTEMIS-2440 Call timeout should retry the connection asynchronously 2019-08-05 12:12:33 -04:00
Clebert Suconic cd723aa528 ARTEMIS-2440 Connection.fail on sendBlock should be asynchronous
This is following up on ARTEMIS-2327.
2019-08-02 16:37:12 -04:00
Justin Bertram 3a68288db6 ARTEMIS-2439 ServerSessionImpl leaks addr names 2019-08-02 13:27:02 -04:00
Clebert Suconic 73e2d4709d ARTEMIS-2438 Activation cleaning 2019-08-01 16:58:00 -04:00
Clebert Suconic b1c3f52cc8 NO-JIRA test fix (Adding Wait clause) 2019-08-01 16:15:18 -04:00
Wei Yang edace8845e ARTEMIS-2414 Sync before closing file in case data loss 2019-07-29 14:44:26 -04:00
Clebert Suconic 28ea18ea79 ARTEMIS-2434 Improving Consumer/Queue Delivery Lock
This is a less invasive improvement then the one I proposed at PR #2772
or commit 7507a9fd4b
2019-07-27 11:37:45 -04:00
Clebert Suconic 8a1f267bd5 Revert "ARTEMIS-2423 Improving Consumer/Queue Delivery lock"
This reverts commit 7507a9fd4b.
2019-07-27 10:45:08 -04:00
Clebert Suconic 7507a9fd4b ARTEMIS-2423 Improving Consumer/Queue Delivery lock 2019-07-26 15:05:51 -04:00
Clebert Suconic 622f857c88 NO-JIRA Speed up CoreClientTest 2019-07-26 13:54:55 -04:00
Clebert Suconic 707e036a90 NO-JIRA Teardown connection on stomp connections test class 2019-07-26 13:54:55 -04:00
Clebert Suconic 70e6c17bd9 NO-JIRA Speeding up MQTTTest 2019-07-26 13:54:55 -04:00
Clebert Suconic 5c05cce109 NO-JIRA Another fix on FailoverTest::testTimeoutOnFailoverConsumer 2019-07-26 13:54:55 -04:00
Wei Yang b92cde165b ARTEMIS-2430 Avoid data loss when live page cache evicted 2019-07-24 19:42:49 +08:00
Clebert Suconic c9f2833863 NO-JIRA Fixing FailoverTest::testTimeoutOnFailoverConsumer
this test was basically broken, it was silently failing as it was ignoring results and taking a long time to finish.
As this test is multiplied along many options (Netty, Replicated, JDBC) this was taking considerable extra time
on the testsuite.
2019-07-23 16:11:58 -04:00
Clebert Suconic 6ece896aee NO-JIRA Fixing broken test at StompV11Test
StompV11Test::testConnection was leaking a NettyConnector
what was leaving threads running. This would then fail ThreadLeakCheckRule
2019-07-23 11:46:33 -04:00
Maarten Boekhold 7f4f4a5021 ARTEMIS-2412 Allow CF configuration through JNDI references
Most connection related properties, like the SSL ones, currently
have to be encoded in the brokerURL. When configuring connections
purely through JNDI bindings, this is not always desireable.
This commit allows one to configure all properties included
in TransportConstants.ALLOWABLE_CONNECTOR_KEYS to be listed separately
in the JNDI bindings. These properties are then zipped into any
provided brokerURL. For properties that appear in both places,
the one specified separately in the JNDI bindings takes priority.

This commit should not affect any configuration other than those
configure through JNDIReferenceFactory.
2019-07-22 10:44:50 -04:00
Jiri Danek 52e7b9d57d ARTEMIS-2429 Fix order of arguments to registerQueueGauge and two related typos
Test is also adjusted to test for the changes made.
2019-07-22 13:28:22 +02:00
Clebert Suconic 200b3e1033 NO-JIRA Simple test fixes 2019-07-19 17:51:04 -04:00
Clebert Suconic 736045d73b ARTEMIS-2401 Improving tests and a few fixes around Address.pause 2019-07-18 16:29:52 -04:00
Emmanuel Hugonnet 3aa3fa777f ARTEMIS-2401 Implement the Pause method for an Address
Adding support to pause an Address and all its bound queues.

Jira: https://issues.apache.org/jira/browse/ARTEMIS-2401
2019-07-18 16:29:52 -04:00
yang wei 99158ccd3d ARTEMIS-2418 Race conditions between cursor movement and page writing 2019-07-18 10:30:26 -04:00
Clebert Suconic 9d7bbf4ea3 NO-JIRA Making sudo a requirement for NetworkFailureFailoverTest
When setting up a new Jenkins CI, it's required to add sudoer to have this test working
otherwise it will silently pass.
2019-07-17 12:21:17 -04:00
Clebert Suconic 0585db7421 ARTEMIS-2409 Adding Compatibility test for hornetQ selector client 2019-07-17 11:35:16 -04:00
Tomas Hofman 1c45d1758d ARTEMIS-2409 Convert HornetQ field names in consumer/queue selector strings 2019-07-17 11:34:04 -04:00
Clebert Suconic 27b151bb0e NO-JIRA moving Wait and removing some duplicate code on artemis-junit module 2019-07-16 22:30:59 -04:00
brusdev 29bbb94b5e ARTEMIS-2408 Too many opened FDs after server stops
Wait netty event loop group shutdown to avoid too many opened FDs after
server stops, when netty configuration is used. Clear server
activateCallbacks to avoid reactivation of previous nodeManager and
consequent FD leaks on restart. Fix LargeServerMessageImpl.copy to avoid
FD leaks when a large message expiry or it is sent to DLA. Terminate
HawtDispatcher global queue to avoid pipes and eventpolls leaks after a
MQTT test.

cherry-picking commit 9617058ba0649af4eea15ce8793f86de827c4b7f
NO-JIRA adding check for open FD on the testsuite

cherry-picking commit 0facb7ddf4d3baa14a3add4290684aff7fd46053
NO-JIRA addressing connections leaks on integration tests
2019-07-16 13:36:42 -04:00
yang wei 85b93f0883 ARTEMIS-2336 Use zero copy to replicate journal/page/large message file 2019-07-15 23:51:42 +01:00
Dmitry Volodin dbb3a90fe6 ARTEMIS-2322: Expose Queue.getRate() data as JMX metric 2019-07-15 16:34:31 -04:00
yang wei fa46647818 ARTEMIS-2425 Message loss due to writing incomplete page file 2019-07-12 19:52:43 +08:00
Howard Gao c66d62e4b0 ARTEMIS-2390 JMSMessageID header can be null when messages are cross-protocol
If a jms client (be it openwire, amqp, or core jms) receives a message that
is from a different protocol, the JMSMessageID maybe null when the
jms client expects it.
2019-06-27 10:26:34 -04:00
yang wei 665a69886e ARTEMIS-2350 Fix ClassNotFoundException while invoking ActiveMQServerControlImpl::listConsumers 2019-06-25 14:06:12 -05:00
Justin Bertram 886ae7bfc5 ARTEMIS-2395 empty address.txt causes NPE 2019-06-21 15:09:08 -04:00
Justin Bertram 3b82cad024 ARTEMIS-2391 static address may be auto-deleted 2019-06-21 15:01:36 -04:00
Clebert Suconic d1edb8d6e2 ARTEMIS-2338 Adding Wait clauses on QuorumFailOverLiveVotesTest 2019-06-21 09:21:52 -04:00
Clebert Suconic 9a32286883 ARTEMIS-2381 making setBrokerURL public as requested by Camel Devs 2019-06-19 11:35:28 -05:00
brusdev 9d12ad6501 ARTEMIS-2385 Log header for rejecting message with too large header
Use warning level to add in the log the ID and debug level to add in the
log the message header of rejecting message with too large header.
2019-06-19 11:26:33 -05:00
Francesco Nigro f8d3a8f2f2 ARTEMIS-2354 Improve compatibillity of tests with JDK 11 2019-06-19 10:53:53 -05:00
Andy e82d95fff6 ARTEMIS-2338 - Live server does not shutdown when using vote-on-replication-failure
https://issues.apache.org/jira/browse/ARTEMIS-2338
2019-06-19 10:26:10 -05:00
Andy 6a2e964f5b ARTEMIS-2386 - use internal session for management queues for QOS2
https://issues.apache.org/jira/browse/ARTEMIS-2386
2019-06-18 08:21:39 +01:00
gtully d1add00b00 ARTEMIS-2378 respect openwire removeInfo lastSequenceId when dealing with delivery count 2019-06-17 22:32:33 -04:00
Francesco Nigro 4445261f34 ARTEMIS-2382 Reclaimer doesn't need to be instantiatable 2019-06-17 22:31:30 -04:00
Justin Bertram 75a68511fa NO-JIRA make ExceptionListenerForConnectionTimedOutExceptionTest more robust 2019-06-13 11:02:40 -05:00
Justin Bertram 3ff75c3353 ARTEMIS-1982 queue metrics can go negative
When redelivery is exhausted and messages are sent to a DLA with bindings
then some queue metrics can go negative.
2019-06-12 17:22:30 -04:00
Clebert Suconic 7e3b68a4cf ARTEMIS-2367 Adding rule to avoid files leaking on the main folder
We had to fix a few cases where data folder was being created outside of the ./target output.
This is just to avoid re-ocurrence of that.
2019-06-12 12:10:28 -04:00
brusdev 9b52547ff7 ARTEMIS-2371 Message with huge header shuts broker down
Add max record size check before adding a record to prevent that the
broker shuts down, when there is one really large header sent with the
message. Add message size check before allocating large message resource
if it can't be stored.
2019-06-10 17:36:18 -04:00
Tomas Hofman 097ef281fd ARTEMIS-2069 Backup doesn't activate after shared store is reconnected 2019-06-10 13:36:43 +02:00
Clebert Suconic a7e5e6d074 NO-JIRA test improvements 2019-05-31 19:06:15 -04:00
Clebert Suconic b7047faea5 NO-JIRA Adding checking for leaking server socket 2019-05-31 19:06:15 -04:00
brusdev ef2ec7b56e ARTEMIS-1011 Slow consumer detection after bursts
Fix slow consumer detection after a burst, taking into account messages
which are already in queue at the start of queueRateCheckTime period.
2019-05-31 12:21:28 -04:00
Justin Bertram 1183dc3453 NO-JIRA Extra tests upgrade on pom 2019-05-29 22:10:46 -05:00
Justin Bertram dbb2b54fa7 [maven-release-plugin] prepare for next development iteration 2019-05-29 22:02:00 -05:00
Justin Bertram 88c686cc99 [maven-release-plugin] prepare release 2.9.0 2019-05-29 21:59:18 -05:00
Clebert Suconic 4fa2e75cdc ARTEMIS-2361 Bridge should make a copy of messages
and some improvements into ARTEMIS-2355
2019-05-29 16:35:01 -04:00
Luis De Bello 1ccb688eec ARTEMIS-2355: Marking message as changed after setting routing type, because it is set after divert 2019-05-29 16:34:22 -04:00
Justin Bertram 5768f6e2f3 ARTEMIS-2308 Support exporting metrics 2019-05-29 15:07:45 -04:00
Clebert Suconic b8a2580410 ARTEMIS-2360 IOOBE when dealing with older clients concurrently 2019-05-29 15:02:13 -04:00
Andy 3fe2194139 ARTEMIS-2358 - Add user and pass to database store to allow encryption
https://issues.apache.org/jira/browse/ARTEMIS-2358
2019-05-29 11:30:35 -05:00
Andy 959c38bd8d ARTEMIS-2352 - Add the ability to reject messages without a validated user set
https://issues.apache.org/jira/browse/ARTEMIS-2352
2019-05-29 09:42:38 -04:00
Clebert Suconic 5f481d6220 NO-JIRA Test fixes 2019-05-21 15:21:36 -04:00
Clebert Suconic 9c9bd48154 ARTEMIS-2339 Set JMS Name on compatible destinations 2019-05-20 15:48:31 -04:00
brusdev e533bf876e ARTEMIS-2344 return security errors for unauthorized anonymous sasl
When user attempts unauthorized anonymous sasl the broker can return an
error of 'failed' instead of the security error that is expected in
these cases.
2019-05-17 15:52:37 -04:00
Clebert Suconic 2ae732cfc8 [maven-release-plugin] prepare for next development iteration 2019-05-16 09:58:27 -04:00
Clebert Suconic 481b9824a8 [maven-release-plugin] prepare release 2.8.1 2019-05-16 09:58:15 -04:00
Clebert Suconic b9b6fddeea ARTEMIS-2339 Compatibility around prefixing
There are a few issues with prefixing and compatibility.
This is basically an issue when integrated with Wildfly or any other case
where prefix is activated
and playing with older versions.
2019-05-15 17:49:03 -04:00
Francesco Nigro f2bac5ad08 ARTEMIS-2321 Non-blocking Page::read on page cache 2019-05-13 12:20:22 -04:00
Clebert Suconic 2567d8a266 NO-JIRA Improving test reliability 2019-05-13 12:12:40 -04:00
Francesco Nigro 49836eca52 ARTEMIS-2321 PageCursorProviderImpl can use primitive maps 2019-05-13 10:24:17 -04:00
Clebert Suconic d213aea96b NO-JIRA speeding up PagingReceiveTest 2019-05-10 14:45:57 -04:00
Clebert Suconic 389edd4976 NO-JIRA Test improvement 2019-05-09 16:55:29 -04:00
Clebert Suconic 349ca876f9 NO-JIRA test speedup 2019-05-08 21:25:23 -04:00
Clebert Suconic 7f7194f779 ARTEMIS-2333 Making tests more reliable 2019-05-08 21:10:05 -04:00
Francesco Nigro 5f040cf38b ARTEMIS-2323 NettyTransport should also send requests with void promises 2019-05-08 15:49:41 -04:00
Clebert Suconic 7e8829bee4 ARTEMIS-2333 NettyConnection is not writeable if disconnected
This is fixing StompV12Test
2019-05-08 14:33:08 -04:00
Justin Bertram 8257bac49b ARTEMIS-2332 fix sendMessage w/headers from console 2019-05-08 07:21:22 -04:00
Clebert Suconic f7b3dd46d7 NO-JIRA Test improvement 2019-05-07 20:06:29 -04:00
Emmanuel Hugonnet ee7d5bd0f1 ARTEMIS-2319 Upgrading jboss-logging dependencies
* Upgrading versions
* Adding wildfly-common dependency as jboss-logmanager now depends on it
for simple common operations such as getting hostname or process id
* Updating bootclasspath with wildfly-common
2019-05-07 16:13:48 -04:00
Clebert Suconic 6f572de59e NO-JIRA Fixing random failure on Journal Test 2019-05-07 15:45:48 -04:00
Clebert Suconic a461f23b32 NO-JIRA Fixing ConcurrentDeliveryCancelTest on extra-tests 2019-05-07 11:24:53 -04:00
Clebert Suconic 0e40984145 NO-JIRA speeding up a few tests 2019-05-06 20:22:47 -04:00
Clebert Suconic 2395358e80 NO-JIRA fixing test
this test was randomly failing because of timeouts.
Increasing timeouts on Wait, and adjusting times fixed the test.
2019-05-06 10:23:47 -04:00
Clebert Suconic c4238e154f ARTEMIS-2327 Removing Bridge Test after fix
This test was playing with an ignore packet, which does not make any more sense
after the last change.

After a packet loss the bridge will reconnect, and this test makes no more sense.
2019-05-06 09:52:10 -04:00
Clebert Suconic 415ff9b26a ARTEMIS-2327 Simple test fix
This test is playing with a timeout.
Since a timeout now will issue an Exception on the channel, this test needs to reconnect.
2019-05-06 09:19:15 -04:00
Michael André Pearce b60c304c70 ARTEMIS-2327 ExceptionListener invoked when connection level exception
Add tests
Add fix - if timeout occurs on sending packet, calls same code that is invoked if timeout occurs on during ping aligning logic, and ensuring JMS connection exception listener gets invoked to inform the client logic to react.
2019-05-03 23:11:21 -04:00
Clebert Suconic b5b2cc98b0 NO-JIRA Fixing JMX Test
This test has been failing as part of the main testsuite
and it should really be a smoke test as it is using a real test.
so, I'm moving it as smoke-test
2019-05-03 18:05:26 -04:00
Robbie Gemmell bfe0c5cc10 NO-JIRA: add test of defaulted durable field
Verifies broker isnt affected by same behaviour from 5.x issue AMQ 7189
2019-05-03 10:45:25 +01:00
Clebert Suconic 56152a9e7c [maven-release-plugin] prepare for next development iteration 2019-05-02 16:39:10 -04:00
Clebert Suconic a8e7f9d07a [maven-release-plugin] prepare release 2.8.0 2019-05-02 16:38:58 -04:00
Clebert Suconic 9872128a1f NO-JIRA Fixing GlobalPagingTest 2019-05-02 12:24:19 -04:00
Clebert Suconic fa259ba66e ARTEMIS-2328 Routing after empty addresses could lead to invalid messages 2019-05-01 01:34:28 -04:00
Clebert Suconic c0300c318c NO-JIRA Test fix 2019-04-30 13:33:45 -04:00
Jiri Danek 3e87249d75 ARTEMIS-2320 Overwritten Map key or Set element 2019-04-29 11:28:10 +01:00
Jiri Danek 4abc2e0430 ARTEMIS-2320 Synchronization on a non-final field 2019-04-29 11:28:10 +01:00
Jiri Danek f508a25566 ARTEMIS-2320 Standard Charset object can be used 2019-04-29 11:28:10 +01:00
Jiri Danek 781e4c460d ARTEMIS-2320 'while' statement does not loop 2019-04-29 11:28:10 +01:00
Jiri Danek b33874488b ARTEMIS-2320 Assorted small code fixes, mostly from IntelliJ autofixes 2019-04-29 11:28:10 +01:00
Jiri Danek 34e5d607ef ARTEMIS-2320 'compare()' method can be used to compare numbers 2019-04-29 11:27:29 +01:00
Jiri Danek f7a36300ef ARTEMIS-2320 Fix IntLongMath errorprone warning
Expression of type int may overflow before being assigned to a long
    (see https://errorprone.info/bugpattern/IntLongMath)
2019-04-29 11:27:29 +01:00
Clebert Suconic edbf3575d0 NO-JIRA improving duplicate detection test 2019-04-25 22:07:43 -04:00
Clebert Suconic d468d0a574 NO-JIRA Extra tests upgrade on pom 2019-04-25 21:51:16 -04:00
Clebert Suconic 228f6af4ca [maven-release-plugin] prepare for next development iteration 2019-04-25 16:52:09 -04:00
Clebert Suconic 09d2ba18a7 [maven-release-plugin] prepare release 2.8.0 2019-04-25 16:51:57 -04:00
Francesco Nigro 881143252c ARTEMIS-2317 Avoid long TTSP caused by Page::read using mmap read
It implements Page::read using chunked reading of SequentialFile
instead of using memory mapped files causing long time to safepoint
issues.
2019-04-25 15:43:01 -04:00
Timothy Bish ea479e1f54 ARTEMIS-2311 Add additional tests for reply to cross protocol
Add a broader range of tests for AMQP message reply to handling
across protocols to help spot potential future regressions.
2019-04-25 12:29:46 -04:00
Clebert Suconic e0815438d5 ARTEMIS-2316 Reverting change on AMQPMessage, and changing test to be accurate
This (kind of) reverts commit bd1162d9b8.
2019-04-25 11:23:43 -04:00
Justin Bertram 73bdbad8b4 ARTEMIS-2310 support system prop sub in xincludes
Historically the broker has read the XML configuration file as a String,
substituted system properties, and then parsed that String into an XML
document. However, this method won't substitute system properties in the
files which are imported via xinclude. In order to substitue system
properties in xincluded files the substitution needs to be performed
after the file is parsed into an XML document. This commit implements
that change and refactors the XMLUtil class a bit to eliminate redundant
code, obsolete comments, etc.
2019-04-25 10:51:12 -04:00
Luis De Bello bd1162d9b8 ARTEMIS-2316 AMQPMessage missing ApplicationProperties from custom transformer 2019-04-23 21:57:21 +01:00
Clebert Suconic 28919c5ebc NO-JIRA Enabling new tests 2019-04-23 15:39:45 -04:00
Clebert Suconic 1e35175a4d ARTEMIS-2311 Dealing with Protocol conversions and JMSReplyTo 2019-04-22 21:45:24 -04:00
Justin Bertram 755fa0c3a6 ARTEMIS-2315 ClientSession.createQueue routing-type bug 2019-04-22 16:58:40 -04:00
Justin Bertram 7cc890ae6f ARTEMIS-2307 prefix not removed for security check 2019-04-22 16:58:11 -04:00
Clebert Suconic 33d6721ffc ARTEMIS-2314 Improving Test and compatibility check on FQQN 2019-04-22 16:34:15 -04:00
Justin Bertram a2cb44400f ARTEMIS-2314 broken compat with old core JMS FQQN consumer
When auto-creation is off then older clients consuming messages from an
FQQN won't work. This commit fixes that problem and adds a compatibility
test to verify.
2019-04-22 11:04:01 -05:00
Justin Bertram f155838626 ARTEMIS-2313 Accumulation in HierarchicalObjectRepository cache 2019-04-22 10:48:47 -04:00
Michael André Pearce 18bcd21c3e ARTEMIS-2306 Make group first off by default, unless configured 2019-04-17 16:25:42 -04:00
Justin Bertram e0a7073884 ARTEMIS-2309 TempQueueCleanerUpper instances are leaking
The changes from ARTEMIS-2189 mean that
o.a.a.a.c.s.i.ServerSessionImpl#deleteQueue
is no longer called from the same ServerSessionImpl instance that
created it which means that TempQueueCleanerUpper instances will leak.
To resolve the leak the client will only create a new session when
necessary instead of every time delete() is invoked.
2019-04-17 10:41:30 -04:00
Clebert Suconic 7158d8a8a4 ARTEMIS-1592 AutoDeleted queues removed before sendNotifcation on consumer.close()
This could cause errors on Notification udpates and clustering.
2019-04-16 16:59:37 -04:00
Michael André Pearce 98b3177e6e ARTEMIS-2306 Make key used for group first for consumer configurable
Add tests
Add implementation details
2019-04-16 15:43:16 -04:00
Michael André Pearce 05628ce92e ARTEMIS-2306 Support ActiveMQ5 feature JMSXGroupFirstForConsumer
Implement using the ActiveMQ5 JMSXGroupFirstForConsumer, property as default, but make it possible for future to make it configurable easily. (Not this PR)
Add test
2019-04-16 15:43:16 -04:00
Michael André Pearce ed9270fc79 NO-JIRA Fix small ActiveMQServerControl api break with 2.6.4
In adding auto-delete queue level feature, its been noticed as some feature bits were added during hot fix branch, that there's api break with the 2.6.x hotfix branch.

This addresses that by fixing this in 2.7.x
2019-04-16 14:30:33 +01:00
sebthom 11b0de96b9 ARTEMIS-2285 Sorting by user column in connections view not working 2019-04-15 16:46:43 +01:00
Clebert Suconic da4f95cf71 ARTEMIS-2305 ACK counters to only increment after commit
Also including a new metric for ack attempts that will keep the former semantic.
2019-04-12 14:34:51 -04:00
Justin Bertram 2dd0671698 ARTEMIS-2294 dupe detection for AMQP same as core 2019-04-12 09:39:52 -04:00
Clebert Suconic b8b7cc899f ARTEMIS-2300 Expiry notifications are not called from scanner 2019-04-10 16:01:18 -04:00
Clebert Suconic 9e45a4ac3a ARTEMIS-2299 Support for redelivery-delay and LVQ 2019-04-10 15:10:05 -04:00
Clebert Suconic 720f60ace2 ARTEMIS-2297 Avoiding Split Brains during replication catch up when no quorum is established 2019-04-10 07:52:08 -04:00
Clebert Suconic 34fcac0b50 NO-JIRA Adding Compatibility tests on Large Message for HornetQ 2019-04-04 13:33:28 -04:00
Michael André Pearce d9b3d0fe4c ARTEMIS-2286 AMQP to Core Conversion doesn't map routing type always
Add test that exhibits the issue when sending AMQP (non JMS) to Artemis that one mapping to Core JMS the destination is not resolving as the RoutingType can be missing.
Add fix.
2019-04-02 11:22:43 -04:00
Howard Gao a68c661944 NO-JIRA Fix test ReplicatedAsynchronousFailoverTest.testTransactional
Fix random failures.
2019-04-02 11:05:00 -04:00
Michael André Pearce c4fce10fac ARTEMIS-2292 - Fix queue level auto-delete for topic subscription queue 2019-04-02 10:24:27 -04:00
Justin Bertram 304ff79712 ARTEMIS-2289 SUBSCRIBE w/receipt returns 2 receipt-ids 2019-04-02 14:13:25 +08:00
Francesco Nigro ac4cd4856c ARTEMIS-2283 Bad WARN message "AMQ222211: Storage is back to stable now"
LocalMonitor::under on PagingManagerImpl won't log anymore with a
warning message if the producers got unblocked and with info
if disk it getting freed
2019-04-01 09:47:42 -05:00
Francesco Nigro 0263d45a35 ARTEMIS-2282 QueueImpl::addTail of a management message could throw NPE
Performing direct deliveries of management messages could enter
a code path on QueueImpl::addTail with a NULL pageIterator: performing
a null check will avoid it to throw NPE.
2019-03-27 17:02:06 +00:00
Francesco Nigro 38493e3d17 ARTEMIS-2264 Added test that receive all messages instead of remove 2019-03-27 17:00:27 +00:00
Zuzana Schwarzova 9fbd86c18a ARTEMIS-2280 Add new test for moving message to FQQN 2019-03-21 10:53:13 +01:00
Howard Gao 6099742ca0 NO-JIRA Fix FailoverTest#testForceBlockingReturn
The test may fail if the live crashes too soon and the
message is directly sent to backup and the expected
blocking send will never happen.
To fix that a wait is added to ensure the message
is sent to the live (and intercepted) before
crashing the live.
2019-03-18 11:54:42 +08:00
Howard Gao 70e3888910 NO-JIRA Fix QueueImplTest#testRoundRobinWithQueueing
This test fails occasionally because the queue's delivering thread
may interference with the consumer's iterator during consumers adding.
The result is that the first of the 2 consumers may get iterated
twice and therefore the messages received by the 2 consumers are
not even.

Tha change puts the message add after the consumer add so that
the delivering thread only kicks off after consumers are all added
and messages should be evenly distributed to both consumers.
2019-03-15 12:06:56 +08:00
Clebert Suconic fc556c98ee NO-JIRA Extra tests upgrade on pom 2019-03-14 14:46:29 -04:00
Clebert Suconic 516b1a1b9f [maven-release-plugin] prepare for next development iteration 2019-03-14 12:41:04 -04:00
Clebert Suconic c3eb6c12ad [maven-release-plugin] prepare release 2.7.0 2019-03-14 12:40:52 -04:00
Howard Gao fb549ebe44 ARTEMIS-2273 Adding Audit Log
The Audit log allows user to log some important actions,
such as ones performed via management APIs or clients,
like queue management, sending messages, etc.
The log tries to record who (the user if any) doing what
(like deleting a queue) with arguments (if any) and timestamps.

By default the audit log is disabled. Through configuration can
be easily turned on.
2019-03-14 12:24:59 -04:00
Emmanuel Hugonnet 824e0b6e7e NO-JIRA Adding tests over JMSBridge statistics 2019-03-14 12:10:35 -04:00
Howard Gao 9f7d23c36c ARTEMIS-2229 turns out a valid bug. So restore the fix commit.
this was reverted previously on commit f4436a9f72.

It seems it is ok after further changes into FQQN, so this is being reapplied
2019-03-13 15:56:01 -04:00
Clebert Suconic e217f9ab6c NO-JIRA More general test fixes 2019-03-13 15:26:48 -04:00
yb b672cc3ad9 ARTEMIS-2274 Test showing issue with Message overflowing buffer when sizes are too close to TimedBuffer size 2019-03-13 14:56:33 -04:00
Clebert Suconic 5a74b8b34d NO-JIRA fixing test failures 2019-03-13 11:36:29 -04:00
Clebert Suconic 564b75d66f NO-JIRA fixing test 2019-03-12 20:19:07 -04:00
Clebert Suconic 193103d9af NO-JIRA Test Fixes after latest changes 2019-03-12 20:11:20 -04:00
Chao Wang 33b67b42d8 NO-JIRA add page decoding test for large message with no persistence 2019-03-12 18:24:56 -04:00
onlyMIT 971f673c60 ARTEMIS-2206 The MQTT consumer reconnection caused the queue to not be cleared, and caused Artemis broker to throw a NullPointerException.
When the MQTT consumer client (cleanSession property set to true) reconnected, there are certain probabilities that these two bugs will occur.
This is because the MQTT consumer client thinks that its connection has been disconnected and triggers reconnection, but the MQTT connection is still alive at Artemis broker. This bug occurs when new and old connections occur while operating the same queue for unsafe behavior.
2019-03-12 17:51:12 -04:00
Francesco Nigro 39fd58f719 ARTEMIS-2258 The FileLockNodeManager directory should be configurable 2019-03-12 16:15:24 -04:00
onlyMIT 4484d05cf0 ARTEMIS-2226 last consumer connection should close the previous consumer connection
Multiple consumers using the same clientId in the cluster, the last consumer connection should close the previous consumer connection!

ARTEMIS-2226 last consumer connection should close the previous consumer connection

to address apache-rat-plugin:0.12:check

ARTEMIS-2226 last consumer connection should close the previous consumer connection

to address checkstyle

ARTEMIS-2226 last consumer connection should close the previous consumer connection

adjust the code structure

ARTEMIS-2226 last consumer connection should close the previous consumer connection

adjust the code structure

ARTEMIS-2226 last consumer connection should close the previous consumer connection

adjust the code structure

ARTEMIS-2226 last consumer connection should close the previous consumer connection

adjust the code structure

ARTEMIS-2226 last consumer connection should close the previous consumer connection

adjust the code structure

ARTEMIS-2226 last consumer connection should close the previous consumer connection

add javadoc
2019-03-12 19:57:31 +00:00
yang wei c1dcd4bec9 ARTEMIS-2259 Client session not exist if reattach on new connection timeout 2019-03-12 15:54:56 -04:00
Francesco Nigro 5b2c47567d ARTEMIS-1604 Artemis deadlock using MQTT Protocol
MQTT shouldn't support direct deliveries
2019-03-12 12:36:25 -04:00
Keith Wall 95bcfaeb70 ARTEMIS-2262: Correlate management response messages with the request 2019-03-08 12:11:58 -05:00
Michael André Pearce 4a5af776d8 ARTEMIS-2265 Support Federated Queues and Addresses
Implement Federated Queue (builds on recent consumer priority)
Implement Federated Address (builds on recent queue level auto-delete)
Add Functional Tests
Add Failure Tests (remote and local shutdowns)
Add Documentation
2019-03-07 14:37:00 -05:00
Clebert Suconic 061fb2787e ARTEMIS-1977 Stripping activemq-artemis as a separated proejct 2019-03-07 11:34:15 -05:00
Francesco Nigro 4ea9d25ca9 ARTEMIS-2264 PurgeOnNoConsumers prevent removal of messages with replication
Added test reproducer and changed Queue::isDurableMessage usages into
Queue::isDurable to allow acks to hit the journal and being
correctly replicated across nodes.
2019-03-05 15:16:36 -05:00
Michael André Pearce 9b01e9521c ARTEMIS-2263 Support queue level auto-delete configuration
Add ability to configure when creating auto created queues at the queue level
Add support for configuring message count check
Add test cases
Update docs
2019-02-27 08:13:19 +00:00
Clebert Suconic da3d7a2940 ARTEMIS-2243 Fixing ClassLoding and dependency to security domain on method parameter 2019-02-25 20:12:20 -05:00
Clebert Suconic 9f6f36d041 ARTEMIS-2183 Fixing RefsOperation on consumers and adding test 2019-02-25 17:23:47 -05:00
Michael André Pearce c4e68b6046 ARTEMIS-2118 Enhanced Message Groups Support
Support using group buckets on a queue for better local group scaling
Support disabling message groups on a queue
Support rebalancing groups when a consumer is added.
2019-02-21 19:58:34 -05:00
Clebert Suconic 43c0868d72 NO-JIRA Improve test 2019-02-20 08:40:39 -05:00
Clebert Suconic d59bdca73f ARTEMIS-2256 Update Topology back after a bridge reconnected
https://issues.apache.org/jira/browse/ARTEMIS-2256
2019-02-19 16:10:40 -05:00
Justin Bertram 0cffe03d2e ARTEMIS-2254 support useTopologyForLoadBalancing on JMS cf config 2019-02-19 14:46:15 -05:00
Francesco Nigro 4da9d84311 ARTEMIS-2239 Zero-copy NIO/MAPPED TimedBuffer
NIO/MAPPED journal types can use directly the buffer of TimedBuffer
to perform file writes, avoiding an expensive copy + zeroing.
2019-02-14 00:20:51 +00:00
Justin Bertram 4a1fc61fcc ARTEMIS-2243 user/role ops for PropertiesLoginModule via mgmnt 2019-02-07 10:16:01 -05:00
Clebert Suconic 59ada66033 ARTEMIS-1058 Improving web temporary cleanup
* Using SpawnedVMSupport (used to be on testsuite, moving it to Utils)
* Building the classpath for ./lib, similar to what happens on Bootstrap
* Using Path as much as possible to avoid issues encoding files
2019-02-06 09:36:04 -05:00
Justin Bertram b711901a4a NO-JIRA fix race condition in QueueQueryTest
My previous commit to fix this was amended which nullified the fix.
2019-02-04 16:04:50 -06:00
Michael André Pearce b76f0061f8 ARTEMIS-2241 Support direct deliver for InVMAcceptors
Push isDirectDeliver method from netty impl, to the Connection interface
Add support to InVMConnection for isDirectDeliver flag and ability to set via config, defaulting to false, to keep current default behavior. 
Extend DirectDeliverTest to check InVM as well.
2019-01-30 08:11:46 +00:00
Clebert Suconic f4436a9f72 ARTEMIS-2242 Reverting regression caused by ARTEMIS-2229
Revert "ARTEMIS-2229 Qpid jms consumer cannot receive from multicast queue using FQQN"

This reverts commit 882da19c8a.
2019-01-29 10:50:46 -05:00
Clebert Suconic e595b7ca16 ARTEMIS-2238 Enhancement to queueQuery on producer
this is an adjustment on top of 33f56c81bd
2019-01-25 16:39:55 -05:00
Clebert Suconic 0f905224e7 ARTEMIS-2238 Enhancement to queueQuery on producer 2019-01-25 11:27:53 -05:00
Clebert Suconic 90a66266b6 ARTEMIS-2238 Fixing QueueQuery on every single send on topics 2019-01-24 14:35:18 -05:00
Justin Bertram eb50546a4f NO-JIRA fix race condition in QueueQueryTest 2019-01-24 14:32:56 -05:00
Justin Bertram 8d7d78074c ARTEMIS-2192 LegacyLDAPSecuritySettingPlugin uses hard-coded RDN types
Change the LegacyLDAPSecuritySettingPlugin to interpret the search
results based on the order of the returned RDNs rather than hard-coded
types.
2019-01-23 11:52:32 -05:00
Michael André Pearce 7dfa0fe7f4 ARTEMIS-196 Implement Consumer Priority
Add consumer priority support
Includes refactor of consumer iterating in QueueImpl to its own logical class, to be able to implement.
Add OpenWire JMS Test - taken from ActiveMQ5
Add Core JMS Test
Add AMQP Test
Add Docs
2019-01-23 11:19:24 -05:00
Luis De Bello d78eeb05cd ARTEMIS-2156 Message Duplication when using exclusive divert and clustering 2019-01-23 10:17:03 -05:00
Howard Gao b5e7b703b5 ARTEMIS-2230 Exception closing advisory consumers when supportAdvisory=false
When broker's advisory is disabled (supportAdvisory=false) any
advisory consumer won't get created at broker and the advisory
consumer ID won't be stored.

Legacy openwire clients can have a reference of advisory consumer
regardless broker's settings and therefore when it closes the
advisory consumer the broker has no reference to it.
Therefore broker throws an exception like:

javax.jms.IllegalStateException: Cannot
remove a consumer that had not been registered

If the broker stores the consumer info (even it doesn't create
it) the exception can be avoided.
2019-01-22 17:42:57 -05:00
yang wei 3954f0183f ARTEMIS-2186 Large message incomplete when server is crashed 2019-01-19 08:16:09 +00:00
Justin Bertram 61e0354b1a ARTEMIS-1867 FQQN for producers
There's a *slight* semantic change with the behavior of the queue query
and binding query to make them consistent with the address query, namely
that they will return the name of the queue and the name of the address
in every case and the returned names will be not use the FQQN syntax but
will be parsed to reflect their actual names in the broker.
2019-01-18 09:03:30 +00:00
yang wei 52d236d850 ARTEMIS-2188 fix address size leak caused by large page message 2019-01-17 17:51:51 -05:00
Justin Bertram 47aa25933f ARTEMIS-2178 routing-type config for core bridge
MULTICAST messages forwarded by a core bridge will not be routed to any
ANYCAST queues and vice-versa. Diverts have the ability to configure how
routing-type is treated. Core bridges now support this same kind of
functionality. By default the bridge does not alter the routing-type of
forwarded messages to maintain compatibility with existing behavior.
2019-01-17 22:22:01 +00:00
Clebert Suconic b3f0a87e0d ARTEMIS-2200 NPE when calling journal.delete from Multiple Threads 2019-01-17 15:38:51 -05:00
Francesco Nigro 702f445205 ARTEMIS-2200 NPE while dropping/failing large messages on paging
Large messages pendingRecordID is not accessed atomically, leading
to races that would lead to records that cannot been found on the
journal for deletion: it would lead to cause NPE that won't clean
the pending tasks on the current OperationContextImpl.
Adding a cleanup on error of those tasks and avoiding the race
to happen by adding proper synchronization will both enforce
correct clean up when something bad happen and avoid NPE.
2019-01-17 14:35:25 -05:00
Howard Gao 0477d612ad NO-JIRA Adding test to verify Openwire consuming from FQQN
The test verifies that a Openwire queue consumer can consume
from pre-configured multicast queues using FQQN.
2019-01-17 09:32:28 -05:00
Justin Bertram d7eb076d4b ARTEMIS-2190 move tests
The "jms-tests" module is deprecated and these tests should have never
gone in there. Moving them to the "integration-tests" module.
2019-01-15 17:10:58 -05:00
Howard Gao 882da19c8a ARTEMIS-2229 Qpid jms consumer cannot receive from multicast queue using FQQN
If a client sends a message to a multicast address and using a qpid-jms
client to receive the message from one of the queues using fully
qualified queue name will fail with following error message:

Address xxxx is not configured for queue support
[condition = amqp:illegal-state]

It should be able to receive the message without any error.
2019-01-15 14:31:45 -05:00
Clebert Suconic ae1ccf034a ARTEMIS-2228 Large Messages over Management 2019-01-15 12:31:26 -05:00
Clebert Suconic 5ae3dba072 ARTEMIS-2215 Fixing LiveCrashOnBAckupSyncTest" 2019-01-11 14:08:32 -05:00
Clebert Suconic d79762fa04 ARTEMIS-2205 Refactor AMQP Processing into Netty Thread
These improvements were also part of this task:
- Routing is now cached as much as possible.
- A new Runnable is avoided for each individual message,
  since we use the Netty executor to perform delivery

https://issues.apache.org/jira/browse/ARTEMIS-2205
2019-01-10 16:39:56 +01:00
andytaylor 13e410dbee ARTEMIS-2144 fixing TransactionManagerLocatorTest 2019-01-10 09:50:25 -05:00
yb 0a47e1bc6f ARTEMIS-2215 largemessage have been consumed but not deleted from the disk during backup and live sync 2019-01-09 17:25:02 -05:00
Francesco Nigro c1eba53b77 ARTEMIS-2220 Fix PageCursorStressTest::testSimpleCursorWithFilter NPE
FakeQueue is not correctly setting the queue on its PageSubscription,
leading to fail the test due to NPEs when PageSubscription::getQueue
is being used.
2019-01-09 16:56:08 -05:00
Justin Bertram 14e8b49558 ARTEMIS-2217 remove state on clean MQTT session disconnect 2019-01-09 16:48:55 -05:00
andytaylor 0f9bf15788 ARTEMIS-2144 - tx begin failure in ra doesn't get cleaned up
https://issues.apache.org/jira/browse/ARTEMIS-2144
2019-01-02 10:55:43 +00:00
Martyn Taylor 4445e7ce18 ARTEMIS-2208 Fix Unit Tests Pom 2018-12-19 09:51:27 +00:00
Clebert Suconic 40966c769a ARTEMIS-2207 Page Showing Log.warns for regular acked messages 2018-12-18 19:07:42 -06:00
Francesco Nigro 672f536222 ARTEMIS-2139 Fix setJMSReplyTo for 1.x clients with enable1xPrefixes 2018-12-14 15:20:34 -06:00
andytaylor 80058677d9 ARTEMIS-2130 - This is to allow views to have the client id when set on core protocol
https://issues.apache.org/jira/browse/ARTEMIS-2130
2018-12-14 09:28:48 -05:00
Justin Bertram 4ab7923a84 ARTEMIS-2190 core JMS client leaks temp dest names 2018-12-14 11:37:57 +01:00
yang wei dbbd94bd51 ARTEMIS-1949 fix IllegalMonitorStateException during shutdown 2018-12-13 14:03:01 -06:00
Romain Pelisse 39b177d027 ARTEMIS-2085 - Improve validation of MDB activation config properties values 2018-12-13 11:14:37 -06:00
Jiri Danek 56c7fb1a95 NO-JIRA Add forgotten @Test annotation and make helper methods private 2018-12-13 10:53:34 -06:00
Howard Gao b36dc37c15 ARTEMIS-2197 Page deleted before transaction finishes
When a receiving transaction is committed in a paging situation,
if a page happens to be completed and it will be deleted in a
transaction operation (PageCursorTx). The other tx operation
RefsOperation needs to access the page (in PageCache) to finish
its job. There is a chance that the PageCursorTx removes the
page before RefsOperation and it will cause the RefsOperation
failed to find a message in a page.
2018-12-11 10:22:18 -05:00
Justin Bertram 8a46c3ee16 ARTEMIS-2189 allow deleting temp dest when session is closed 2018-12-06 17:03:58 +01:00
Justin Bertram 3c595f18d5 ARTEMIS-2179 mgmnt method to get cluster-cxn names 2018-12-06 16:45:35 +01:00
Justin Bertram 2898384591 NO-JIRA fix QueueControlUsingCoreTest 2018-11-15 20:17:55 -05:00
Justin Bertram e81453e660 ARTEMIS-2140 queue creation race w/AMQP shared subs 2018-11-14 10:49:15 -05:00
Clebert Suconic d6ffa8b426 NO-JIRA fix on JMSBridgeTestBase 2018-11-14 10:43:20 -05:00
Ingo Weiss ff5f1213bb [ARTEMIS-2175] Duplicate messages when JMS bridge is stopped and restarted
Issue: https://issues.apache.org/jira/browse/ARTEMIS-2175
2018-11-14 10:31:48 -05:00
Howard Gao 6e89b22eaa ARTEMIS-2174 Broker reconnect cause OOM with scale down
When a node tries to reconnects to another node in a scale down cluster,
the reconnect request gets denied by the other node and keeps retrying,
which causes tasks in the ordered executor accumulate and eventually OOM.

The fix is to change the ActiveMQPacketHandler#handleCheckForFailover
to allow reconnect if the scale down node is the node itself.
2018-11-14 10:23:57 -05:00
Justin Bertram f4396da9fd ARTEMIS-2108 fix another potential StackOverflow 2018-11-13 17:37:51 -05:00
Šmucr Jan 6d0641b438 ARTEMIS-2169 allow config of JMX RMI registry port
Previously the port was always random. This caused problems with
remote JMX connections that needed to overcome firewalls. As of
this patch it's possible to make the RMI port static and whitelist
it in the firewall settings.
2018-11-09 10:04:13 -06:00
Justin Bertram c2188aa058 ARTEMIS-2127 Add auth details to consumer created notification 2018-11-08 23:56:51 +00:00
Clebert Suconic 6bdff442ab NO-JIRA fixing tests 2018-11-08 23:45:32 +00:00
Justin Bertram 2e53d8f5fb ARTEMIS-1929 race in STOMP w/identical durable subs 2018-11-08 07:55:29 +08:00
Howard Gao 72eadb201d ARTEMIS-1850 QueueControl.listDeliveringMessages returns empty result
With AMQP protocol when some messages are received in a transaction,
calling JMX QueueControl.listDeliveringMessages() returns empty list
before the transaction is committed.
2018-11-06 20:23:32 +08:00
Francesco Nigro b71c144891 ARTEMIS-2100 address routing-type overridden on attaching AMQP sender
AMQPSender has to honor an already existing multicast routingType
of an address while attempting to create a fresh new queue on it
2018-11-05 10:50:28 +00:00
Francesco Nigro 270b383e80 ARTEMIS-1710 Allow management msgs to exceed global-max-size limit 2018-11-03 23:34:59 +01:00
Roddie Kieley 5f74faa34a ARTEMIS-2160: Addressed occurance where cluster configuration on server locator was hard coded. Covered with test. 2018-11-02 11:12:35 -05:00
Clebert Suconic c62146802e ARTEMIS-2159 Fixing OpenWire Blocker Producer
Previous change on Flow control in OpenWire broke Blocked cases
This is a better fix.
2018-11-01 15:43:17 -04:00
Clebert Suconic 2f52e3ce2a Revert "ARTEMIS-2100 address routing-type overridden on attaching AMQP sender"
There are too many failures because of the semantic change here.

This reverts commit 1c17a4d59d.
2018-11-01 14:24:52 -04:00
yang wei 31399486ac ARTEMIS-2123 Paging not stopped if there are no messages on one subscription 2018-10-31 15:28:20 -04:00
Clebert Suconic 02a6d5bb49 ARTEMIS-2159 OpenWire would allow one extra send
Thanks to Otavio Piske collaborating a test change here.
2018-10-31 12:46:12 -04:00
Michael André Pearce faa6ffa3b4 ARTEMIS-2151 JMS Selectors broken in some cases
Create Test Case
Fix OpenWire so selectors are translated
Fix GroupID to call groupId method
2018-10-31 11:55:22 -04:00
Michael André Pearce f30ca44c82 ARTEMIS-2142 Support JMSXGroupSeq -1 to close/reset group.
Add test cases
Add GroupSequence to Message Interface
Implement Support closing/reset group in queue impl
Update Documentation (copy from activemq5)

Change/Fix OpenWireMessageConverter to use default of 0 if not set, for OpenWire as per documentation http://activemq.apache.org/activemq-message-properties.html
2018-10-30 16:24:33 -04:00
Michael André Pearce 99a3f17aa0 NO-JIRA Move JMS_SESSION_CLIENT_ID_PROPERTY to JMS module
Remove JMS specifics from CORE, that are not used in broker
2018-10-30 16:22:44 -04:00
Francesco Nigro 1c17a4d59d ARTEMIS-2100 address routing-type overridden on attaching AMQP sender
An already existing address routing type should be taken
in consideration while chosing which routing type use when none
is configured
2018-10-30 16:22:10 -04:00
Justin Bertram 2a894cbe27 ARTEMIS-2155 disconnect on failure to handle packet 2018-10-30 16:17:08 -04:00
Clebert Suconic 558bb477f1 NO-JIRA Adding Test to validate OpenWire and Fail flow control 2018-10-30 11:47:37 -04:00
sebthom d7aa9e5077 ARTEMIS-2141 Add Filter column to Consumers View of AdminUI 2018-10-29 20:42:05 +00:00
Arthur Fritz Santiago dba405c404 ARTEMIS-2150 Counts the number of delivering messages in this queue 2018-10-27 06:52:56 +01:00
Justin Bertram 97612c48d3 ARTEMIS-1856 support delays before deleting addresses & queues 2018-10-26 19:30:06 +01:00
Howard Gao f4c93a2860 ARTEMIS-2135 Test multiple core consumers receiving amqp messages
This test can verify an issue fixed by the commit:
7a463f038a (ARTEMIS-2096)

The issue was reported later by users where messages
sent by amqp clients are having their body size
randomly being zero when received by multiple core
consumers.

This was also fixed on commit  48e0fc8f42 but that
was exclusively on 2.6.x branch.
2018-10-23 10:52:50 -04:00
Francesco Nigro 2967df6a99 ARTEMIS-1996 MappedSequentialFileFactory may cause DirectByteBuffer off-heap memory leaks
Compaction is now reusing direct ByteBuffers on both
reading and writing with explicit and deterministic
release to avoid high peak of native memory utilisation
after compaction.
2018-10-22 09:16:15 +02:00
Michael André Pearce 547b2aa592 ARTEMIS-2117 Add custom LVQ Key and Non Destructive Queue into Broker
Implement custom LVQ Key and Non-Destructive in broker - protocol agnostic
Make feature configurable via broker.xml, core apis and activemqservercontrol 
Add last-value-key test cases
Add non-destructive with lvq test cases 
Add non-destructive with expiry-delay test cases
Update documents
Add new methods to support create, update with new attributes
Refactor to pass through queue-attributes in client side methods to reduce further method changes for adding new attributes in future and avoid methods with endless parameters. (note: in future this should prob be done server side too)

Update existing test cases and fake impls for new methods/attributes
2018-10-17 20:53:13 -04:00
gtully 202ae262d3 ARTEMIS-2103 - fix up test to reflect full consumer queue name in the fqqn queue 2018-10-11 17:05:32 +01:00
andytaylor d8c34dd3d7 NO-JIRA - fixing up some broken tests
updated tests that rely on logging id's
2018-10-11 10:25:14 +01:00
yang wei 8f4bd7c621 ARTEMIS-2102 delete paging directory or table if address is removed 2018-10-10 18:50:11 -04:00
gtully b812bfdbed ARTEMIS-2103 - use the full openwire consumer queue for the mapped virtual topic queue binding, fix and test 2018-10-10 18:48:11 -04:00
Justin Bertram b86cf69e6a ARTEMIS-2107 clarify identity for authn failures in notification 2018-10-10 18:46:48 -04:00
Justin Bertram d336a09f9a ARTEMIS-2108 Potential StackOverflowError when load balancing disabled 2018-10-10 18:45:40 -04:00
Michael André Pearce 8c6322deed ARTEMIS-2094 Only deploy reloadable config if reloaded. 2018-10-10 14:19:52 -04:00
andytaylor a1896c4c53 NO-JIRA - fixing up some broken tests
Some tests were added to a class that was extended, Ive moved these into their own class
2018-10-10 11:00:59 +01:00
Justin Bertram a28b4fb34e ARTEMIS-1545 refactor & rework a few incompatible pieces
Existing commit for ARTEMIS-1545 broke bridges and large messages. This
commit fixes those, and refactors the solution a bit to be more clear.
2018-09-27 17:29:18 -04:00
Michael André Pearce e4ba48a311 ARTEMIS-1545 Support JMS 2.0 Completion Listener for Exceptions 2018-09-27 17:29:18 -04:00
Michael André Pearce cce0e1927c ARTEMIS-2094 - Fix Configuration change loss when network Issue
Further fix around network loss.
If network loss (split) and slave activates, for a period its config used when it initializes in initialisePart2 was stale. 
Add/Extend test to ensure address-setting change made on live preserved on slave (after activation)
Add/Extend test to ensure security-setting change made on live preserved on backup (after activation)
2018-09-26 09:23:57 -04:00
Timothy Bish a851a8f93f ARTEMIS-2096 Refactor AMQMessage abstraction
Major refactoring of the AMQPMessage abstraction to resolve
some issue of message corruption still present in the code and
improve the API handling of message changes and re-encoding.

Improves handling of decoding of message sections limiting the
work to only the portions needed and ensuring the state data
is always updated with what has been done.  Fixes issues of
corrupt state on copy of message or other changes in filters.
2018-09-26 09:19:40 -04:00
Justin Bertram 9c62531c2f ARTEMIS-1961 track routed and unrouted messages sent to an address 2018-09-25 18:07:32 -04:00
Francesco Nigro 3112b4f3db ARTEMIS-2093 NPE thrown by NettyConnector::createConnection
Given that NettyConnector::createConnection isn't happening on the
channel's event loop, it could race with a channel close event, that
would clean the whole channel pipeline, leading to a NPE while
trying to use a configured channel handler of the pipeline.
2018-09-21 15:06:53 +02:00
yang wei d868563e7b ARTEMIS-2092 fix first page messages lost on server crash bug 2018-09-19 16:19:45 -04:00
Francesco Nigro cfa3290209 ARTEMIS-2090 JDBC Journal is not deleting TX records
JDBCJournalImpl::cleanupTxRecords is not committing
the deleteJournalTxRecords statement leaving the
TX records into the journal
2018-09-19 15:32:03 -04:00
Justin Bertram c60d17884a ARTEMIS-1919 implement SNI properly 2018-09-18 08:00:05 +01:00
Roddie Kieley 50b18dfbbc NO-JIRA: ScaleDownTest checkstyle error fix
Empty space removed that produced a checkstyle error.
2018-09-17 14:53:22 -04:00
Roddie Kieley 34df9679d7 ARTEMIS-2000: For ScaleDown set the RoutingType header property on the message
so if the address does not exist on the other end it will be created correctly.

Test added by Andy Taylor (commit squash during rebase on #2202)
2018-09-14 14:48:09 -04:00
andytaylor 82795b7bff ARTEMIS-1898 - make sure tosend credits on rejected messages
And also to run the credit runnables once memory is free in fail mode

https://issues.apache.org/jira/browse/ARTEMIS-1898
2018-09-13 16:22:28 -04:00
andytaylor 3b34127bb3 ARTEMIS-2075 - allow Extra backups to try to replicate more than once
https://issues.apache.org/jira/browse/ARTEMIS-2075
2018-09-13 10:02:45 +01:00
Clebert Suconic 6361079aa0 ARTEMIS-2084: Failover will not work with network cable disconnect on core protocol 2018-09-12 19:59:00 -04:00
Timothy Bish 5dbd0a74d2 NO-JIRA Fix condition timeouts to avoid spurious failures
The waits for expiration are set at the same value as the expiration
interval default to in the test support setup so on some runs there is a
race when waiting for the message to expire and the expiry task.
2018-09-12 16:48:28 -04:00
Clebert Suconic 5d69e3594f ARTEMIS-2074 Fixing RA properties 2018-09-12 16:47:24 -04:00
Clebert Suconic d2d9a0e634 ARTEMIS-2074 URI not transposing ServerLocator on ConnectionFactory
This closes #2286
As it superceedes it
2018-09-11 17:04:01 -04:00
Francesco Nigro 3c7252adbc ARTEMIS-2068 save reading any file to get AMQP large msg size
ServerJMSBytesMessage::getBodyLength can save reading
the whole large message file by reading just its
file size
2018-09-11 16:36:45 -04:00
Francesco Nigro 7a7304bb28 ARTEMIS-2078 AMQP large msg aren't consumed by clusters without persistence
NullStorageLargeServerMessage is not correctly exposing its body buffer
to allow CoreAmqpConverter to convert it into an AMQPMessage
2018-09-11 16:35:15 -04:00
Timothy Bish e065e3e960 ARTEMIS-2082 Reset buffer valid flag after re-encoding the message
Once a re-encode of the message is done the buffer is not being marked
as valid and so subsequent checks on the buffer are all assuming the
message data is not valid and re-encoding over and over.  This can lead
to poor performance in some cases and corrupted data in others.
2018-09-11 15:45:51 -04:00
Michael André Pearce c417d0b5f8 ARTEMIS-2081 listConfiguredQueues returns only queues created by config
Extend test case to reproduce problem of client created queues being incorrectly removed on simple reload of config.
Add a flag/field to the queues created by configuration/broker.xml so we can correctly filter only queues created/managed by config.
Update listConfiguredQueues to use the new queue flag
2018-09-11 13:55:11 -04:00
Michael André Pearce 07aa0f732c NO-JIRA rename queue in test to avoid collision
Avoids issue with other tests that could persist same queue name, making intermittent failure.
2018-09-08 02:26:38 +01:00
Michael André Pearce 4b88f38b2d ARTEMIS-2076 Make Filter update-able
Add Tests
Add implementation inline with other queue updatable settings.
Enhance tests to ensure queue is not destroyed during config change and messages in queue already are preserved
2018-09-07 15:49:03 -04:00
Michael André Pearce dbfdc18f49 ARTEMIS-2065 Change routing-type isnt destructive.
Revert previous fix
Keep original ConfigChangeTest
Apply new non-destructive fix.
Enhance tests to ensure messages in queues are not lost either on reload when running or when config changed on-restart (e.g. queue i not destroyed)
2018-09-07 15:25:57 -04:00
Clebert Suconic 05ce7c6ecd NO-JIRA Adding a test playing with network disconnects and failover 2018-09-05 18:13:35 -04:00
andytaylor f4b77a2cb4 ARTEMIS-2073 - make sure connection gets set for interceptors
https://issues.apache.org/jira/browse/ARTEMIS-2073
2018-09-04 12:54:21 -04:00
Justin Bertram 3827c54c05 ARTEMIS-2065 Can't change queue routing-type between restarts 2018-08-30 14:31:18 -05:00
Justin Bertram b0d30d4da5 ARTEMIS-2064 make address & queue deployment more robust
Any failure to deploy an address or queue will short-circuit the broker
initialization process preventing any other addresses or queues from
being deployed as well as other critical resources like acceptors, etc.
2018-08-30 15:10:44 -04:00
Justin Bertram e7e5112d51 ARTEMIS-2066 LegacyJMSConfiguration parser may deploy non-jms queues 2018-08-30 15:08:10 -04:00
Clebert Suconic 93cffedcba ARTEMIS-2023 Avoiding boolean on every message for 1x and tests 2018-08-30 14:29:58 -04:00
Martyn Taylor 9a855e18e1 ARTEMIS-2055 Lock LM on PacketHandler on clear 2018-08-29 13:40:19 -04:00
Clebert Suconic 34fa0dded6 ARTEMIS-2052 Fixing initial credit negotiation 2018-08-29 13:37:48 -04:00
Timothy Bish 34254095c8 ARTEMIS-2057 Fix runaway credit grants
Ensure the broker looks at local receiver credit when checking for
credit top off threshold and then do a proper top off back to the high
water mark to sync with how client receivers manage their credit.
2018-08-28 12:45:31 -04:00
Justin Bertram ad7c0ea12d ARTEMIS-2060 OpenSSL tests broken after Netty upgrade 2018-08-28 11:02:45 -05:00
Clebert Suconic a8dad35031 ARTEMIS-2055 fixing checkstyle 2018-08-28 10:35:36 -04:00
Martyn Taylor 490ef71e1d ARTEMIS-2055 Set Live LM to Null after route
The ServerSessionPacketHandler has a close() callback handler which will
delete any pending large messages.  However, there is a race where a
large message can be routed, then the close delete the associated large
message resulting in data loss.
2018-08-27 12:56:53 +01:00
Christopher L. Shannon (cshannon) 87f393e597 ARTEMIS-2052 - Fix defaultConsumerWindowSize negotiation
First, QueueQuery should use address name for address settings
The name used for looking up address settings for a queue now uses the
address name if there is a local queue binding

Second, make sure sent credits to the server is the correct value
2018-08-26 18:25:47 -04:00
Clebert Suconic 6b1abd1aad ARTEMIS-2053 avoiding data loss after compacting 2018-08-26 18:17:29 -04:00
Timothy Bish 2c7896cef6 ARTEMIS-1938 Update Qpid JMS along with Proton and Netty
Update the Qpid JMS and Proton dependencies to lastest and sync Netty
with the 4.1.28.Final version used by Qpid JMS to avoid clash that
breaks a test.  Adds override of new Proton-J WritableBuffer API that
allows it to use the Netty String encoder when needed instead of the
slower default version.

Update Qpid JMS to v0.36.0
Proton-J to v0.29.0
Netty to 4.1.28.Final
2018-08-25 07:22:53 +01:00
Carsten Lohmann 95ec8ea433 ARTEMIS-2044 Add onSendException, onMessageRouteException to ActiveMQServerMessagePlugin 2018-08-24 21:35:34 +01:00
Clebert Suconic 55b0d5b0ea ARTEMIS-2047 Compatible option for ActiveMQJMSClient 2018-08-21 22:05:29 -04:00
Clebert Suconic 63e6cd98f8 ARTEMIS-2046 Fixing issues with JournalStorageManager.stop in replication, JDBC and shared storage 2018-08-20 21:25:57 -04:00
Justin Bertram e6dddf8231 NO-JIRA Tweak RedeployTest
1) Remove use of deprecated EmbeddedJMS.
2) Change test config to use static clustering as discovery may not work
in some CI environments.
2018-08-17 15:27:07 -04:00
Justin Bertram a0b4c4dd19 ARTEMIS-2023 extend 1x naming to other ops 2018-08-16 20:57:11 +01:00
Clebert Suconic 94e34febf6 ARTEMIS-2023 small tweak on test. Server not needed 2018-08-14 12:45:00 -04:00
Clebert Suconic 71e664a705 ARTEMIS-2023 test showing NPE 2018-08-14 12:40:30 -04:00
Clebert Suconic 99d091a0ea ARTEMIS-2030 only use interrupt during shutdown on RA 2018-08-13 20:40:34 -04:00
Clebert Suconic 87fdff51e1 ARTEMIS-2029 Fixing wire checks after reconnects 2018-08-13 18:24:09 -04:00
Clebert Suconic 4dd116ee04 NO-JIRA fixing broken test 2018-08-13 18:10:24 -04:00
Martyn Taylor ad6db74701 ARTEMIS-2024 Enable SharedClientID on ConnectionFactory 2018-08-13 20:41:54 +01:00
Justin Bertram df583922f5 ARTEMIS-2023 Support 1x prefixes for JMS dests created using session
In some cases users who migrate from 1.x to 2.x may still want to keep
the legacy prefixes for their JMS destinations (i.e. "jms.queue.",
"jms.topic.", etc.). This commit adds a boolean on our ConnectionFactory
implementation so that it will use the old prefixes when invoking the
queue/topic creation methods on the Session implementation.
2018-08-13 12:01:51 -04:00
Michael André Pearce 24a28da09f ARTEMIS-2022 - Enhancements
Fix checkstyle
Avoid duplicated logic
Ability to filter and group
Instantiate SimpleString property key once
Get property value via getObjectProprty to ensure all special mapped properties such as in AMQPMessage would return
Avoid a custom string to represent null, instead rely on Java's representation "null" by using Objects.toString to get the string value of the property value used to group by.
2018-08-13 08:37:56 +01:00
Arthur Fritz Santiago e15917129f [ARTEMIS-2022] Create count messages 'group by' this property filter 2018-08-13 08:37:56 +01:00
Martyn Taylor d6d73c7f23 ARTEMIS-2025 Ensure correct calculation of message body size 2018-08-12 16:33:49 -04:00
Howard Gao e15f3901e4 ARTEMIS-2013 Can't create durable subscriber to a composite topic
An OpenWire client can use a compound destination name of the form
"a,b,c..." and consume from, or subscribe to, multiple destinations.
Such a compound destination only works for topics when the subscriber
is non-durable. Attempting to create a durable subscription on a
compound address will end up with an error.

The cause is when creating durable subs to multiple topics/addresses
the broker uses the same name to create internal queues, which
causes duplicate name conflict.
2018-08-09 19:38:36 -04:00
Justin Bertram 1171f01b30 ARTEMIS-2020 Use prefixes when useJNDI=false in RA 2018-08-09 19:35:27 -04:00
Christopher L. Shannon (cshannon) e915545278 ARTEMIS-2018 - Add bridge events to plugin API
Add callbacks to handle bridge events including beforeDeliverBridge,
afterDeliverBridge and afterAcknowledgeBridge
2018-08-09 13:37:56 +01:00
Robbie Gemmell b0c65ba2dd ARTEMIS-1978: update to proton-j 0.27.3 to resolve sequencing issues
Adds test exposing broker behaviour from issues stemming from PROTON-1892 and PROTON-1901
2018-08-08 14:27:42 -04:00
Francesco Nigro 8dd0e9472f ARTEMIS-1999 Broker uses 100% core's CPU time if msg grouping is used
The deliver loop won't give up trying to deliver messages when
back-pressure kicks in (credits and/or TCP) if msg grouping is used and
there are many consumers registered: this change will allow the loop
to exit by instructing the logic that the group consumer is the only
consumer to check.
2018-08-08 17:37:58 +01:00
Jiri Danek 8274703153 NO-JIRA improve assertions in QueueControlTest
This commit replaces assert{True,Equals} with more specific assertion methods.
2018-08-08 11:35:14 -04:00
Jiri Danek 05816fefab NO-JIRA fix unused parameter `durable` in AmqpClientTestSupport#sendMessages 2018-08-08 11:35:14 -04:00
Jiri Danek c1a191c547 ARTEMIS-2016 fix flaky test QueueControlTest#testRemoveAllWithPagingMode
Parameters going into Wait.waitFor were originally wrong, because
`durationMillis: 3, sleepMillis: 100` means you would test the condition
only once. This commit is changing the durationMillis from 3ms to 3s,
swapping the two numbers (duration 100ms, sleep 3ms) would also be reasonable, I think.

Next, Wait.assertEquals is here being used, instead of Assert.assertTrue.

I saw the test fail only once, and never was able to reproduce it again,
but I think this commit does improve the test and so it is worthwhile.

    java.lang.AssertionError
		at org.apache.activemq.artemis.tests.integration.management.QueueControlTest.assertMetrics(QueueControlTest.java:2651)
	    at org.apache.activemq.artemis.tests.integration.management.QueueControlTest.assertMessageMetrics(QueueControlTest.java:2615)
    	at org.apache.activemq.artemis.tests.integration.management.QueueControlTest.testRemoveAllWithPagingMode(QueueControlTest.java:1554)
2018-08-08 11:33:31 -04:00
Jiri Danek fed0426ff3 NO-JIRA fix flaky tests QueueControlTest#testResetMessagesExpired
The occasional assertion error is prevented by using Wait.assertEquals
where Assert.assertEquals was used previously.

    java.lang.AssertionError:
    Expected :1
    Actual   :0
    [...]
    	at org.junit.Assert.assertEquals(Assert.java:542)
	    at org.apache.activemq.artemis.tests.integration.management.QueueControlTest.testResetMessagesExpired(QueueControlTest.java:2370)
2018-08-08 11:31:23 -04:00
Jiri Danek c6521e0700 NO-JIRA fix flaky tests QueueControlTest#testChangeMessagePriority{,WithInvalidValue}
The occasional assertion error is prevented by using Wait.assertEquals
where Assert.assertEquals was used previously.
2018-08-08 11:31:23 -04:00
Jiri Danek 23a30b6158 NO-JIRA fix flaky test QueueControlTest#testResetMessagesAdded
The occasional assertion error is prevented by using Wait.assertEquals
where Assert.assertEquals was used previously.

I did not observe the timing issue on all asserts (only on the first
two), but there is no harm in replacing them all.

    java.lang.AssertionError:
    Expected :2
    Actual   :1
2018-08-08 11:31:23 -04:00
Jiri Danek fbb622ae69 NO-JIRA fix flaky test QueueControlTest#testListMessagesWithNullFilter
The below error is prevented by using Wait.assertEquals
where Assert.assertEquals was used previously.

    java.lang.AssertionError:
    Expected :2
    Actual   :1
        [...]
    	at org.junit.Assert.assertEquals(Assert.java:542)
    	at org.apache.activemq.artemis.tests.integration.management.QueueControlTest.testListMessagesWithNullFilter(QueueControlTest.java:804)
2018-08-08 11:31:23 -04:00
Jiri Danek 5c2f79ed45 NO-JIRA fix flaky test QueueControlTest#testListMessagesWithEmptyFilter
The below error is prevented by using Wait.assertEquals
where Assert.assertEquals was used previously.

    java.lang.AssertionError:
    Expected :2
    Actual   :1
        [...]
        at org.apache.activemq.artemis.tests.integration.management.QueueControlTest.testListMessagesWithEmptyFilter(QueueControlTest.java:827)
2018-08-08 11:31:23 -04:00
Justin Bertram 1b15f95554 ARTEMIS-2014 fix directory name in test 2018-08-08 09:55:40 -05:00