Skip to content

[#] async send completion listener#1728

Open
jeanouii wants to merge 10 commits intoapache:mainfrom
jeanouii:feat/async-send-completion-listener
Open

[#] async send completion listener#1728
jeanouii wants to merge 10 commits intoapache:mainfrom
jeanouii:feat/async-send-completion-listener

Conversation

@jeanouii
Copy link
Contributor

No description provided.

…pache#1718)

ActiveMQ reports JMS version as 1.1 (JMS 1.1 era). Since the project
now uses jakarta.jms (Jakarta Messaging 3.1), the metadata must match.

- getJMSVersion(): "1.1" → "3.1"
- getJMSMajorVersion(): 1 → 3
…pache#1722) (apache#1724) (apache#1719)

Several methods threw wrong exception types, causing TCK failures:

- MessageProducer.send() with null destination on an unbound producer
  threw UnsupportedOperationException instead of InvalidDestinationException
- JMSProducer.send() with null message threw NPE instead of
  MessageFormatRuntimeException
- checkClientIDWasManuallySpecified() threw JMSException instead of
  jakarta.jms.IllegalStateException for durable subscribers without
  a client ID
…es (apache#1720)

getPropertyNames() only included JMSXDeliveryCount when
redeliveryCounter != 0. Since JMSXDeliveryCount = redeliveryCounter + 1,
it is always >= 1 on a received message and should always be enumerated.

The TCK sets 17 custom properties and expects getPropertyNames() to
return 18 (17 + JMSXDeliveryCount).
…shared consumer methods (apache#1719)

The shared consumer methods (createSharedConsumer, createSharedDurableConsumer)
threw UnsupportedOperationException immediately without validating inputs.
Per the JMS spec, parameter validation must happen first:

- Session: null topic now throws InvalidDestinationException, invalid
  selector now throws InvalidSelectorException
- JMSContext: null topic now throws InvalidDestinationRuntimeException

This fixes the TCK invalidDestinationExceptionTests and
invalidSelectorExceptionTopicTests for Session, and the corresponding
JMSContext tests.
…t destination parameter

calling send(destination, message) on fixed-destination producers — a JMS spec violation that the old code silently allowed
@jeanouii jeanouii changed the title WIP [#] async send completion listener [#] async send completion listener Feb 26, 2026
@jbonofre jbonofre self-requested a review February 26, 2026 15:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant