Skip to content

Conversation

@siddhijain
Copy link
Contributor

No description provided.

wzhipan and others added 4 commits November 13, 2025 10:51
…427295 (#2812)

The Final Monthly Release pipeline failed, so I manually merged the
working release branch into the release branch to proceed with the
release.


[AB#3427295](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3427295)

---------

Co-authored-by: Azure DevOps Pipeline <[email protected]>
…B#3444129 (#2822)

Fixes
[AB#3444129](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3444129)

Cherry-picks two commits from dev to enable in-memory caching for
accounts and credentials in the broker.

## Commits
- **f904c60** - Use in-memory cache for accounts and credentials
([AB#3417272](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3417272),
#2802)
- **228db78** - Share SharedPreferencesInMemoryCache across cache
instances
([AB#3428107](https://identitydivision.visualstudio.com/fac9d424-53d2-45c0-91b5-ef6ba7a6bf26/_workitems/edit/3428107),
#2813)

## Changes

**Core Implementation** (`BrokerOAuth2TokenCache.java`)
- Added static `ConcurrentHashMap` to share in-memory cache instances
across `BrokerOAuth2TokenCache` instances
- Reduces disk I/O and serialization overhead by reusing cache layers
for the same underlying storage

**Feature Flag** (`CommonFlight.java`)
- Added `USE_IN_MEMORY_CACHE_FOR_ACCOUNTS_AND_CREDENTIALS` (default:
false)

**Telemetry** (`AttributeName.java`)
- Added `in_memory_cache_used_for_accounts_and_credentials` attribute

**Tests**
- New `BrokerOAuth2TokenCacheWithInMemoryCacheTest.java` (1240 lines)
- Extended `BrokerOAuth2TokenCacheTest.java` with cache sharing tests

## Conflicts Resolved

`changelog.txt` had conflicts due to version markers in the release
branch. Resolved by adding entries under vNext:
```
- [MINOR] Share SharedPreferencesInMemoryCache across instances of BrokerOAuth2TokenCache (#2813)
- [MINOR] Use SharedPreferencesInMemoryCache implementation in Broker (#2802)
```

> [!WARNING]
>
> <details>
> <summary>Firewall rules blocked me from connecting to one or more
addresses (expand for details)</summary>
>
> #### I tried to connect to the following addresses, but was blocked by
firewall rules:
>
> - `dl.google.com`
> - Triggering command: `/usr/lib/jvm/temurin-17-jdk-amd64/bin/java
/usr/lib/jvm/temurin-17-jdk-amd64/bin/java
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.lang.invoke=ALL-UNNAMED
--add-opens=java.base/java.util=ALL-UNNAMED
--add-opens=java.prefs/java.util.prefs=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
--add-opens=java.base/java.util=ALL-UNNAMED
--add-opens=java.prefs/java.util.prefs=ALL-UNNAMED
--add-opens=java.base/java.nio.charset=ALL-UNNAMED
--add-opens=java.base/java.net=ALL-UNNAMED
--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED
--add-opens=java.xml/javax.xml.namespace=ALL-UNNAMED
-XX:MaxMetaspaceSize=1024m -XX:&#43;HeapDumpOnOutOfMemoryError -Xmx3072m
-Dfile.encoding=UTF-8 -Duser.country -Duser.language=en -Duser.variant`
(dns block)
> - `www.puppycrawl.com`
> - Triggering command:
`/opt/hostedtoolcache/CodeQL/2.23.3/x64/codeql/tools/linux64/java/bin/java
/opt/hostedtoolcache/CodeQL/2.23.3/x64/codeql/tools/linux64/java/bin/java
-jar
/opt/hostedtoolcache/CodeQL/2.23.3/x64/codeql/xml/tools/xml-extractor.jar
--fileList=/home/REDACTED/work/microsoft-authentication-library-common-for-android/.codeql-scratch/dbs/java/working/files-to-index2294403091429273239.list
--sourceArchiveDir=/home/REDACTED/work/microsoft-authentication-library-common-for-android/.codeql-scratch/dbs/java/src
--outputDir=/home/REDACTED/work/microsoft-authentication-library-common-for-android/.codeql-scratch/dbs/java/trap/java`
(dns block)
>
> If you need me to access, download, or install something from one of
these locations, you can either:
>
> - Configure [Actions setup
steps](https://gh.io/copilot/actions-setup-steps) to set up my
environment, which run before the firewall is enabled
> - Add the appropriate URLs or hosts to the custom allowlist in this
repository's [Copilot coding agent
settings](https://github.com/AzureAD/microsoft-authentication-library-common-for-android/settings/copilot/coding_agent)
(admins only)
>
> </details>

<!-- START COPILOT CODING AGENT SUFFIX -->



<details>

<summary>Original prompt</summary>

> Cherry-pick the following commits from the dev branch to the
working/release/23.1.1 branch:
> 
> - f904c60
> - 228db78
> 
> Include all files and changes from the specified commits. Ensure that
any conflicts are noted in the pull request description. Provide a
detailed summary of what was cherry-picked in the PR body.


</details>

*This pull request was created as a result of the following prompt from
Copilot chat.*
> Cherry-pick the following commits from the dev branch to the
working/release/23.1.1 branch:
> 
> - f904c60
> - 228db78
> 
> Include all files and changes from the specified commits. Ensure that
any conflicts are noted in the pull request description. Provide a
detailed summary of what was cherry-picked in the PR body.

<!-- START COPILOT CODING AGENT TIPS -->
---

💡 You can make Copilot smarter by setting up custom instructions,
customizing its development environment and configuring Model Context
Protocol (MCP) servers. Learn more [Copilot coding agent
tips](https://gh.io/copilot-coding-agent-tips) in the docs.

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: siddhijain <[email protected]>
Co-authored-by: Siddhi <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants