-
Notifications
You must be signed in to change notification settings - Fork 38.8k
Closed
Closed
Copy link
Labels
in: webIssues in web modules (web, webmvc, webflux, websocket)Issues in web modules (web, webmvc, webflux, websocket)type: enhancementA general enhancementA general enhancement
Milestone
Description
Ali Shahbour opened SPR-14044 and commented
When using Artemis as StompBrokerRelay , queue names should follow jms for example jms.queue.call.
Every thing worked fine except when trying to send message or subscribe to user queue , i subscribe to queue like this /user/jms.queue.call, it did not work and the reason is in DefaultUserDestinationResolver and specifically in:
private ParseResult parse(Message<?> message)
.
.
int prefixEnd = this.prefix.length() - 1;
String actualDestination = destination.substring(prefixEnd);The actualDestination is resolved as /jms.queue.call which did not work with Artemis.
Same for sending message:
int prefixEnd = this.prefix.length();
int userEnd = destination.indexOf('/', prefixEnd);
Assert.isTrue(userEnd > 0, "Expected destination pattern \"/user/{userId}/**\"");
String actualDestination = destination.substring(userEnd);
String subscribeDestination = this.prefix.substring(0, prefixEnd - 1) + actualDestination;ActualDestination had the same extra /.
I removed these through debugging and it worked.
Shouldn't DefaultUserDestinationResolver support both . and / as delimiter ?
Affects: 4.2.5
Issue Links:
- config.enableSimpleBroker("/topic", "/queue"); Should be config.enableSimpleBroker("/topic", "queue"); [SPR-16275] #20822 config.enableSimpleBroker("/topic", "/queue"); Should be config.enableSimpleBroker("/topic", "queue");
Referenced from: commits 1835942
Metadata
Metadata
Assignees
Labels
in: webIssues in web modules (web, webmvc, webflux, websocket)Issues in web modules (web, webmvc, webflux, websocket)type: enhancementA general enhancementA general enhancement