You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Jean-Baptiste Onofré (Jira)" <ji...@apache.org> on 2020/03/03 16:10:00 UTC

[jira] [Reopened] (AMQ-7347) Unnecessary stack trace in case of invalid selector

     [ https://issues.apache.org/jira/browse/AMQ-7347?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jean-Baptiste Onofré reopened AMQ-7347:
---------------------------------------

> Unnecessary stack trace in case of invalid selector
> ---------------------------------------------------
>
>                 Key: AMQ-7347
>                 URL: https://issues.apache.org/jira/browse/AMQ-7347
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: STOMP
>            Reporter: Lionel Cons
>            Assignee: Jean-Baptiste Onofré
>            Priority: Minor
>             Fix For: 5.16.0, 5.15.12
>
>
> When using an invalid selector in STOMP, ActiveMQ logs a full stack trace:
> {code:java}
> 2019-11-20 09:23:57,842 [ActiveMQ NIO Worker 26] ERROR TopicRegion - Failed to create TopicSubscription 
> javax.jms.InvalidSelectorException: foo.bar = 'good'
> 	at org.apache.activemq.selector.SelectorParser.parse(SelectorParser.java:88)
> 	at org.apache.activemq.selector.SelectorParser.parse(SelectorParser.java:58)
> 	at org.apache.activemq.broker.region.AbstractSubscription.parseSelector(AbstractSubscription.java:75)
> 	at org.apache.activemq.broker.region.AbstractSubscription.<init>(AbstractSubscription.java:68)
> 	at org.apache.activemq.broker.region.TopicSubscription.<init>(TopicSubscription.java:73)
> 	at org.apache.activemq.broker.region.TopicRegion.createSubscription(TopicRegion.java:361)
> 	at org.apache.activemq.broker.jmx.ManagedTopicRegion.createSubscription(ManagedTopicRegion.java:44)
> 	at org.apache.activemq.broker.region.AbstractRegion.addConsumer(AbstractRegion.java:379)
> 	at org.apache.activemq.broker.region.TopicRegion.addConsumer(TopicRegion.java:188)
> 	at org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:418)
> 	at org.apache.activemq.broker.jmx.ManagedRegionBroker.addConsumer(ManagedRegionBroker.java:240)
> 	at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:104)
> 	at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:104)
> 	at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:104)
> 	at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:104)
> 	at org.apache.activemq.security.AuthorizationBroker.addConsumer(AuthorizationBroker.java:183)
> 	at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:104)
> 	at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:104)
> 	at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:104)
> 	at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:104)
> 	at org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.java:703)
> 	at org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:352)
> 	at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:336)
> 	at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:200)
> 	at org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:45)
> 	at org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:301)
> 	at org.apache.activemq.transport.stomp.StompTransportFilter.sendToActiveMQ(StompTransportFilter.java:97)
> 	at org.apache.activemq.transport.stomp.ProtocolConverter.sendToActiveMQ(ProtocolConverter.java:177)
> 	at org.apache.activemq.transport.stomp.ProtocolConverter.onStompSubscribe(ProtocolConverter.java:646)
> 	at org.apache.activemq.transport.stomp.ProtocolConverter.onStompCommand(ProtocolConverter.java:235)
> 	at org.apache.activemq.transport.stomp.StompTransportFilter.onCommand(StompTransportFilter.java:85)
> 	at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
> 	at org.apache.activemq.transport.stomp.StompCodec.processCommand(StompCodec.java:133)
> 	at org.apache.activemq.transport.stomp.StompCodec.parse(StompCodec.java:100)
> 	at org.apache.activemq.transport.stomp.StompNIOTransport.processBuffer(StompNIOTransport.java:136)
> 	at org.apache.activemq.transport.stomp.StompNIOTransport.serviceRead(StompNIOTransport.java:121)
> 	at org.apache.activemq.transport.stomp.StompNIOTransport.access$000(StompNIOTransport.java:44)
> 	at org.apache.activemq.transport.stomp.StompNIOTransport$1.onSelect(StompNIOTransport.java:73)
> 	at org.apache.activemq.transport.nio.SelectorSelection.onSelect(SelectorSelection.java:98)
> 	at org.apache.activemq.transport.nio.SelectorWorker$1.run(SelectorWorker.java:123)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> 	at java.lang.Thread.run(Thread.java:748)
> Caused by: org.apache.activemq.selector.TokenMgrError: Lexical error at line 1, column 5.  Encountered: "b" (98), after : "."
> 	at org.apache.activemq.selector.SelectorParserTokenManager.getNextToken(SelectorParserTokenManager.java:1053)
> 	at org.apache.activemq.selector.SelectorParser.jj_scan_token(SelectorParser.java:1271)
> 	at org.apache.activemq.selector.SelectorParser.jj_3_7(SelectorParser.java:946)
> 	at org.apache.activemq.selector.SelectorParser.jj_2_7(SelectorParser.java:658)
> 	at org.apache.activemq.selector.SelectorParser.unaryExpr(SelectorParser.java:458)
> 	at org.apache.activemq.selector.SelectorParser.multExpr(SelectorParser.java:392)
> 	at org.apache.activemq.selector.SelectorParser.addExpression(SelectorParser.java:361)
> 	at org.apache.activemq.selector.SelectorParser.comparisonExpression(SelectorParser.java:213)
> 	at org.apache.activemq.selector.SelectorParser.equalityExpression(SelectorParser.java:158)
> 	at org.apache.activemq.selector.SelectorParser.andExpression(SelectorParser.java:137)
> 	at org.apache.activemq.selector.SelectorParser.orExpression(SelectorParser.java:116)
> 	at org.apache.activemq.selector.SelectorParser.JmsSelector(SelectorParser.java:107)
> 	at org.apache.activemq.selector.SelectorParser.parse(SelectorParser.java:85)
> 	... 42 more
> {code}
> First of all, a single line containing the error message ({{javax.jms.InvalidSelectorException: foo.bar = 'good'}}) is enough. The stack trace is not needed.
> Then, connection information (e.g. IP address) would be very useful to track down the culprit.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)