[ 
https://issues.apache.org/jira/browse/ARTEMIS-4809?focusedWorklogId=928470&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-928470
 ]

ASF GitHub Bot logged work on ARTEMIS-4809:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 02/Aug/24 11:08
            Start Date: 02/Aug/24 11:08
    Worklog Time Spent: 10m 
      Work Description: gemmellr commented on code in PR #4966:
URL: https://github.com/apache/activemq-artemis/pull/4966#discussion_r1701646452


##########
artemis-commons/src/main/java/org/apache/activemq/artemis/utils/RandomUtil.java:
##########
@@ -60,6 +60,10 @@ public static int randomPositiveInt() {
       return Math.abs(RandomUtil.randomInt());
    }
 
+   public static int randomPowerOfTwo() {
+      return (int) Math.pow(2, RandomUtil.randomInterval(1, 10));
+   }
+

Review Comment:
   This seems to be restricted to not returning anything above 1024 (or 1, 
though thats more understandable for most uses of such a method), leaving out a 
fair number of values. I can see why that might be desirable in some tests 
given the aimed use case, but I dont think it makes sense to introduce the 
method with that unspecified behaviour this class (which I'd like to 
move/disappear long term given its main uses). It should either be made more 
general or I would omit adding the method here and just do whats desired in the 
test.



##########
artemis-server/src/main/java/org/apache/activemq/artemis/core/config/impl/Validators.java:
##########
@@ -107,6 +107,14 @@ public interface Validator<T> {
       }
    };
 
+   public static final Validator<Number> POSITIVE_POWER_OF_TWO = (name, value) 
-> {
+      if ((value.longValue() & (value.longValue() - 1)) == 0 && 
value.longValue() > 0) {
+         return value;
+      } else {
+         throw ActiveMQMessageBundle.BUNDLE.powerOfTwo(name, value);

Review Comment:
   if the validator is being called POSITIVE_POWER_OF_TWO would it make sense 
for the exception bundle method to be specific as well?



##########
artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/ValidatorsTest.java:
##########
@@ -152,4 +152,14 @@ public void testTWO_CHARACTERS() {
       ValidatorsTest.success(Validators.NULL_OR_TWO_CHARACTERS, null);
    }
 
+   @Test
+   public void testPOSITIVE_POWER_OF_TWO() {
+      ValidatorsTest.failure(Validators.POSITIVE_POWER_OF_TWO, 0);
+      ValidatorsTest.failure(Validators.POSITIVE_POWER_OF_TWO, -10);
+      ValidatorsTest.failure(Validators.POSITIVE_POWER_OF_TWO, 127);
+
+      ValidatorsTest.success(Validators.POSITIVE_POWER_OF_TWO, 2);
+      ValidatorsTest.success(Validators.POSITIVE_POWER_OF_TWO, 64);

Review Comment:
   Would check the high extreme values that are expected to fail and work 
respectively.





Issue Time Tracking
-------------------

    Worklog Id:     (was: 928470)
    Time Spent: 2.5h  (was: 2h 20m)

> Make intermediateMessageReferences initial capacity configurable
> ----------------------------------------------------------------
>
>                 Key: ARTEMIS-4809
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-4809
>             Project: ActiveMQ Artemis
>          Issue Type: New Feature
>          Components: Broker
>            Reporter: Josh Byster
>            Priority: Minor
>          Time Spent: 2.5h
>  Remaining Estimate: 0h
>
> In some setups, there could be a few hundred thousand queues that are created 
> due to many consumers that are connecting. However, most of these are empty 
> and stay empty for the entire day since there aren't necessarily messages to 
> be sent.
> The 8K {{intermediateMessageReferences}} instantiates an 64KB buffer 
> ({{Object[]}}). This means we have large allocation and live heap that 
> ultimately remains empty for almost the entire day.
> It would be quite nice if we could configure this initial size.



--
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