perf: reduce HashMap/collection allocation overhead in gateway path#45
perf: reduce HashMap/collection allocation overhead in gateway path#45xinlian12 wants to merge 162 commits into
Conversation
…zure#48610) Agent-Logs-Url: https://github.com/Azure/azure-sdk-for-java/sessions/5fb4ff6b-c53e-43b7-a192-b5c2bbcd4bfb Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: praveenkuttappan <55455725+praveenkuttappan@users.noreply.github.com>
* Fix usage of deprecated telemetry tags * Revert changes outside azure-core-tracing-opentelemetry
* Refactor Refresh * review fixes * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update StateHolderTest.java * Update AppConfigurationRefreshUtil.java * Update AppConfigurationRefreshUtil.java * Update sdk/spring/spring-cloud-azure-appconfiguration-config/src/main/java/com/azure/spring/cloud/appconfiguration/config/implementation/StateHolder.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update AzureAppConfigBootstrapRegistrar.java * Update AppConfigurationRefreshUtilTest.java * Update ConnectionManager.java * Update AppConfigurationRefreshUtilTest.java * fixing after merge * Update AppConfigurationRefreshUtilTest.java * fixing tests * fixing merge issue * Update RecurrenceEvaluator.java * Update RecurrenceEvaluator.java * better fix * new fix * Update AppConfigurationWatchAutoConfiguration.java * Update AppConfigurationPullRefresh.java * Update AppConfigurationPullRefresh.java --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…8465) * Fail fast when no packages selected for manual release build When manually triggering a release pipeline, if no release_* parameters are checked, the pipeline would run through expensive build and signing steps before eventually failing at Create-APIReview.ps1. This is common since 112 of 156 service CI files have all release parameters defaulting to false. Add a compile-time validation step as the first step of the Build job that immediately fails with a clear error message when all three conditions are met: internal project, manual trigger, and no release artifacts selected. The step is not injected for PR, CI push, or scheduled builds. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Updated output msg * Log vso task issue --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
* inner loop, add update-meta-data script * remove ci.yaml updates * Add CI.yml provisioning and update support Adds CI.yml update as Step 4 in the metadata update script, ported from the Python implementation in eng/automation/utils.py. Supported cases: - Create new ci.yml from template for brand-new services - Add artifact entry to existing ci.yml (with/without release params) - Rename ci.yml to ci.data.yml when SDKType=data and create new ci.yml - Skip when module already exists (idempotent) - Management-plane packages get default: false for release param - Data-plane packages get default: true for release param Fixes Azure/azure-sdk-tools#13808 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * resolve comments * Fail metadata update for unsupported SDK types Add groupId validation to reject unsupported SDK types (e.g., com.azure.spring). Only com.azure and com.azure.resourcemanager are supported. Uses LogError with the package path for clear diagnostics before exiting. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Eliminate per-response intermediate HashMap allocation by adding a new StoreResponse constructor that accepts HttpHeaders directly. Header names and values are populated into String[] arrays without materializing an intermediate Map. The JsonNodeStorePayload is updated to accept header arrays and only builds a Map lazily on error paths (extremely rare). Pre-size HashMaps throughout the hot path to avoid resize/rehash: - HttpHeaders request construction: sized to defaultHeaders + request headers - StoreResponse.replicaStatusList: pre-sized to 4 - StoreResponse.withRemappedStatusCode: pre-sized to header count - RxDocumentServiceRequest fallback maps: pre-sized to 32 Fix HttpUtils.asMap() double-allocation by iterating HttpHeaders directly instead of calling toMap() which creates an intermediate HashMap. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…K Generation - Java-6084367 (Azure#48644) * Configurations: 'specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/tspconfig.yaml', API Version: 2026-02-01, SDK Release Type: stable, and CommitSHA: 'aa591176e14ed29f96ebf1e3899e4356df7f13dd' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6084367 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. * Configurations: 'specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/tspconfig.yaml', API Version: 2026-02-01, SDK Release Type: stable, and CommitSHA: '90d424dc756608a8788ce35b8188c7e82c684f4c' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6086791 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. * Configurations: 'specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/tspconfig.yaml', API Version: 2026-02-01, SDK Release Type: stable, and CommitSHA: 'dcaa77fcd61105315164a986dd185219331a76a5' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6090571 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
* Regenerate Redis SDK from TypeSpec, add revapi suppressions - Regenerated SDK code from TypeSpec - Added module-info.java opens for implementation.models - Added revapi suppressions for: - Read-only model constructors made private - Read-only model setters removed - OperationStatusResult setters visibility reduced - Pageable ListResult classes moved to implementation Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Regenerate Redis SDK with alternateType fix for percentComplete Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Regenerate Redis SDK - all revapi checks pass Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Restore changelog from main, update tsp-location.yaml Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Update tsp-location.yaml to specs PR commit Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * commit on main * record * fix tsp-location --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Warning
⚠️ Firewall blocked 1 domain
The following domain was blocked by the firewall during workflow execution:
releaseassets.githubusercontent.com
To allow these domains, add them to the network.allowed list in your workflow frontmatter:
network:
allowed:
- defaults
- "releaseassets.githubusercontent.com"See Network Configuration for more information.
Note
🔒 Integrity filtering filtered 1 item
Integrity filtering activated and filtered the following item during workflow execution.
This happens when a tool call accesses a resource that does not meet the required integrity or secrecy level of the workflow.
Generated by sdkReviewAgent for issue #45
| } | ||
|
|
||
| this.status = status; | ||
| replicaStatusList = new HashMap<>(4); |
There was a problem hiding this comment.
🟡 Recommendation · Correctness: HashMap<>(4) undersizes for standard replica factor
new HashMap<>(4) gives an internal threshold of 3 (capacity × 0.75). In a standard 4-replica cluster every error path that adds one entry per replica will trigger a resize on the 4th insertion — the opposite of the stated pre-sizing goal.
Use new HashMap<>(6) (threshold 4) to fit 4 replicas without rehashing:
replicaStatusList = new HashMap<>(6);Same applies to the identical lines 72 and 163 in this file.
| byte[] bytes = new byte[readableBytes]; | ||
| try { | ||
| bufferStream.read(bytes); | ||
| return Utils.getSimpleObjectMapper().readTree(bytes); |
There was a problem hiding this comment.
🟡 Recommendation · Code Quality: Full happy-path duplication between fromJsonWithArrayHeaders and fromJson
Lines 96–99 are an exact copy of the happy path in fromJson (lines 60–63). The only real difference is how responseHeaders is obtained in the catch block (lazily built from arrays vs. passed directly). If the parsing logic ever changes (e.g., streaming parse, byte-count validation, or a new encoding branch), the two methods will silently diverge.
Consider extracting the shared parsing and error-handling into a single method that accepts a Supplier(Map(String,String)) for the lazy headers:
private static JsonNode parseJson(
ByteBufInputStream bufferStream,
int readableBytes,
Supplier(Map(String, String)) headersSupplier) {
byte[] bytes = new byte[readableBytes];
try {
bufferStream.read(bytes);
return Utils.getSimpleObjectMapper().readTree(bytes);
} catch (IOException e) {
Map(String, String) responseHeaders = headersSupplier.get();
if (fallbackCharsetDecoder != null) { ... }
...
}
}Then fromJson passes () -> responseHeaders (already materialized) and the new array-based path passes () -> buildHeaderMap(headerNames, headerValues) (lazy). This eliminates the duplication while preserving the allocation benefit.
|
|
||
| private HttpHeaders getHttpRequestHeaders(Map<String, String> headers) { | ||
| HttpHeaders httpHeaders = new HttpHeaders(this.defaultHeaders.size()); | ||
| HttpHeaders httpHeaders = new HttpHeaders(this.defaultHeaders.size() + (headers != null ? headers.size() : 0)); |
There was a problem hiding this comment.
🟡 Recommendation · Correctness: Inconsistent null guard — pre-sizing is null-safe, but containsKey is not
Line 346 adds (headers != null ? headers.size() : 0), implying null is a valid argument. But line 349 calls headers.containsKey(...) unconditionally, which would throw NullPointerException if headers is ever null.
The RxDocumentServiceRequest changes in this PR (new HashMap<>(32) as a fallback) ensure getHeaders() is non-null in the only call site today — but the method signature accepts Map(String, String) so future callers could pass null.
Option A — make the contract explicit (callers guarantee non-null):
// Remove the ternary; always use headers.size()
HttpHeaders httpHeaders = new HttpHeaders(this.defaultHeaders.size() + headers.size());Option B — make the method defensively correct for null:
if (!headers.containsKey(entry.getKey())) {→
if (headers == null || !headers.containsKey(entry.getKey())) {Option A is preferable given that getHeaders() is now always non-null, and it avoids the misleading implication that null is an accepted input.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Warning
⚠️ Firewall blocked 1 domain
The following domain was blocked by the firewall during workflow execution:
releaseassets.githubusercontent.com
To allow these domains, add them to the network.allowed list in your workflow frontmatter:
network:
allowed:
- defaults
- "releaseassets.githubusercontent.com"See Network Configuration for more information.
Note
🔒 Integrity filtering filtered 1 item
Integrity filtering activated and filtered the following item during workflow execution.
This happens when a tool call accesses a resource that does not meet the required integrity or secrecy level of the workflow.
Generated by sdkReviewAgent for issue #45
| responseHeaderValues = new String[headerCount]; | ||
| this.endpoint = endpoint != null ? endpoint : ""; | ||
|
|
||
| httpHeaders.populateLowerCaseHeaders(responseHeaderNames, responseHeaderValues); |
There was a problem hiding this comment.
🟡 Recommendation · Test Coverage: New hot-path constructor and helper have no tests
Three newly added code paths have zero test coverage:
StoreResponse(endpoint, status, HttpHeaders, …)— the new hot-path constructorHttpHeaders.populateLowerCaseHeaders(names, values)— called right hereJsonNodeStorePayload(bufferStream, readableBytes, String[], String[])error path (wherebuildHeaderMapis lazily invoked)
What to add:
- A unit test asserting that
StoreResponse(HttpHeaders)andStoreResponse(Map)produce identicalresponseHeaderNames/responseHeaderValuesarrays (including lowercase normalization and theOWNER_FULL_NAMEURL-decode). - A unit test for
populateLowerCaseHeadersverifying that names in the output array are lowercase even when headers were set with mixed-case names. - An error-path test for
JsonNodeStorePayload(…, String[], String[])that injects invalid JSON and asserts the lazily-built header map is correct inside the thrown exception.
Without these, the main perf optimization (the new constructor) can silently regress or diverge from the Map-based constructor if HttpHeaders internals change.
| */ | ||
| public HttpHeaders() { | ||
| this.headers = new HashMap<>(); | ||
| this.headers = new HashMap<>(16); |
There was a problem hiding this comment.
💬 Observation · Code Quality: HashMap<>(16) is identical to HashMap<>()
HashMap's no-arg constructor already uses a default initial capacity of 16 (DEFAULT_INITIAL_CAPACITY = 1 << 4). Changing new HashMap<>() to new HashMap<>(16) has no runtime effect.
If the intent is to document the allocation size for clarity, a comment is clearer. If the intent is an actual optimisation, it needs a different initial capacity (e.g., new HashMap<>(32) for headers-heavy flows). As written this change adds visual noise without benefit.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Removing boxed types for nregion property check * updating javadoc and adding changelog
…-SDK Generation - Java-6083044 (Azure#48641) * Configurations: 'specification/containerservice/resource-manager/Microsoft.ContainerService/aks/tspconfig.yaml', API Version: 2026-01-02-preview, SDK Release Type: beta, and CommitSHA: 'f43cd0ba56f868747a1e85155becbf6d3849f725' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6083044 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. * revapi suppress * ut, skip a field that only exists in preview * fix lint * Configurations: 'specification/containerservice/resource-manager/Microsoft.ContainerService/aks/tspconfig.yaml', API Version: 2026-01-02-preview, SDK Release Type: beta, and CommitSHA: '94db7d273945296435e15719fd0ade793fdcf7d2' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6085712 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. * Configurations: 'specification/containerservice/resource-manager/Microsoft.ContainerService/aks/tspconfig.yaml', API Version: 2026-01-02-preview, SDK Release Type: beta, and CommitSHA: 'b684aff3319ffa5784a8b8d19d6af5adf168a4bb' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6085899 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. --------- Co-authored-by: Weidong Xu <weidxu@microsoft.com>
…on - Java-6092967 (Azure#48660) * Configurations: 'specification/loadtestservice/resource-manager/Microsoft.LoadTestService/playwright/tspconfig.yaml', API Version: 2026-02-01-preview, SDK Release Type: beta, and CommitSHA: 'dfc0b2356c41c538250f3309f1a35f4cb1bf4e34' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6092967 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. * Update release date for 1.1.0-beta.1 Updated release date for version 1.1.0-beta.1 in CHANGELOG. --------- Co-authored-by: Kashish Gupta <90824921+kashish2508@users.noreply.github.com>
…er/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml', API Version: 2025-03-01, SDK Release Type: stable, and CommitSHA: '0758803aaaacc14ce831053cf0eb592e09e14f93' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6067536 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. (Azure#48593) Co-authored-by: prasannajsns <33145176+prasannajsns@users.noreply.github.com>
…lity tests. (Azure#48679) This commit is created by GitHub Action: https://github.com/Azure/spring-cloud-azure-tools/actions/runs/23928117451 Co-authored-by: github-actions <github-actions@github.com>
* Clean up azure-identity README - Fix typo: 'used by to' -> 'used to' - Remove redundant DefaultAzureCredential and ManagedIdentityCredential code examples - Update credential chain and managed identity reference links - Improve Markdown table formatting - Fix indentation and whitespace issues * Update sdk/identity/azure-identity/README.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
) * Allow azure-sdk PRs to bypass CODEOWNERS section check and rename CodeownersChanged to ShouldCheckCodeownersEdits Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/6acbd501-14e8-4108-9213-c49d035fb815 Co-authored-by: danieljurek <2158838+danieljurek@users.noreply.github.com> * Use gh pr view to detect PR author instead of Build.RequestedFor Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/e2fb79aa-7ed3-45dd-a0ba-3ebb24b10e4b Co-authored-by: danieljurek <2158838+danieljurek@users.noreply.github.com> * Reorder logic: check CODEOWNERS changed before gh API call, remove stderr capture Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/747d7c1f-ba14-4781-83e1-6b80bf475318 Co-authored-by: danieljurek <2158838+danieljurek@users.noreply.github.com> * Replace gh CLI with Invoke-RestMethod for PR author detection Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/56bb56b5-f097-48df-90ab-de347a28634f Co-authored-by: danieljurek <2158838+danieljurek@users.noreply.github.com> * Add retry parameters to Invoke-RestMethod for PR author lookup Agent-Logs-Url: https://github.com/Azure/azure-sdk-tools/sessions/d8f97723-9352-41c9-8005-356bde3313c4 Co-authored-by: danieljurek <2158838+danieljurek@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: danieljurek <2158838+danieljurek@users.noreply.github.com>
…to upstream-main
…zure#48839) * add usage into invoice sample * revise per copilot comments
… Generation - Java-6087535 (Azure#48650) * Configurations: 'specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/tspconfig.yaml', API Version: 2026-03-20, SDK Release Type: stable, and CommitSHA: 'a83147fe12aece4ded0bd96be212e5242e087cb9' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6087535 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. * Configurations: 'specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/tspconfig.yaml', API Version: 2026-03-20, SDK Release Type: stable, and CommitSHA: 'cca5b9fb049544c3bd14869f1642d4cc0187ef00' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6087783 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. * Configurations: 'specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/tspconfig.yaml', API Version: 2026-03-20, SDK Release Type: stable, and CommitSHA: 'd12a591062fc42adbad8c0105094f3de018a71b7' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6113665 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. --------- Co-authored-by: Hebin Huang <hebin_huang@hotmail.com>
…er/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml', API Version: 2025-03-01, SDK Release Type: stable, and CommitSHA: '41aa2e9f20cb7d28653078638d143bb0272658a3' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6116006 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. (Azure#48704) Co-authored-by: weidongxu-microsoft <53292327+weidongxu-microsoft@users.noreply.github.com>
…orizonDb/HorizonDb/tspconfig.yaml', API Version: 2026-01-20-preview, SDK Release Type: beta, and CommitSHA: 'f6e1fbd6268be7712bf96a516ba846f7d42e2baa' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6080421 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. (Azure#48632) Co-authored-by: Weidong Xu <weidxu@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…delay paths (Azure#48880) When fault injection simulates a response delay, the real HTTP response body was discarded without draining its ByteBuf content. Under HTTP/2, this causes ByteBuf leaks that accumulate on the long-lived parent channel. Two leak paths fixed: - delay >= timeout: doOnNext drains body before delayElement buffers it - delay < timeout: doOnDiscard releases body if downstream cancels during delay Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1. HttpHeaders.populateLowerCaseHeaders: Add argument validation - reject null arrays and enforce minimum length (IllegalArgumentException). 2. StoreResponse OWNER_FULL_NAME comparison: Use equalsIgnoreCase() for defensive case-insensitive matching against the lowercase header key. 3. HttpUtils.mapCapacityForSize: Guard against overflow for large expectedSize values; clamp to Integer.MAX_VALUE and handle <= 0 input. 4. HttpHeadersTests: Use toLowerCase(Locale.ROOT) for locale-stable assertions. 5. StoreResponse: Extract magic number 6 into named constant REPLICA_STATUS_MAP_INITIAL_CAPACITY with documenting comment. 6. StoreResponseTest: Add httpHeadersConstructorDecodesOwnerFullName test verifying URL-encoded OWNER_FULL_NAME header is decoded via the HttpHeaders constructor path.
…bled (Azure#48888) * Add regression test for IMDS-disabled ClientTelemetry init * Fix ClientTelemetry initialization when IMDS access is disabled * Update CHANGELOG.md * Update ClientConfigDiagnosticsTest.java
* Add vnext emulator stages back to public CI pipeline
Remove the internal-only guard ({{ if eq(variables['System.TeamProject'], 'internal') }})
from the VNext emulator test stages in cosmos-sdk-client.yml so they run
on both public and internal CI pipelines.
The Skip.VnextEmulator variable condition is preserved for opt-out.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Adding dummy change to trigger CI
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…breaking behavior change. (Azure#48892) Co-authored-by: Daniel Jurek <djurek@microsoft.com>
* fix bot comment on apiview * Fix lint: drop @ServiceMethod on convenience transcribeWithResponse(TranscriptionOptions) overload The Checkstyle ServiceClientCheck requires sync methods annotated with @ServiceMethod to take Context/RequestOptions/RequestContext. The convenience overload only takes TranscriptionOptions, so the annotation is removed. Also drops unused ClientLogger imports/fields and fixes javadoc rendering in the customization. * update changelog
Bumps [@azure-tools/typespec-client-generator-cli](https://github.com/Azure/azure-sdk-tools) from 0.32.0 to 0.32.1. - [Release notes](https://github.com/Azure/azure-sdk-tools/releases) - [Commits](https://github.com/Azure/azure-sdk-tools/commits) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…re#48858) * Enhance HttpResponse to include new method to return InputStream * changelog * update unit tests and change package for flux inputstream * spotless formatting
…zure#48897) * add javadoc required * update tspconfig with latest commit * Regenerate ProfanityFilterMode for updated spec pin
* Remove cosmos filter from pullrequest build definition Remove sdk/cosmos/ exclusion from pullrequest.yml trigger paths and ExcludePaths parameter so cosmos changes go through the standard PR validation pipeline. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * pullrequest pipeline excludes cosmos, cosmos still triggers properly * remove the triggering file that I was using to test --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix broken link * fix link verification error
…ation - Java-6132589 (Azure#48754) * Configurations: 'specification/iotoperations/IoTOperations.Management/tspconfig.yaml', API Version: 2026-03-01, SDK Release Type: stable, and CommitSHA: '0238251ff4a7b2404ec0110599b845b15d7fdd7f' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6132589 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. * Update pom.xml --------- Co-authored-by: Weidong Xu <weidxu@microsoft.com> Co-authored-by: Byron Jin <146121964+byronjinmsft@users.noreply.github.com>
…- Java-6183423 (Azure#48883) * Configurations: 'specification/compute/resource-manager/Microsoft.Compute/Compute/tspconfig.yaml', API Version: 2025-11-01, SDK Release Type: stable, and CommitSHA: '1e6111d12c709c3395fb8546e311b6c67fd87efc' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6183423 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. * Update CHANGELOG.md * Update CHANGELOG.md --------- Co-authored-by: Weidong Xu <weidxu@microsoft.com>
* updates to patch sparse checkout to account for spring and cosmos while they are still excluded from the build list * Update eng/scripts/Generate-ServiceDirectories-From-Project-List.ps1 Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…oft.DataProtection/DataProtection/tspconfig.yaml', API Version: 2026_03_01, SDK Release Type: beta, and CommitSHA: '32ab0a3f798fed9517cb4026e47144251ea9331e' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6095332 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. (Azure#48666)
…to upstream-main
Eliminate per-response intermediate HashMap allocation by adding a new StoreResponse constructor that accepts HttpHeaders directly. Header names and values are populated into String[] arrays without materializing an intermediate Map. The JsonNodeStorePayload is updated to accept header arrays and only builds a Map lazily on error paths (extremely rare).
Pre-size HashMaps throughout the hot path to avoid resize/rehash:
Fix HttpUtils.asMap() double-allocation by iterating HttpHeaders directly instead of calling toMap() which creates an intermediate HashMap.