Skip to content

[BUG] AppConfig throws java.lang.UnsupportedOperationException on refresh #46892

@davidkarlsen

Description

@davidkarlsen

Describe the bug

java.lang.UnsupportedOperationException on refresh, see stack

Exception or Stack Trace

{"className":"java.lang.UnsupportedOperationException","message":"null","stepArray":[{"className":"java.util.Collections$UnmodifiableList","methodName":"set","fileName":"null","lineNumber":-1},{"className":"java.util.Collections","methodName":"swap","fileName":"null","lineNumber":-1},{"className":"java.util.Collections","methodName":"reverse","fileName":"null","lineNumber":-1},{"className":"com.azure.spring.cloud.appconfiguration.config.implementation.properties.AppConfigurationKeyValueSelector","methodName":"getLabelFilter","fileName":"AppConfigurationKeyValueSelector.java","lineNumber":84},{"className":"com.azure.spring.cloud.appconfiguration.config.implementation.AzureAppConfigDataLoader","methodName":"createSettings","fileName":"AzureAppConfigDataLoader.java","lineNumber":244},{"className":"com.azure.spring.cloud.appconfiguration.config.implementation.AzureAppConfigDataLoader","methodName":"load","fileName":"AzureAppConfigDataLoader.java","lineNumber":154},{"className":"com.azure.spring.cloud.appconfiguration.config.implementation.AzureAppConfigDataLoader","methodName":"load","fileName":"AzureAppConfigDataLoader.java","lineNumber":38},{"className":"org.springframework.boot.context.config.ConfigDataLoaders","methodName":"load","fileName":"ConfigDataLoaders.java","lineNumber":96},{"className":"org.springframework.boot.context.config.ConfigDataImporter","methodName":"load","fileName":"ConfigDataImporter.java","lineNumber":132},{"className":"org.springframework.boot.context.config.ConfigDataImporter","methodName":"resolveAndLoad","fileName":"ConfigDataImporter.java","lineNumber":87},{"className":"org.springframework.boot.context.config.ConfigDataEnvironmentContributors","methodName":"withProcessedImports","fileName":"ConfigDataEnvironmentContributors.java","lineNumber":129},{"className":"org.springframework.boot.context.config.ConfigDataEnvironment","methodName":"processWithProfiles","fileName":"ConfigDataEnvironment.java","lineNumber":318},{"className":"org.springframework.boot.context.config.ConfigDataEnvironment","methodName":"processAndApply","fileName":"ConfigDataEnvironment.java","lineNumber":237},{"className":"org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor","methodName":"postProcessEnvironment","fileName":"ConfigDataEnvironmentPostProcessor.java","lineNumber":96},{"className":"org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor","methodName":"postProcessEnvironment","fileName":"ConfigDataEnvironmentPostProcessor.java","lineNumber":89},{"className":"org.springframework.boot.env.EnvironmentPostProcessorApplicationListener","methodName":"onApplicationEnvironmentPreparedEvent","fileName":"EnvironmentPostProcessorApplicationListener.java","lineNumber":132},{"className":"org.springframework.boot.env.EnvironmentPostProcessorApplicationListener","methodName":"onApplicationEvent","fileName":"EnvironmentPostProcessorApplicationListener.java","lineNumber":115},{"className":"org.springframework.context.event.SimpleApplicationEventMulticaster","methodName":"doInvokeListener","fileName":"SimpleApplicationEventMulticaster.java","lineNumber":185},{"className":"org.springframework.context.event.SimpleApplicationEventMulticaster","methodName":"invokeListener","fileName":"SimpleApplicationEventMulticaster.java","lineNumber":178},{"className":"org.springframework.context.event.SimpleApplicationEventMulticaster","methodName":"multicastEvent","fileName":"SimpleApplicationEventMulticaster.java","lineNumber":156},{"className":"org.springframework.context.event.SimpleApplicationEventMulticaster","methodName":"multicastEvent","fileName":"SimpleApplicationEventMulticaster.java","lineNumber":138},{"className":"org.springframework.boot.context.event.EventPublishingRunListener","methodName":"multicastInitialEvent","fileName":"EventPublishingRunListener.java","lineNumber":136},{"className":"org.springframework.boot.context.event.EventPublishingRunListener","methodName":"environmentPrepared","fileName":"EventPublishingRunListener.java","lineNumber":81},{"className":"org.springframework.boot.SpringApplicationRunListeners","methodName":"lambda$environmentPrepared$2","fileName":"SpringApplicationRunListeners.java","lineNumber":64},{"className":"java.lang.Iterable","methodName":"forEach","fileName":"null","lineNumber":-1},{"className":"org.springframework.boot.SpringApplicationRunListeners","methodName":"doWithListeners","fileName":"SpringApplicationRunListeners.java","lineNumber":118},{"className":"org.springframework.boot.SpringApplicationRunListeners","methodName":"doWithListeners","fileName":"SpringApplicationRunListeners.java","lineNumber":112},{"className":"org.springframework.boot.SpringApplicationRunListeners","methodName":"environmentPrepared","fileName":"SpringApplicationRunListeners.java","lineNumber":63},{"className":"org.springframework.boot.SpringApplication","methodName":"prepareEnvironment","fileName":"SpringApplication.java","lineNumber":353},{"className":"org.springframework.boot.SpringApplication","methodName":"run","fileName":"SpringApplication.java","lineNumber":313},{"className":"org.springframework.boot.SpringApplication","methodName":"run","fileName":"SpringApplication.java","lineNumber":1361},{"className":"org.springframework.boot.SpringApplication","methodName":"run","fileName":"SpringApplication.java","lineNumber":1350},{"className":"no.dnb.payment.sre.refapp.domainapi.Main","methodName":"main","fileName":"Main.java","lineNumber":16},{"className":"jdk.internal.reflect.DirectMethodHandleAccessor","methodName":"invoke","fileName":"null","lineNumber":-1},{"className":"java.lang.reflect.Method","methodName":"invoke","fileName":"null","lineNumber":-1},{"className":"org.springframework.boot.loader.launch.Launcher","methodName":"launch","fileName":"Launcher.java","lineNumber":102},{"className":"org.springframework.boot.loader.launch.Launcher","methodName":"launch","fileName":"Launcher.java","lineNumber":64},{"className":"org.springframework.boot.loader.launch.JarLauncher","methodName":"main","fileName":"JarLauncher.java","lineNumber":40}]}

