sainadh777 opened a new pull request, #1079:
URL: https://github.com/apache/tomcat/pull/1079

   ## Summary
   
   - remove only the requested attribute from a `BaseModelMBean` 
attribute-change listener registration
   - preserve other attribute registrations, including listeners initially 
registered for all attributes
   - keep general notification registrations intact
   - add regression coverage and remove completed TODO item 7.1
   
   ## Rationale
   
   `BaseModelMBean.removeAttributeChangeNotificationListener(listener, name)` 
currently delegates to the broadcaster's listener-only removal method. That 
removes every registration for the listener, even though the JMX API accepts an 
attribute name and documents attribute-specific removal.
   
   The filter now distinguishes an explicit set of accepted names from an 
accept-all registration with individual exclusions. This allows one attribute 
to be removed without losing the remaining subscription.
   
   ## Impact
   
   The change is limited to modeler notification listener bookkeeping. It does 
not alter notification contents or delivery for listeners that have not removed 
an attribute registration.
   
   ## Validation
   
   All final gates ran with Eclipse Temurin JDK 25.0.3 in an isolated Linux 
Docker `overlayfs` workspace containing the exact committed sources.
   
   - `ant -Dbase.path=/tomcat-build-libs -Dexecute.validate=true validate` — 
passed; Checkstyle 14.3.0 reported no violations.
   - `ant -Dbase.path=/tomcat-build-libs clean && ant 
-Dbase.path=/tomcat-build-libs` — passed clean source build.
   - `ant -Dbase.path=/tomcat-build-libs 
-Dtest.entry=org.apache.tomcat.util.modeler.TestBaseModelMBean test` — passed: 
4 tests, 0 failures, 0 errors, 0 skipped.
   - `ant -Dbase.path=/tomcat-build-libs -Dtest.threads=4 test` — passed: 
41,548 tests across 677 reports, 0 failures, 0 errors, 362 
environment/optional-feature skips.
   - Generated distribution smoke test using `bin/catalina.sh run`, `curl 
http://127.0.0.1:8080/`, and `bin/shutdown.sh` — HTTP 200, Tomcat process 
exited 0, post-stop endpoint unavailable.
   
   An initial full-suite run from a Linux container over a macOS bind mount 
failed only `TestDirResourceSetReadOnly.testGetResourceCaseSensitive`. The same 
unfiltered command passed on Docker-managed `overlayfs`, confirming the failure 
was the bind mount's case-insensitive filesystem semantics. An initial detached 
smoke run also returned HTTP 200 and shut the endpoint down, but Docker's 
non-reaping PID 1 left the exited Java process as a zombie; the final 
foreground-child smoke run above reaped the process and passed cleanly.
   


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


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to