Lionel Cons created AMQ-7347:
--------------------------------

             Summary: 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
            Reporter: Lionel Cons


When using an invalid selector in STOMP, ActiveMQ logs a full stack trace:

{code}
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)

Reply via email to