Uploaded image for project: 'ActiveMQ Artemis'
  1. ActiveMQ Artemis
  2. ARTEMIS-631

Unnecessary stack trace in case of incorrect selector

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.3.0
    • 1.4.0
    • None
    • None

    Description

      I've tried to use an invalid selector via STOMP. The broker complained with a stack trace:

      2016-07-15 08:02:07,754 [org.apache.activemq.artemis.core.server] ERROR AMQ224006: Invalid filter: foo/bar: org.apache.activemq.artemis.selector.filter.FilterException: foo/bar
      	at org.apache.activemq.artemis.selector.impl.SelectorParser.parse(SelectorParser.java:90) [artemis-selector-1.4.0-SNAPSHOT.jar:1.4.0-SNAPSHOT]
      	at org.apache.activemq.artemis.core.filter.impl.FilterImpl.createFilter(FilterImpl.java:78) [artemis-server-1.4.0-SNAPSHOT.jar:1.4.0-SNAPSHOT]
      	at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.createQueue(ActiveMQServerImpl.java:2145) [artemis-server-1.4.0-SNAPSHOT.jar:1.4.0-SNAPSHOT]
      	at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.createQueue(ActiveMQServerImpl.java:1406) [artemis-server-1.4.0-SNAPSHOT.jar:1.4.0-SNAPSHOT]
      	at org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.createQueue(ServerSessionImpl.java:505) [artemis-server-1.4.0-SNAPSHOT.jar:1.4.0-SNAPSHOT]
      	at org.apache.activemq.artemis.core.protocol.stomp.StompSession.addSubscription(StompSession.java:295) [artemis-stomp-protocol-1.4.0-SNAPSHOT.jar:]
      	at org.apache.activemq.artemis.core.protocol.stomp.StompProtocolManager.createSubscription(StompProtocolManager.java:389) [artemis-stomp-protocol-1.4.0-SNAPSHOT.jar:]
      	at org.apache.activemq.artemis.core.protocol.stomp.StompConnection.subscribe(StompConnection.java:642) [artemis-stomp-protocol-1.4.0-SNAPSHOT.jar:]
      	at org.apache.activemq.artemis.core.protocol.stomp.VersionedStompFrameHandler.onSubscribe(VersionedStompFrameHandler.java:261) [artemis-stomp-protocol-1.4.0-SNAPSHOT.jar:]
      	at org.apache.activemq.artemis.core.protocol.stomp.VersionedStompFrameHandler.handleFrame(VersionedStompFrameHandler.java:91) [artemis-stomp-protocol-1.4.0-SNAPSHOT.jar:]
      	at org.apache.activemq.artemis.core.protocol.stomp.StompConnection.handleFrame(StompConnection.java:489) [artemis-stomp-protocol-1.4.0-SNAPSHOT.jar:]
      	at org.apache.activemq.artemis.core.protocol.stomp.StompProtocolManager.handleBuffer(StompProtocolManager.java:172) [artemis-stomp-protocol-1.4.0-SNAPSHOT.jar:]
      	at org.apache.activemq.artemis.core.protocol.stomp.StompConnection.bufferReceived(StompConnection.java:349) [artemis-stomp-protocol-1.4.0-SNAPSHOT.jar:]
      	at org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:609) [artemis-server-1.4.0-SNAPSHOT.jar:1.4.0-SNAPSHOT]
      	at org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:68) [artemis-core-client-1.4.0-SNAPSHOT.jar:1.4.0-SNAPSHOT]
      	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308) [netty-all-4.0.32.Final.jar:4.0.32.Final]
      	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294) [netty-all-4.0.32.Final.jar:4.0.32.Final]
      	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:846) [netty-all-4.0.32.Final.jar:4.0.32.Final]
      	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131) [netty-all-4.0.32.Final.jar:4.0.32.Final]
      	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511) [netty-all-4.0.32.Final.jar:4.0.32.Final]
      	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468) [netty-all-4.0.32.Final.jar:4.0.32.Final]
      	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382) [netty-all-4.0.32.Final.jar:4.0.32.Final]
      	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354) [netty-all-4.0.32.Final.jar:4.0.32.Final]
      	at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112) [netty-all-4.0.32.Final.jar:4.0.32.Final]
      	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_92]
      Caused by: org.apache.activemq.artemis.selector.strict.ParseException: Expression will not result in a boolean value: (foo / bar)
      	at org.apache.activemq.artemis.selector.strict.StrictParser.asBooleanExpression(StrictParser.java:39) [artemis-selector-1.4.0-SNAPSHOT.jar:1.4.0-SNAPSHOT]
      	at org.apache.activemq.artemis.selector.strict.StrictParser.JmsSelector(StrictParser.java:49) [artemis-selector-1.4.0-SNAPSHOT.jar:1.4.0-SNAPSHOT]
      	at org.apache.activemq.artemis.selector.impl.SelectorParser.parse(SelectorParser.java:84) [artemis-selector-1.4.0-SNAPSHOT.jar:1.4.0-SNAPSHOT]
      	... 24 more
      

      A single error line is enough. The full stack trace does not bring anything and should be removed.

      Attachments

        Issue Links

          Activity

            People

              jbertram Justin Bertram
              lionel.cons Lionel Cons
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: