René's URL Explorer Experiment


Title: fix: honor source encodings when resolving breakpoints by chagong · Pull Request #647 · microsoft/java-debug · GitHub

Open Graph Title: fix: honor source encodings when resolving breakpoints by chagong · Pull Request #647 · microsoft/java-debug

X Title: fix: honor source encodings when resolving breakpoints by chagong · Pull Request #647 · microsoft/java-debug

Description: Summary Fixes microsoft/vscode-java-debug#1726. The file-backed source lookup decoded Java sources with the language-server JVM's default charset before parsing them. UTF-16 bytes consequently produced an unusable AST and no breakpoint class name, leaving line breakpoints unverified. Use Eclipse IFile.readString() for workspace resources, honoring file/project encodings and stripping Unicode BOMs. Recognize UTF-16 LE/BE and UTF-8 BOMs for external sources with the already bundled Commons IO reader. Preserve the JVM-default fallback for external files without a BOM, and log source-read failures. Add 14 headless Eclipse/JDT regression cases exercising getBreakpointLocations() from actual encoded files through AST parsing to the resolved class name and line. Cover workspace and external BOMs, BOM-less resource encodings, UTF-8, and ISO-8859-1 with a non-ASCII package identifier. Enable same-module Tycho plugin tests. Include the optional m2e/Buildship runtime dependencies needed to start JDT LS, and keep the compiler compatible with the Eclipse 4.38 JDT model (the moving snapshot otherwise selects an incompatible compiler and fails external AST binding with NoSuchMethodError). README.md has no net changes relative to the PR base. The documentation-only follow-up 46db436a48270e53eb169f868d19ffdef2ed6d0b removes the original README additions without changing the runtime fix or regression coverage. There is no suitable existing contributor guide, so contributor-facing build/test evidence and implementation rationale remain in this PR description rather than a new repository document. Verification Performed for the unchanged runtime fix in this cloud worktree on Linux with Temurin JDK 27 (Java 21 plugin target): Original reader reproduced null/incorrect breakpoint class names for UTF-16 and configured single-byte workspace sources. ./mvnw -B -ntp clean verify — passed: 55 existing core tests and all 14 new headless plugin cases. ./mvnw -B -ntp checkstyle:check — passed. ./mvnw -B -ntp -pl com.microsoft.java.debug.plugin,com.microsoft.java.debug.target checkstyle:check -Dcheckstyle.includeTestSourceDirectory=true — passed, including the new tests. Initial implementation CI completed successfully for commit 5a6483183afaff90e2711b1df3fef29e6f4f2f0a on Linux, Windows, and macOS with JDK 21. Every platform ran all 14 plugin regression cases with no failures or skips, and passed Checkstyle. The existing core suite ran 55 cases per platform (one existing Windows-only skip; no failures). The CLA check also passed. Copilot review was requested after CI passed and reported no open issues on that implementation commit. Current-head CI also completed successfully for the README-only follow-up 46db436a48270e53eb169f868d19ffdef2ed6d0b: clean verify and Checkstyle passed on Linux, Windows, and macOS with JDK 21, and the CLA check passed. The follow-up was verified with zero net README diff against the PR base and no changes to the runtime, tests, or harness. No redundant local build was run for that documentation-only change. These are real JVM/JDT integration tests, not just byte-decoder checks. No VS Code UI/debuggee end-to-end reproduction was performed; the claim verified here is correct source decoding and breakpoint class-name/location resolution.

Open Graph Description: Summary Fixes microsoft/vscode-java-debug#1726. The file-backed source lookup decoded Java sources with the language-server JVM's default charset before parsing them. UTF-16 bytes consequently ...

X Description: Summary Fixes microsoft/vscode-java-debug#1726. The file-backed source lookup decoded Java sources with the language-server JVM's default charset before parsing them. UTF-16 bytes consequen...

Opengraph URL: https://github.com/microsoft/java-debug/pull/647

X: @github

direct link

Domain: github.com

react-profiling0
react-import-mapreact,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@d5750093facf
route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:5a3ce9b1-5fa4-1e6b-9acd-1e4d80d70b4b
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idDA1A:25D1C1:69FCE:8E3F3:6AF67507
html-safe-nonced778e6987706b3c90b5fec0deb1b222873b507debe0a406d0697699462cd2218
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEQTFBOjI1RDFDMTo2OUZDRTo4RTNGMzo2QUY2NzUwNyIsInZpc2l0b3JfaWQiOiIzMjk4NTEyMzUzNzI0MTAxODk1IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmac11604cfe238c06932339a884c3eb2e65728dee4cb74680757aa21bfbf1cee9bc
hovercard-subject-tagpull_request:5060903310
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/microsoft/java-debug/pull/647/files
twitter:imagehttps://avatars.githubusercontent.com/u/831821?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/831821?s=400&v=4
og:image:altSummary Fixes microsoft/vscode-java-debug#1726. The file-backed source lookup decoded Java sources with the language-server JVM's default charset before parsing them. UTF-16 bytes consequently ...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None5451898e13f81636602c8a1de0fb8d7190b7b2a473a9f8241168fd4dd110372e
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/microsoft/java-debug git https://github.com/microsoft/java-debug.git
octolytics-dimension-user_id6154722
octolytics-dimension-user_loginmicrosoft
octolytics-dimension-repository_id102583752
octolytics-dimension-repository_nwomicrosoft/java-debug
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id102583752
octolytics-dimension-repository_network_root_nwomicrosoft/java-debug
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release8ba36e600310e0a3f7f56ea2244ea1240ea62bbf
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/microsoft/java-debug/pull/647/files#start-of-content
https://github.com/
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmicrosoft%2Fjava-debug%2Fpull%2F647%2Ffiles
GitHubRepository hosting, code review, and collaborationhttps://github.com/platform
CopilotAI coding agent for tasks, projects, and automated workhttps://github.com/features/copilot
ActionsCI/CD and automationhttps://github.com/features/actions
Code QualityQuality analysis, fixes, and enforcementhttps://github.com/features/code-quality
CodespacesCloud development environmentshttps://github.com/features/codespaces
Code SecurityVulnerability detection and remediationhttps://github.com/security/advanced-security/code-security
Secret ProtectionSecret scanning and leak preventionhttps://github.com/security/advanced-security/secret-protection
All Featureshttps://github.com/features
Documentationhttps://docs.github.com/en
Traininghttps://learn.github.com/skills
Certificationshttps://learn.github.com/credentials
Build with Copilothttps://github.com/features/ai
Customize Copilothttps://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot/customize-copilot-overview
Integrationshttps://github.com/marketplace
Trending reposhttps://github.com/trending
GitHub Sponsorshttps://github.com/open-source/sponsors
Developer articleshttps://github.com/resources/articles
ChangelogYour source for the latest features, improvements, and fixes across GitHub products, all in one place.https://github.blog/changelog/
Enterpriseshttps://github.com/enterprise
Teamhttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
See all industrieshttps://github.com/solutions/industry
Why GitHubhttps://github.com/why-github
Customer Storieshttps://github.com/customer-stories
Business insightshttps://github.com/solutions/executive-insights
Trust Centerhttps://github.com/trust-center
GitHub Advanced SecurityEnterprise-grade code securityhttps://github.com/security/advanced-security
Copilot for businessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Documentationhttps://docs.github.com/en
Resource centerhttps://github.com/resources
Bloghttps://github.blog/
Events & webinarshttps://github.com/resources/events
Community Forumhttps://github.com/orgs/community/discussions
Customer Storieshttps://github.com/customer-stories
Integrationshttps://github.com/marketplace
Customer supporthttps://help.github.com/
Traininghttps://learn.github.com/skills
GitHub Statushttps://www.githubstatus.com/
Abouthttps://github.com/about
Partnershttps://github.com/partners
Changeloghttps://github.blog/changelog/
GitHub UniverseThe event for developers, by developers — talks, workshops, and what’s next for GitHub.https://githubuniverse.com/
Pricinghttps://github.com/pricing
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmicrosoft%2Fjava-debug%2Fpull%2F647%2Ffiles
Sign uphttps://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=microsoft%2Fjava-debug
Reloadhttps://github.com/microsoft/java-debug/pull/647/files
Reloadhttps://github.com/microsoft/java-debug/pull/647/files
Reloadhttps://github.com/microsoft/java-debug/pull/647/files
microsofthttps://github.com/microsoft
java-debughttps://github.com/microsoft/java-debug
Codehttps://github.com/microsoft/java-debug
Issues31 (31)https://github.com/microsoft/java-debug/issues
Pull requests11 (11)https://github.com/microsoft/java-debug/pulls
Actionshttps://github.com/microsoft/java-debug/actions
Security and qualityhttps://github.com/microsoft/java-debug/security
Insightshttps://github.com/microsoft/java-debug/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fmicrosoft%2Fjava-debug%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fmicrosoft%2Fjava-debug%2Fissues%2Fnew%2Fchoose
Changyong Gong (chagong)https://github.com/chagong
mainhttps://github.com/microsoft/java-debug/tree/main
chagong-refactored-guidehttps://github.com/microsoft/java-debug/tree/chagong-refactored-guide
Conversation 2 https://github.com/microsoft/java-debug/pull/647
Commits 2 https://github.com/microsoft/java-debug/pull/647/commits
Checks 4 https://github.com/microsoft/java-debug/pull/647/checks
Files changed https://github.com/microsoft/java-debug/pull/647/files
Please reload this pagehttps://github.com/microsoft/java-debug/pull/647/files
fix: honor source encodings when resolving breakpoints https://github.com/microsoft/java-debug/pull/647/files#top
Show all changes 2 commits https://github.com/microsoft/java-debug/pull/647/files
5a64831 fix: honor source encodings when resolving breakpoints chagong Oct 29, 2026 https://github.com/microsoft/java-debug/pull/647/commits/5a6483183afaff90e2711b1df3fef29e6f4f2f0a
46db436 docs: keep encoding fix notes out of public README chagong Oct 29, 2026 https://github.com/microsoft/java-debug/pull/647/commits/46db436a48270e53eb169f868d19ffdef2ed6d0b
Clear filters https://github.com/microsoft/java-debug/pull/647/files
Please reload this pagehttps://github.com/microsoft/java-debug/pull/647/files
Please reload this pagehttps://github.com/microsoft/java-debug/pull/647/files
pom.xml https://github.com/microsoft/java-debug/pull/647/files#diff-8ee50ce2c494919ad74259fadfb5f31c6b446bc07a385293e53d1e3f5193bb52
JdtSourceLookUpProvider.java https://github.com/microsoft/java-debug/pull/647/files#diff-39bc0259d15fda1bc885cd564de90d13eee08bcd0e612e96e8926a3dccd6e2fd
JdtSourceLookUpProviderTest.java https://github.com/microsoft/java-debug/pull/647/files#diff-fd34bce4d67c77fc2399983dd8c2cb31e0d93c9a7a9d43e90c5a716acd296ad4
com.microsoft.java.debug.tp.target https://github.com/microsoft/java-debug/pull/647/files#diff-b8ecf6f8e358b5480123364139507a69a7efd506d552953f2524748906e2369a
https://github.com/microsoft/java-debug/blob/main/.github/CODEOWNERS#L1
com.microsoft.java.debug.plugin/pom.xmlhttps://github.com/microsoft/java-debug/pull/647/files#diff-8ee50ce2c494919ad74259fadfb5f31c6b446bc07a385293e53d1e3f5193bb52
View file https://github.com/microsoft/java-debug/blob/46db436a48270e53eb169f868d19ffdef2ed6d0b/com.microsoft.java.debug.plugin/pom.xml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/microsoft/java-debug/pull/647/{{ revealButtonHref }}
https://github.com/microsoft/java-debug/pull/647/files#diff-8ee50ce2c494919ad74259fadfb5f31c6b446bc07a385293e53d1e3f5193bb52
https://github.com/microsoft/java-debug/pull/647/files#diff-8ee50ce2c494919ad74259fadfb5f31c6b446bc07a385293e53d1e3f5193bb52
https://github.com/microsoft/java-debug/pull/647/files#diff-8ee50ce2c494919ad74259fadfb5f31c6b446bc07a385293e53d1e3f5193bb52
https://github.com/microsoft/java-debug/blob/main/.github/CODEOWNERS#L1
...lugin/src/main/java/com/microsoft/java/debug/plugin/internal/JdtSourceLookUpProvider.javahttps://github.com/microsoft/java-debug/pull/647/files#diff-39bc0259d15fda1bc885cd564de90d13eee08bcd0e612e96e8926a3dccd6e2fd
View file https://github.com/microsoft/java-debug/blob/46db436a48270e53eb169f868d19ffdef2ed6d0b/com.microsoft.java.debug.plugin/src/main/java/com/microsoft/java/debug/plugin/internal/JdtSourceLookUpProvider.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/microsoft/java-debug/pull/647/{{ revealButtonHref }}
https://github.com/microsoft/java-debug/pull/647/files#diff-39bc0259d15fda1bc885cd564de90d13eee08bcd0e612e96e8926a3dccd6e2fd
https://github.com/microsoft/java-debug/pull/647/files#diff-39bc0259d15fda1bc885cd564de90d13eee08bcd0e612e96e8926a3dccd6e2fd
https://github.com/microsoft/java-debug/pull/647/files#diff-39bc0259d15fda1bc885cd564de90d13eee08bcd0e612e96e8926a3dccd6e2fd
https://github.com/microsoft/java-debug/pull/647/files#diff-39bc0259d15fda1bc885cd564de90d13eee08bcd0e612e96e8926a3dccd6e2fd
https://github.com/microsoft/java-debug/pull/647/files#diff-39bc0259d15fda1bc885cd564de90d13eee08bcd0e612e96e8926a3dccd6e2fd
https://github.com/microsoft/java-debug/pull/647/files#diff-39bc0259d15fda1bc885cd564de90d13eee08bcd0e612e96e8926a3dccd6e2fd
https://github.com/microsoft/java-debug/pull/647/files#diff-39bc0259d15fda1bc885cd564de90d13eee08bcd0e612e96e8926a3dccd6e2fd
https://github.com/microsoft/java-debug/pull/647/files#diff-39bc0259d15fda1bc885cd564de90d13eee08bcd0e612e96e8926a3dccd6e2fd
https://github.com/microsoft/java-debug/blob/main/.github/CODEOWNERS#L1
...n/src/test/java/com/microsoft/java/debug/plugin/internal/JdtSourceLookUpProviderTest.javahttps://github.com/microsoft/java-debug/pull/647/files#diff-fd34bce4d67c77fc2399983dd8c2cb31e0d93c9a7a9d43e90c5a716acd296ad4
View file https://github.com/microsoft/java-debug/blob/46db436a48270e53eb169f868d19ffdef2ed6d0b/com.microsoft.java.debug.plugin/src/test/java/com/microsoft/java/debug/plugin/internal/JdtSourceLookUpProviderTest.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/microsoft/java-debug/pull/647/{{ revealButtonHref }}
https://github.com/microsoft/java-debug/blob/main/.github/CODEOWNERS#L1
com.microsoft.java.debug.target/com.microsoft.java.debug.tp.targethttps://github.com/microsoft/java-debug/pull/647/files#diff-b8ecf6f8e358b5480123364139507a69a7efd506d552953f2524748906e2369a
View file https://github.com/microsoft/java-debug/blob/46db436a48270e53eb169f868d19ffdef2ed6d0b/com.microsoft.java.debug.target/com.microsoft.java.debug.tp.target
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/microsoft/java-debug/pull/647/{{ revealButtonHref }}
https://github.com/microsoft/java-debug/pull/647/files#diff-b8ecf6f8e358b5480123364139507a69a7efd506d552953f2524748906e2369a
https://github.com/microsoft/java-debug/pull/647/files#diff-b8ecf6f8e358b5480123364139507a69a7efd506d552953f2524748906e2369a
Please reload this pagehttps://github.com/microsoft/java-debug/pull/647/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.