Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[fix] Fix UnsupportedOperationException when update topic policies #24048

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

dao-jun
Copy link
Member

@dao-jun dao-jun commented Mar 4, 2025

Fixes #24043

Motivation

Fixes #24043

Modifications

Verifying this change

  • Make sure that the change passes the CI checks.

(Please pick either of the following options)

This change is a trivial rework / code cleanup without any test coverage.

(or)

This change is already covered by existing tests, such as (please describe tests).

(or)

This change added tests and can be verified as follows:

(example:)

  • Added integration tests for end-to-end deployment with large payloads (10MB)
  • Extended integration test for recovery after broker failure

Does this pull request potentially affect one of the following parts:

If the box was checked, please highlight the changes

  • Dependencies (add or upgrade a dependency)
  • The public API
  • The schema
  • The default values of configurations
  • The threading model
  • The binary protocol
  • The REST endpoints
  • The admin CLI options
  • The metrics
  • Anything that affects deployment

Documentation

  • doc
  • doc-required
  • doc-not-needed
  • doc-complete

@dao-jun dao-jun requested a review from Technoboy- March 4, 2025 05:11
@dao-jun dao-jun self-assigned this Mar 4, 2025
@github-actions github-actions bot added the doc-not-needed Your PR changes do not impact docs label Mar 4, 2025
Comment on lines +3242 to +3243
topicPolicies.getSubscriptionPolicies().computeIfAbsent("sub", k ->
new SubscriptionPolicies()).setDispatchRate(new DispatchRateImpl());
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you replace it with an admin call? The original issue is reproduced by the bin\pulsar-admin topicPolicies set-subscription-dispatch-rate command to trigger the computeIfAbsent call:

**java.lang.UnsupportedOperationException**
        at java.base/java.util.Collections$EmptyMap.**computeIfAbsent**(Collections.java:4764)
        at org.apache.pulsar.broker.admin.impl.PersistentTopicsBase.lambda$**internalSetSubscriptionLevelDispatchRate**$487(PersistentTopicsBase.java:4960)

but the test code just test computeIfAbsent directly. If the code of internalSetSubscriptionLevelDispatchRate changed, this test would be meaningless.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/admin doc-not-needed Your PR changes do not impact docs ready-to-test release/3.0.11 release/4.0.4 type/bug The PR fixed a bug or issue reported a bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Bug] Getting UnsupportedOperationException while setting subscription level dispatch rate policy
3 participants