To Reproduce
Steps to reproduce the behavior:

libs:

<dependency>
      <groupId>com.azure.spring</groupId>
      <artifactId>spring-cloud-azure-starter-appconfiguration-config</artifactId>
    </dependency>
    <dependency>
      <groupId>com.azure.spring</groupId>
      <artifactId>spring-cloud-azure-feature-management-web</artifactId>
    </dependency>

from v6.0.0.

Config:

---
spring:
  config:
    activate:
      on-profile: "!dev"
    import: azureAppConfiguration
  cloud:
    azure:
      appconfiguration:
        stores:
          - endpoint: ${APP_CONFIG_ENDPOINT}
            replica-discovery-enabled: false
            feature-flags:
              enabled: true
              selects:
                - label-filter: sre-refapp
        endpoint: ${APP_CONFIG_ENDPOINT}

Code Snippet
See stack

Expected behavior

You should have code that don't have basic issues and actually works.

Screenshots
If applicable, add screenshots to help explain your problem.

Setup (please complete the following information):

  • OS: [e.g. iOS]
  • IDE: [e.g. IntelliJ]
  • Library/Libraries: [e.g. com.azure:azure-core:1.16.0 (groupId:artifactId:version)]
  • Java version: [e.g. 8]
  • App Server/Environment: [e.g. Tomcat, WildFly, Azure Function, Apache Spark, Databricks, IDE plugin or anything special]
  • Frameworks: [e.g. Spring Boot, Micronaut, Quarkus, etc]

If you suspect a dependency version mismatch (e.g. you see NoClassDefFoundError, NoSuchMethodError or similar), please check out Troubleshoot dependency version conflict article first. If it doesn't provide solution for the problem, please provide:

  • verbose dependency tree (mvn dependency:tree -Dverbose)
  • exception message, full stack trace, and any available logs

Additional context
Add any other context about the problem here.

Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

  • Bug Description Added
  • Repro Steps Added
  • Setup information Added

Metadata

Metadata

Assignees

Labels

ClientThis issue points to a problem in the data-plane of the library.azure-springAll azure-spring related issuesbugThis issue requires a change to an existing behavior in the product in order to be resolved.customer-reportedIssues that are reported by GitHub users external to the Azure organization.needs-team-attentionWorkflow: This issue needs attention from Azure service team or SDK team

Type

No type

Projects

Status

Todo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions