Commit Graph

195 Commits

Author SHA1 Message Date
Clebert Suconic 1369690f57 ARTEMIS-1894 Avoiding apache.org URL on codebase 2018-09-27 14:51:19 -04:00
Michael André Pearce 8e40b2d4f4 ARTEMIS-2095 - Typed Properties ThreadSafety
Add Concurrency Test to expose concurrency errors seen in logs.
Add Fix to ensure TypedProperties to ensure threadsafety
Add forEach and forEachKey to allow for provide a thread safe way of iterating through keys and values, without needing to duplicate the collection.
Add getMapNames method to remove code duplication and to ensure thread safe
2018-09-26 15:41:52 +01:00
Justin Bertram 5d329a70d1 ARTEMIS-2087 fix NPE; mask password in example 2018-09-26 09:20:24 -04:00
henock 153e0a0260
NO-JIRA - Update SimpleString to give a more useful error message
Currently we get.
java.lang.IndexOutOfBoundsException: null
at org.apache.activemq.artemis.api.core.SimpleString.readSimpleString(SimpleString.java:183)
at org.apache.activemq.artemis.api.core.SimpleString$ByteBufSimpleStringPool.create(SimpleString.java:584)
....

Should be
java.lang.IndexOutOfBoundsException: Error reading in simpleString, length=YYY is greater than readableBytes=XXX
at org.apache.activemq.artemis.api.core.SimpleString.readSimpleString(SimpleString.java:183)
at org.apache.activemq.artemis.api.core.SimpleString$ByteBufSimpleStringPool.create(SimpleString.java:584)
...
2018-09-11 14:48:17 +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
Clebert Suconic 6bdfcd04f5 ARTEMIS-2021 setting flag before shutdown 2018-08-09 19:16:23 -04:00
Clebert Suconic 26208b76c7 ARTEMIS-2021 NetworkHealthCheck should only restart servers after net outages 2018-08-09 19:08:02 -04:00
Michael André Pearce 5d8079845e ARTEMIS-1482 Enhance test to ensure len check is done before byte[] init
Set the int to Integer.MAX_VALUE thus if the len check is not done before byte[] initialization the test would blow with an OOM.
2018-08-09 15:54:54 +01:00
Francesco Nigro 64cf5357e1 ARTEMIS-2015 PriorityLinkedListImpl::isEmpty is not thread-safe
PriorityLinkedListImpl::size access is changed to be safely
observable by a thread different from the one allowed to write
the list.
2018-08-08 14:25:28 -04:00
Martyn Taylor 985d1e1fcb ARTEMIS-1482 Add back check for SimpleString 2018-08-08 14:23:53 -04:00
Clebert Suconic 0e36e072bd ARTEMIS-1732 I simplified some of the changes performed at the previous commit.
Also I changed GlobalDiskFullTest to actually block the senders.
I moved the Runnables from PagingManager into the Util as AtomicRunnable.
2018-07-31 21:39:04 -04:00
Michael André Pearce 8a9835a394 ARTEMIS-856 - Support consumersBeforeDispatch and delayBeforeDispatch
https://issues.apache.org/jira/browse/ARTEMIS-856

This is equivalent to consumersBeforeDispatchStarts and timeBeforeDispatchStarts in ActiveMQ 5.x

http://activemq.apache.org/message-groups.html

This is addressing one of the items on the artemis roadmap: http://activemq.apache.org/activemq-artemis-roadmap.html
2018-07-31 16:16:51 +01:00
Michael André Pearce aad45ad592 ARTEMIS-1783 Remove need for guava
Replace guava Preconditions with artemis Preconditions
Replace guava Predicate with java Predicate
Replace guava Ordering with java Comparator
Replace guava Immutable, with ArrayList/Set and then wrap with unmodifiable
2018-05-14 09:45:41 -04:00
Michael André Pearce 19418630d4 ARTEMIS-1783 Remove need for guava in client
Refactor away from Guava memorize based on Guava Supplier to using java.util.Supplier and our own memorizer code.
2018-05-14 09:45:41 -04:00
Clebert Suconic bc09a8011d NO-JIRA More Strict settings for test thread leaks
I'm investigating thread leakages and previous change on this class here is biting me.
2018-05-04 22:43:56 -04:00
Timothy Bish 8f4b1a6c18 ARTEMIS-1847 Fix test after netty upgrade
Missing call to resetReadIndex causes IndexOutOfBoundsException after
netty fixed to correctly throw on vilation of the contract.
2018-05-03 14:47:55 -04:00
Clebert Suconic 2a3b67d921 ARTEMIS-1801 Fixing checkstyle after NullCheck fix 2018-05-03 13:14:50 -04:00
Stanislav Knot b67008c4ca ARTEMIS-1801 removing null-unchecked dereferences 2018-05-03 12:42:42 -04:00
Justin Bertram a294dc9493 ARTEMIS-1701 strip zone id from IPv6 host 2018-04-06 14:00:02 -04:00
Francesco Nigro f6e8345dbe ARTEMIS-1772 Reduce memory footprint and allocations of QueueImpl
It includes:
- Message References: no longer uses boxed primitives and AtomicInteger
- Node: intrusive nodes no longer need a reference field holding itself
- RefCountMessage: no longer uses AtomicInteger, but AtomicIntegerFieldUpdater
2018-04-03 11:01:38 -04:00
Clebert Suconic 9ae059baeb ARTEMIS-1345 Making TestProperties a little easier on slow CIs
using less iterations, making it less risky on slow hypervisors
2018-03-08 10:50:56 -05:00
Clebert Suconic 8831a570de ARTEMIS-1345 ConcurrentModificationException after copy 2018-03-07 18:05:35 -05:00
Justin Bertram 44305694f7 ARTEMIS-1719 fix ThreadLeakCheckRule after Netty upgrade 2018-03-05 21:12:55 -06:00
Clebert Suconic e4e864d88e NO-JIRA Speeding up ReattachTest 2018-03-01 14:40:30 -05:00
Clebert Suconic c6028c779f NO-JIRA Adding known threads to stick around 2018-02-27 13:06:35 -05:00
Francesco Nigro 60dbeae438 ARTEMIS-1702 ConcurrentLongHashMap and ConcurrentLongHashSet should avoid volatile set cost on put/remove
Most of the visibility guarantees of size/capacity fields modifications are already provided through optimistic locking, hence it could be used it instead of volatile set(s) on put/remove, making those methods more efficient.
2018-02-26 17:38:36 -05:00
Clebert Suconic ecf4110b1b ARTEMIS-1700 Fixed deadlock in paging state
This closes #1894
2018-02-26 16:06:04 -05:00
Michael André Pearce 2c32dda39e ARTEMIS-1664 fix npe bug while getting element in the process of rehash
Apply same fix to ConcurrentLongHashSet
2018-02-22 20:47:42 -05:00
yang wei 6509c078fb ARTEMIS-1664 fix npe bug while getting element in the process of rehash 2018-02-22 20:47:42 -05:00
Justin Bertram c1900e5ac3 ARTEMIS-1684 disable problematic tests 2018-02-21 11:06:25 -06:00
Clebert Suconic 55521e85c9 NO-JIRA Changing port on test as it will clash with the CI if running at 8080 2018-02-21 11:38:47 -05:00
Justin Bertram 5748627477 ARTEMIS-1687 reduce logging for fast-tests
Logging for the "fast-tests" profile used for PR builds could be reduced
significantly. This would save time as well as prevent log truncation
(Travis CI only supports logs up to 4MB).
2018-02-20 15:12:43 -05:00
Michael André Pearce 38c45c9214 ARTEMIS-853 Support for exclusive consumers
Rationalise and re-use URISupport.
2018-02-07 15:27:29 +00:00
Michael André Pearce dc41f3ca49 ARTEMIS-853 Support for exclusive consumers
Support exlusive consumer
Allow default address level settings for exclusive consumer
Allow queue level setting in broker.xml
Add the ability to set queue settings via Core JMS using address. Similar to ActiveMQ 5.X
Allow for Core JMS client to define exclusive consumer using address parameters
Add tests
2018-02-07 15:27:29 +00:00
Martyn Taylor 7576b9d586 ARTEMIS-1611 Added support for 1.x transformer API 2018-02-05 16:32:03 +00:00
Clebert Suconic 8e058d2a76 ARTEMIS-1626 Thread check will not throw leaks failures for previously failed tests
This closes #1800
2018-01-23 10:17:53 -05:00
Francesco Nigro 051a3cae49 ARTEMIS-1616 OpenWire improvements
Optimized SimpleString::split because heavily used into AddressImpl::new
2018-01-22 18:02:03 -05:00
Francesco Nigro 3f646474c2 ARTEMIS-1622 Reduce memory footprint of QueueImpl
LinkedListImpl is turned into an optionally intrusive linked list by allowing message references to extend Node.
2018-01-22 17:30:45 +00:00
Howard Gao bb84f67936 ARTEMIS-1600 Support masked passwords in bootstrap.xm and login.config
We provide a feature to mask passwords in the configuration files.
However, passwords in the bootstrap.xml (when the console is
secured with HTTPS) cannot be masked. This enhancement has
been opened to allow passwords in the bootstrap.xml to be masked
using the built-in masking feature provided by the broker.

Also the LDAPLoginModule configuration (in login.config) has a
connection password attribute that also needs this mask support.

In addition the ENC() syntax is supported for password masking
to replace the old 'mask-password' flag.
2018-01-18 08:59:00 -06:00
Francesco Nigro 57e93ff9d0 ARTEMIS-1615 Duplicate TypedProperties::checkCreateProperties 2018-01-17 15:21:10 +01:00
Francesco Nigro 52f7a698d9 ARTEMIS-1573 Improve UTF translation allowing zero copy
The UTF translations has been improved by:
- zero copy on array based buffers
- zero copy UTF length calculation
- faster array access using Netty PlatformDependent.get|putByte
- improved perf tests UTF8Test
2018-01-17 09:36:42 +01:00
Francesco Nigro a3c418183a ARTEMIS-1586 Added String Pools unit tests
- SimpleString::toSimpleString String pooling test
- ByteBufSimpleStringPool test
- StringSimpleStringPool test
- ByteBufStringValuePool test
2018-01-17 09:33:41 +01:00
Michael André Pearce 98028cdecc ARTEMIS-1586 Refactor to make more generic
* Move byte util code into ByteUtil
* Re-use the new equals method in SimpleString
* Apply same pools/interners to client decode
* Create String to SimpleString pools/interners for property access via String keys (producer and consumer benefits)
* Lazy init the pools on withing the get methods of CoreMessageObjectPools to get the specific pool, to avoid having this scattered every where.
* reduce SimpleString creation in conversion to/from core message methods with JMS wrapper.
* reduce SimpleString creation in conversion to/from Core in OpenWire, AMQP, MQTT.
2018-01-17 09:33:41 +01:00
Francesco Nigro 8d776eddfc ARTEMIS-1586 Reduce GC pressure due to String allocations on Core protocol
The commit contains:
- a general purpose interner implementation
- StringValue/SimpleString internrs specializations
- TypedProperties keys/values string interning for SessionSendMessage decoding
2018-01-17 09:33:41 +01:00
Clebert Suconic ba9d06ba70 NO-JIRA fixing header copy & paste error 2018-01-09 10:34:38 -06:00
Francesco Nigro dab05adf6c ARTEMIS-1572 UTF-8 Encoding is not translating ASCII edge cases correctly
It fixed 0-127 ASCII chars translation using UTF encoding
2018-01-04 13:57:08 -06:00
Michael André Pearce 3ef98044f8 ARTEMIS-1516 - Ensure JNDI via Tomcat Resource works
Apply fix so that when using JNDI via tomcat resource it works. 
Replace original extract of JNDIStorable taken from Qpid, and use ActiveMQ5's as fits better to address this issue. (which primary use case is users migrating from 5.x)
Refactored ActiveMQConnectionFactory to externalise and turn into reference by StringRefAddr's instead of custom RefAddr which isnt standard.
Refactored ActiveMQDestinations similar
Refactored ActiveMQDestination to remove redundent and duplicated name field and ensured getters still behave the same
2017-12-19 09:20:35 -05:00
Justin Bertram 08106453b5 NO-JIRA add expected MQTT threadgroup to test rule 2017-12-12 09:33:00 -06:00
Clebert Suconic f9d101d0a1 ARTEMIS-1531 Adding timedbuffer operations on critical analyzer
Also, making TimedBuffer.stop() synchronized to avoid issues during device outages
2017-11-29 18:09:00 -05:00