Repository navigation
Drop the trailing separator from WMI array values - #77
Merged
Merged
Conversation
WmiStringConverter rendered an array as "a|b|" (and "|" for an empty array). winrm-java renders the same WMI arrays as "a|b", and cannot do otherwise: WinRM's XML does not tell a one-element array from a scalar. Both libraries run the same connector queries, so they must produce the same string: arrays are now "a|b", "a" for a single element, and an empty string when empty. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
This was referenced Oct 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
WmiStringConverterrenders a WMI array asa|b|: there's a trailing separator even with a single element (a|), and an empty array gives|.winrm-java renders the same arrays as
a|b, and it can't add the trailing separator. WinRM's XML has no type information, so a one-element array is identical to a scalar. Only a CIM GetClass request (one more round-trip per class, not available on 2008 R2) would tell them apart. See MetricsHub/winrm-java#201.MetricsHub runs the same connector queries through both libraries, so the two must produce the same string.
Change
Arrays are now rendered as:
a|bafor a single elementThe separator is still removed from each element, and a NULL is still an empty string. The new
WmiStringConverterTestcovers these cases.The connectors that relied on the trailing separator are fixed in MetricsHub/community-connectors#428 and MetricsHub/enterprise-connectors#478. MetricsHub/metricshub-community#1388 makes the WinRM extension report an empty array as an empty string too.
Tests
mvn verifypasses on JDK 17 (78 tests). On JDK 25, the existing Mockito-based tests fail to mock classes; that problem predates this change.🤖 Generated with Claude Code