gemmellr commented on a change in pull request #3835:
URL: https://github.com/apache/activemq-artemis/pull/3835#discussion_r741887989



##########
File path: 
artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/ActiveMQServerControl.java
##########
@@ -1090,7 +1090,7 @@ void destroyQueue(@Parameter(name = "name", desc = "Name 
of the queue to destroy
    @Operation(desc = "Destroy a queue", impact = MBeanOperationInfo.ACTION)
    void destroyQueue(@Parameter(name = "name", desc = "Name of the queue to 
destroy") String name,
                      @Parameter(name = "removeConsumers", desc = "Remove 
consumers of this queue") boolean removeConsumers,
-                     @Parameter(name = "forceAutoDeleteAddress", desc = 
"Automatically delete the address if this was the last queue") boolean 
autoDeleteAddress) throws Exception;
+                     @Parameter(name = "instantAutoDeleteAddress", desc = 
"Immediately delete the auto-created address if this was the last queue, 
ignoring any settings from address-settings") boolean autoDeleteAddress) throws 
Exception;

Review comment:
       ```suggestion
                        @Parameter(name = "instantAutoDeleteAddress", desc = 
"Try to auto-delete the address now if it was auto-created, this was the last 
queue bound to it, and it has no auto-delete delay configured") boolean 
instantAutoDeleteAddress) throws Exception;
   ```
   The change made the unclear behaviour better in some ways (noting it applied 
to auto-created addresses), but makes it worse in others. It says it ignores 
any settings from address-settings, but it doesnt entirely. 
   
   It still adheres to the AutoDeleteAddressesDelay value, which is quite 
important since if there is one, it will mean the address is _never_ removed if 
autoDeleteAddress is false for the address-settings and so the reaper doesnt 
auto-delete it later either.
   
   The suggestion updates the text to cover that, and fixes the arg name.

##########
File path: 
artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java
##########
@@ -2337,16 +2337,23 @@ public void destroyQueue(final SimpleString queueName,
                             final SecurityAuth session,
                             final boolean checkConsumerCount,
                             final boolean removeConsumers,
-                            final boolean forceAutoDeleteAddress) throws 
Exception {
-      destroyQueue(queueName, session, checkConsumerCount, removeConsumers, 
forceAutoDeleteAddress, false);
+                            final boolean instantAutoDeleteAddress) throws 
Exception {
+      destroyQueue(queueName, session, checkConsumerCount, removeConsumers, 
instantAutoDeleteAddress, false);
    }
 
+   /**
+    * instantAutoDeleteAddress will immediately remove any auto-created 
address when the last queue for that address is removed.
+    * Normally the reaper should be responsible for dealing with that but if 
this parameter is set it will be removed instantly.

Review comment:
       As earlier comment, somewhat overstates the immediacy. It wont be 
removed if there is a auto delete delay configured. It will then never be 
removed if the reaper isnt active for the address (as in case that caused the 
report).
   
   This should really be javadoc rather than just a comment, and be on the 
interface rather than the impl.

##########
File path: 
artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/ActiveMQServerControl.java
##########
@@ -1090,7 +1090,7 @@ void destroyQueue(@Parameter(name = "name", desc = "Name 
of the queue to destroy
    @Operation(desc = "Destroy a queue", impact = MBeanOperationInfo.ACTION)
    void destroyQueue(@Parameter(name = "name", desc = "Name of the queue to 
destroy") String name,
                      @Parameter(name = "removeConsumers", desc = "Remove 
consumers of this queue") boolean removeConsumers,
-                     @Parameter(name = "forceAutoDeleteAddress", desc = 
"Automatically delete the address if this was the last queue") boolean 
autoDeleteAddress) throws Exception;
+                     @Parameter(name = "instantAutoDeleteAddress", desc = 
"Immediately delete the auto-created address if this was the last queue, 
ignoring any settings from address-settings") boolean autoDeleteAddress) throws 
Exception;

Review comment:
       Fine with me, as I said in the other PR I think that was a likely 
interpretation of what this should do, which is why the description was an 
issue since it didn't really describe what it actually did.
   
   The autoDeleteAddress arg still needs renamed.

##########
File path: 
artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/ActiveMQServerControl.java
##########
@@ -1090,7 +1090,7 @@ void destroyQueue(@Parameter(name = "name", desc = "Name 
of the queue to destroy
    @Operation(desc = "Destroy a queue", impact = MBeanOperationInfo.ACTION)
    void destroyQueue(@Parameter(name = "name", desc = "Name of the queue to 
destroy") String name,
                      @Parameter(name = "removeConsumers", desc = "Remove 
consumers of this queue") boolean removeConsumers,
-                     @Parameter(name = "forceAutoDeleteAddress", desc = 
"Automatically delete the address if this was the last queue") boolean 
autoDeleteAddress) throws Exception;
+                     @Parameter(name = "instantAutoDeleteAddress", desc = 
"Immediately delete the auto-created address if this was the last queue, 
ignoring any settings from address-settings") boolean autoDeleteAddress) throws 
Exception;

Review comment:
       Or maybe it doesnt. I would be fine leave them all as autoDeleteAddress 
rather than renaming any of them.

##########
File path: 
artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/ActiveMQServerControl.java
##########
@@ -1090,7 +1090,7 @@ void destroyQueue(@Parameter(name = "name", desc = "Name 
of the queue to destroy
    @Operation(desc = "Destroy a queue", impact = MBeanOperationInfo.ACTION)
    void destroyQueue(@Parameter(name = "name", desc = "Name of the queue to 
destroy") String name,
                      @Parameter(name = "removeConsumers", desc = "Remove 
consumers of this queue") boolean removeConsumers,
-                     @Parameter(name = "forceAutoDeleteAddress", desc = 
"Automatically delete the address if this was the last queue") boolean 
autoDeleteAddress) throws Exception;
+                     @Parameter(name = "instantAutoDeleteAddress", desc = 
"Immediately delete the auto-created address if this was the last queue, 
ignoring any settings from address-settings") boolean autoDeleteAddress) throws 
Exception;

Review comment:
       Or maybe it doesnt. I would be fine leaving them all as 
autoDeleteAddress rather than renaming any of them.

##########
File path: 
artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/ActiveMQServerControl.java
##########
@@ -1090,7 +1090,7 @@ void destroyQueue(@Parameter(name = "name", desc = "Name 
of the queue to destroy
    @Operation(desc = "Destroy a queue", impact = MBeanOperationInfo.ACTION)
    void destroyQueue(@Parameter(name = "name", desc = "Name of the queue to 
destroy") String name,
                      @Parameter(name = "removeConsumers", desc = "Remove 
consumers of this queue") boolean removeConsumers,
-                     @Parameter(name = "forceAutoDeleteAddress", desc = 
"Automatically delete the address if this was the last queue") boolean 
autoDeleteAddress) throws Exception;
+                     @Parameter(name = "instantAutoDeleteAddress", desc = 
"Immediately delete the auto-created address if this was the last queue, 
ignoring any settings from address-settings") boolean autoDeleteAddress) throws 
Exception;

Review comment:
       Or maybe it doesnt. I would be fine leaving them all as 
autoDeleteAddress rather than renaming any of them (from their original state 
before the other PR).

##########
File path: 
artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/ActiveMQServerControl.java
##########
@@ -1090,7 +1090,7 @@ void destroyQueue(@Parameter(name = "name", desc = "Name 
of the queue to destroy
    @Operation(desc = "Destroy a queue", impact = MBeanOperationInfo.ACTION)
    void destroyQueue(@Parameter(name = "name", desc = "Name of the queue to 
destroy") String name,
                      @Parameter(name = "removeConsumers", desc = "Remove 
consumers of this queue") boolean removeConsumers,
-                     @Parameter(name = "forceAutoDeleteAddress", desc = 
"Automatically delete the address if this was the last queue") boolean 
autoDeleteAddress) throws Exception;
+                     @Parameter(name = "instantAutoDeleteAddress", desc = 
"Immediately delete the auto-created address if this was the last queue, 
ignoring any settings from address-settings") boolean autoDeleteAddress) throws 
Exception;

Review comment:
       ```suggestion
                        @Parameter(name = "instantAutoDeleteAddress", desc = 
"Try to auto-delete the address now if it was auto-created, this was the last 
queue bound to it, and it has no auto-delete delay configured") boolean 
instantAutoDeleteAddress) throws Exception;
   ```
   The change made the unclear behaviour better in some ways (noting it applied 
to auto-created addresses), but makes it worse in others. It says it ignores 
any settings from address-settings, but it doesnt entirely. 
   
   It still adheres to the AutoDeleteAddressesDelay value, which is quite 
important since if there is one, it will mean the address is _never_ removed if 
autoDeleteAddress is false for the address-settings and so the reaper doesnt 
auto-delete it later either.
   
   The suggestion updates the text to cover that, and fixes the arg name.

##########
File path: 
artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java
##########
@@ -2337,16 +2337,23 @@ public void destroyQueue(final SimpleString queueName,
                             final SecurityAuth session,
                             final boolean checkConsumerCount,
                             final boolean removeConsumers,
-                            final boolean forceAutoDeleteAddress) throws 
Exception {
-      destroyQueue(queueName, session, checkConsumerCount, removeConsumers, 
forceAutoDeleteAddress, false);
+                            final boolean instantAutoDeleteAddress) throws 
Exception {
+      destroyQueue(queueName, session, checkConsumerCount, removeConsumers, 
instantAutoDeleteAddress, false);
    }
 
+   /**
+    * instantAutoDeleteAddress will immediately remove any auto-created 
address when the last queue for that address is removed.
+    * Normally the reaper should be responsible for dealing with that but if 
this parameter is set it will be removed instantly.

Review comment:
       As earlier comment, somewhat overstates the immediacy. It wont be 
removed if there is a auto delete delay configured. It will then never be 
removed if the reaper isnt active for the address (as in case that caused the 
report).
   
   This should really be javadoc rather than just a comment, and be on the 
interface rather than the impl.

##########
File path: 
artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/ActiveMQServerControl.java
##########
@@ -1090,7 +1090,7 @@ void destroyQueue(@Parameter(name = "name", desc = "Name 
of the queue to destroy
    @Operation(desc = "Destroy a queue", impact = MBeanOperationInfo.ACTION)
    void destroyQueue(@Parameter(name = "name", desc = "Name of the queue to 
destroy") String name,
                      @Parameter(name = "removeConsumers", desc = "Remove 
consumers of this queue") boolean removeConsumers,
-                     @Parameter(name = "forceAutoDeleteAddress", desc = 
"Automatically delete the address if this was the last queue") boolean 
autoDeleteAddress) throws Exception;
+                     @Parameter(name = "instantAutoDeleteAddress", desc = 
"Immediately delete the auto-created address if this was the last queue, 
ignoring any settings from address-settings") boolean autoDeleteAddress) throws 
Exception;

Review comment:
       Fine with me, as I said in the other PR I think that was a likely 
interpretation of what this should do, which is why the description was an 
issue since it didn't really describe what it actually did.
   
   The autoDeleteAddress arg still needs renamed.

##########
File path: 
artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/ActiveMQServerControl.java
##########
@@ -1090,7 +1090,7 @@ void destroyQueue(@Parameter(name = "name", desc = "Name 
of the queue to destroy
    @Operation(desc = "Destroy a queue", impact = MBeanOperationInfo.ACTION)
    void destroyQueue(@Parameter(name = "name", desc = "Name of the queue to 
destroy") String name,
                      @Parameter(name = "removeConsumers", desc = "Remove 
consumers of this queue") boolean removeConsumers,
-                     @Parameter(name = "forceAutoDeleteAddress", desc = 
"Automatically delete the address if this was the last queue") boolean 
autoDeleteAddress) throws Exception;
+                     @Parameter(name = "instantAutoDeleteAddress", desc = 
"Immediately delete the auto-created address if this was the last queue, 
ignoring any settings from address-settings") boolean autoDeleteAddress) throws 
Exception;

Review comment:
       Or maybe it doesnt. I would be fine leave them all as autoDeleteAddress 
rather than renaming any of them.

##########
File path: 
artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/ActiveMQServerControl.java
##########
@@ -1090,7 +1090,7 @@ void destroyQueue(@Parameter(name = "name", desc = "Name 
of the queue to destroy
    @Operation(desc = "Destroy a queue", impact = MBeanOperationInfo.ACTION)
    void destroyQueue(@Parameter(name = "name", desc = "Name of the queue to 
destroy") String name,
                      @Parameter(name = "removeConsumers", desc = "Remove 
consumers of this queue") boolean removeConsumers,
-                     @Parameter(name = "forceAutoDeleteAddress", desc = 
"Automatically delete the address if this was the last queue") boolean 
autoDeleteAddress) throws Exception;
+                     @Parameter(name = "instantAutoDeleteAddress", desc = 
"Immediately delete the auto-created address if this was the last queue, 
ignoring any settings from address-settings") boolean autoDeleteAddress) throws 
Exception;

Review comment:
       Or maybe it doesnt. I would be fine leaving them all as 
autoDeleteAddress rather than renaming any of them.

##########
File path: 
artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/ActiveMQServerControl.java
##########
@@ -1090,7 +1090,7 @@ void destroyQueue(@Parameter(name = "name", desc = "Name 
of the queue to destroy
    @Operation(desc = "Destroy a queue", impact = MBeanOperationInfo.ACTION)
    void destroyQueue(@Parameter(name = "name", desc = "Name of the queue to 
destroy") String name,
                      @Parameter(name = "removeConsumers", desc = "Remove 
consumers of this queue") boolean removeConsumers,
-                     @Parameter(name = "forceAutoDeleteAddress", desc = 
"Automatically delete the address if this was the last queue") boolean 
autoDeleteAddress) throws Exception;
+                     @Parameter(name = "instantAutoDeleteAddress", desc = 
"Immediately delete the auto-created address if this was the last queue, 
ignoring any settings from address-settings") boolean autoDeleteAddress) throws 
Exception;

Review comment:
       Or maybe it doesnt. I would be fine leaving them all as 
autoDeleteAddress rather than renaming any of them (from their original state 
before the other PR).




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to