Olga Kostina created ARTEMIS-5686:
-------------------------------------

             Summary: There is an exception which occurs because of the setting 
"retroactive-message-count"
                 Key: ARTEMIS-5686
                 URL: https://issues.apache.org/jira/browse/ARTEMIS-5686
             Project: ActiveMQ Artemis
          Issue Type: Bug
          Components: Broker, Configuration
    Affects Versions: 2.42.0
            Reporter: Olga Kostina


If the name of the address starts with word "address" and there is a 
retroactive-message-count setting in this address, which value is more than 0, 
there is an exception when the application is started:


{code:java}
java.lang.StringIndexOutOfBoundsException: begin 19, end 18, length 40
        at java.base/java.lang.String.checkBoundsBeginEnd(String.java:4606)
        at java.base/java.lang.String.substring(String.java:2709)
        at 
org.apache.activemq.artemis.api.core.management.ResourceNames.decomposeRetroactiveResourceAddressName(ResourceNames.java:76)
        at 
org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl$1.onChange(PostOfficeImpl.java:582)
        at 
org.apache.activemq.artemis.core.settings.impl.HierarchicalObjectRepository.registerListener(HierarchicalObjectRepository.java:331)
        at 
org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.registerRepositoryListenerForRetroactiveAddress(PostOfficeImpl.java:594)
        at 
org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.internalAddressInfo(PostOfficeImpl.java:566)
        at 
org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.addAddressInfo(PostOfficeImpl.java:534)
        at 
org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.createRetroactiveResources(PostOfficeImpl.java:611)
        at 
org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.internalAddressInfo(PostOfficeImpl.java:563)
        at 
org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.addAddressInfo(PostOfficeImpl.java:534)
        at 
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.addAddressInfo(ActiveMQServerImpl.java:3980)
        at 
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.addOrUpdateAddressInfo(ActiveMQServerImpl.java:3988)
        at 
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.deployAddressesFromConfiguration(ActiveMQServerImpl.java:3805)
        at 
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.deployReloadableConfigFromConfiguration(ActiveMQServerImpl.java:4786)
        at 
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.reloadConfigurationFile(ActiveMQServerImpl.java:4705)
        at 
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.lambda$initialisePart1$17(ActiveMQServerImpl.java:3392)
        at 
org.apache.activemq.artemis.core.server.reload.ReloadManagerImpl$ReloadRegistry.check(ReloadManagerImpl.java:127)
        at 
org.apache.activemq.artemis.core.server.reload.ReloadManagerImpl.tick(ReloadManagerImpl.java:68)
        at 
org.apache.activemq.artemis.core.server.reload.ReloadManagerImpl.run(ReloadManagerImpl.java:49)
        at 
org.apache.activemq.artemis.core.server.ActiveMQScheduledComponent.runForExecutor(ActiveMQScheduledComponent.java:327)
        at 
org.apache.activemq.artemis.core.server.ActiveMQScheduledComponent.lambda$bookedRunForScheduler$3(ActiveMQScheduledComponent.java:334)
        at 
org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:59)
        at 
org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32)
        at 
org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:69)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at 
org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:120){code}

For this mechanism, Artemis creates additional resources,
including the address $.artemis.internal.address2.address.retro.
Then it tries to find the original address name in this name and crashes, 
because the address starts with the word “address”.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact


Reply via email to