René's URL Explorer Experiment


Title: Fix lock deadlocks, production NPE, connection leaks, and log typo by kasnder · Pull Request #539 · TrackerControl/tracker-control-android · GitHub

Open Graph Title: Fix lock deadlocks, production NPE, connection leaks, and log typo by kasnder · Pull Request #539 · TrackerControl/tracker-control-android

X Title: Fix lock deadlocks, production NPE, connection leaks, and log typo by kasnder · Pull Request #539 · TrackerControl/tracker-control-android

Description: Wrap all lock.readLock/writeLock operations in try-finally blocks in ServiceSinkhole to prevent permanent deadlocks if exceptions occur while locks are held (e.g. during DB access in blockKnownTracker). Also fixes prepareHostsBlocked where unlock() ran unconditionally even when the lock was never acquired due to early return. Replace disabled assert + chained NPE in tracker logcat logging: assert is a no-op in production Android, and ipToHost.get(daddr) can return null, causing a crash when log_logcat is enabled. Fix copy-paste bug in ActivityMain.onActivityResult logging requestCode instead of resultCode. Add HttpURLConnection.disconnect() in finally blocks in Common.kt and Util.java to prevent socket leaks on repeated network calls. Move svg.renderToPicture() off the main thread in CountriesFragment; it was executing inside View.post() which runs on the UI thread. https://claude.ai/code/session_011HzyMPo2gd34cnXG4EWLYj

Open Graph Description: Wrap all lock.readLock/writeLock operations in try-finally blocks in ServiceSinkhole to prevent permanent deadlocks if exceptions occur while locks are held (e.g. during DB access in blockKnownTrac...

X Description: Wrap all lock.readLock/writeLock operations in try-finally blocks in ServiceSinkhole to prevent permanent deadlocks if exceptions occur while locks are held (e.g. during DB access in blockKnownTrac...

Opengraph URL: https://github.com/TrackerControl/tracker-control-android/pull/539

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:18312fbe-c439-b116-3d49-c54cc3836d8c
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-id928E:2044BB:C8F933:118F574:6A4BE88E
html-safe-nonce3b60e5d7612717e8d7bd20751d468c8a3251b0ab4f1df4bedfd8863904924112
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5MjhFOjIwNDRCQjpDOEY5MzM6MTE4RjU3NDo2QTRCRTg4RSIsInZpc2l0b3JfaWQiOiIxMTAxNTYyMTQ1NzMwNzE3ODM4IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmac61cd204961161f9cfb419c981a8a05bb469fa59ba879936f4ee51bec2caf9b0b
hovercard-subject-tagpull_request:3487539264
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/TrackerControl/tracker-control-android/pull/539/files
twitter:imagehttps://avatars.githubusercontent.com/u/5175206?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/5175206?s=400&v=4
og:image:altWrap all lock.readLock/writeLock operations in try-finally blocks in ServiceSinkhole to prevent permanent deadlocks if exceptions occur while locks are held (e.g. during DB access in blockKnownTrac...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None0f5d3ba365b3985d75c32a5957c8635488d58dcf027ae6ae958eee7edaa306a2
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/TrackerControl/tracker-control-android git https://github.com/TrackerControl/tracker-control-android.git
octolytics-dimension-user_id81009368
octolytics-dimension-user_loginTrackerControl
octolytics-dimension-repository_id220825189
octolytics-dimension-repository_nwoTrackerControl/tracker-control-android
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id220825189
octolytics-dimension-repository_network_root_nwoTrackerControl/tracker-control-android
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
releasef24da9b76b42d77b0bb458f810509565e9ba5f1a
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/TrackerControl/tracker-control-android/pull/539/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2FTrackerControl%2Ftracker-control-android%2Fpull%2F539%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
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
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://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/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2FTrackerControl%2Ftracker-control-android%2Fpull%2F539%2Ffiles
Sign up https://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=TrackerControl%2Ftracker-control-android
Reloadhttps://github.com/TrackerControl/tracker-control-android/pull/539/files
Reloadhttps://github.com/TrackerControl/tracker-control-android/pull/539/files
Reloadhttps://github.com/TrackerControl/tracker-control-android/pull/539/files
Please reload this pagehttps://github.com/TrackerControl/tracker-control-android/pull/539/files
TrackerControl https://github.com/TrackerControl
tracker-control-androidhttps://github.com/TrackerControl/tracker-control-android
Notifications https://github.com/login?return_to=%2FTrackerControl%2Ftracker-control-android
Fork 123 https://github.com/login?return_to=%2FTrackerControl%2Ftracker-control-android
Star 2.5k https://github.com/login?return_to=%2FTrackerControl%2Ftracker-control-android
Code https://github.com/TrackerControl/tracker-control-android
Issues 134 https://github.com/TrackerControl/tracker-control-android/issues
Pull requests 9 https://github.com/TrackerControl/tracker-control-android/pulls
Discussions https://github.com/TrackerControl/tracker-control-android/discussions
Actions https://github.com/TrackerControl/tracker-control-android/actions
Security and quality 0 https://github.com/TrackerControl/tracker-control-android/security
Insights https://github.com/TrackerControl/tracker-control-android/pulse
Code https://github.com/TrackerControl/tracker-control-android
Issues https://github.com/TrackerControl/tracker-control-android/issues
Pull requests https://github.com/TrackerControl/tracker-control-android/pulls
Discussions https://github.com/TrackerControl/tracker-control-android/discussions
Actions https://github.com/TrackerControl/tracker-control-android/actions
Security and quality https://github.com/TrackerControl/tracker-control-android/security
Insights https://github.com/TrackerControl/tracker-control-android/pulse
Sign up for GitHub https://github.com/signup?return_to=%2FTrackerControl%2Ftracker-control-android%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2FTrackerControl%2Ftracker-control-android%2Fissues%2Fnew%2Fchoose
kasnderhttps://github.com/kasnder
masterhttps://github.com/TrackerControl/tracker-control-android/tree/master
claude/code-review-xZGDxhttps://github.com/TrackerControl/tracker-control-android/tree/claude/code-review-xZGDx
Conversation 0 https://github.com/TrackerControl/tracker-control-android/pull/539
Commits 1 https://github.com/TrackerControl/tracker-control-android/pull/539/commits
Checks 1 https://github.com/TrackerControl/tracker-control-android/pull/539/checks
Files changed https://github.com/TrackerControl/tracker-control-android/pull/539/files
Please reload this pagehttps://github.com/TrackerControl/tracker-control-android/pull/539/files
Fix lock deadlocks, production NPE, connection leaks, and log typo https://github.com/TrackerControl/tracker-control-android/pull/539/files#top
Show all changes 1 commit https://github.com/TrackerControl/tracker-control-android/pull/539/files
f54a96c Fix lock deadlocks, production NPE, connection leaks, and log typo claude Apr 3, 2026 https://github.com/TrackerControl/tracker-control-android/pull/539/commits/f54a96cd2717c310937e46efdb6e323d355af58d
Clear filters https://github.com/TrackerControl/tracker-control-android/pull/539/files
Please reload this pagehttps://github.com/TrackerControl/tracker-control-android/pull/539/files
Please reload this pagehttps://github.com/TrackerControl/tracker-control-android/pull/539/files
ActivityMain.java https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-a8eb97a0fd31461b01818f00fd477cd3228a3920f2e3ad0b35b9fec9df70511c
ServiceSinkhole.java https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-9aa064d2e548d77350bd67537cc434dcd9dec48ec06a98208813c84fdf9de566
Util.java https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-816ae5c24eaf565d6a2f92a8d50e35023c43ede6e3c8113abf40fb287df4d37e
Common.kt https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-15e17a24b41703677c09419b7794528a290e1ebcdba12f1624800574528a005b
CountriesFragment.java https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-f6ec0c6af81cd46cca6e30d1138c7082d3ca9bd71970923481a09ed9b7e29f65
app/src/main/java/eu/faircode/netguard/ActivityMain.javahttps://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-a8eb97a0fd31461b01818f00fd477cd3228a3920f2e3ad0b35b9fec9df70511c
View file https://github.com/TrackerControl/tracker-control-android/blob/f54a96cd2717c310937e46efdb6e323d355af58d/app/src/main/java/eu/faircode/netguard/ActivityMain.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/TrackerControl/tracker-control-android/pull/539/{{ revealButtonHref }}
https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-a8eb97a0fd31461b01818f00fd477cd3228a3920f2e3ad0b35b9fec9df70511c
https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-a8eb97a0fd31461b01818f00fd477cd3228a3920f2e3ad0b35b9fec9df70511c
app/src/main/java/eu/faircode/netguard/ServiceSinkhole.javahttps://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-9aa064d2e548d77350bd67537cc434dcd9dec48ec06a98208813c84fdf9de566
View file https://github.com/TrackerControl/tracker-control-android/blob/f54a96cd2717c310937e46efdb6e323d355af58d/app/src/main/java/eu/faircode/netguard/ServiceSinkhole.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/TrackerControl/tracker-control-android/pull/539/{{ revealButtonHref }}
https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-9aa064d2e548d77350bd67537cc434dcd9dec48ec06a98208813c84fdf9de566
https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-9aa064d2e548d77350bd67537cc434dcd9dec48ec06a98208813c84fdf9de566
https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-9aa064d2e548d77350bd67537cc434dcd9dec48ec06a98208813c84fdf9de566
https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-9aa064d2e548d77350bd67537cc434dcd9dec48ec06a98208813c84fdf9de566
https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-9aa064d2e548d77350bd67537cc434dcd9dec48ec06a98208813c84fdf9de566
https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-9aa064d2e548d77350bd67537cc434dcd9dec48ec06a98208813c84fdf9de566
https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-9aa064d2e548d77350bd67537cc434dcd9dec48ec06a98208813c84fdf9de566
https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-9aa064d2e548d77350bd67537cc434dcd9dec48ec06a98208813c84fdf9de566
https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-9aa064d2e548d77350bd67537cc434dcd9dec48ec06a98208813c84fdf9de566
https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-9aa064d2e548d77350bd67537cc434dcd9dec48ec06a98208813c84fdf9de566
https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-9aa064d2e548d77350bd67537cc434dcd9dec48ec06a98208813c84fdf9de566
https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-9aa064d2e548d77350bd67537cc434dcd9dec48ec06a98208813c84fdf9de566
https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-9aa064d2e548d77350bd67537cc434dcd9dec48ec06a98208813c84fdf9de566
https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-9aa064d2e548d77350bd67537cc434dcd9dec48ec06a98208813c84fdf9de566
app/src/main/java/eu/faircode/netguard/Util.javahttps://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-816ae5c24eaf565d6a2f92a8d50e35023c43ede6e3c8113abf40fb287df4d37e
View file https://github.com/TrackerControl/tracker-control-android/blob/f54a96cd2717c310937e46efdb6e323d355af58d/app/src/main/java/eu/faircode/netguard/Util.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/TrackerControl/tracker-control-android/pull/539/{{ revealButtonHref }}
https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-816ae5c24eaf565d6a2f92a8d50e35023c43ede6e3c8113abf40fb287df4d37e
https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-816ae5c24eaf565d6a2f92a8d50e35023c43ede6e3c8113abf40fb287df4d37e
https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-816ae5c24eaf565d6a2f92a8d50e35023c43ede6e3c8113abf40fb287df4d37e
app/src/main/java/net/kollnig/missioncontrol/Common.kthttps://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-15e17a24b41703677c09419b7794528a290e1ebcdba12f1624800574528a005b
View file https://github.com/TrackerControl/tracker-control-android/blob/f54a96cd2717c310937e46efdb6e323d355af58d/app/src/main/java/net/kollnig/missioncontrol/Common.kt
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/TrackerControl/tracker-control-android/pull/539/{{ revealButtonHref }}
https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-15e17a24b41703677c09419b7794528a290e1ebcdba12f1624800574528a005b
https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-15e17a24b41703677c09419b7794528a290e1ebcdba12f1624800574528a005b
app/src/main/java/net/kollnig/missioncontrol/details/CountriesFragment.javahttps://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-f6ec0c6af81cd46cca6e30d1138c7082d3ca9bd71970923481a09ed9b7e29f65
View file https://github.com/TrackerControl/tracker-control-android/blob/f54a96cd2717c310937e46efdb6e323d355af58d/app/src/main/java/net/kollnig/missioncontrol/details/CountriesFragment.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/TrackerControl/tracker-control-android/pull/539/{{ revealButtonHref }}
https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-f6ec0c6af81cd46cca6e30d1138c7082d3ca9bd71970923481a09ed9b7e29f65
https://github.com/TrackerControl/tracker-control-android/pull/539/files#diff-f6ec0c6af81cd46cca6e30d1138c7082d3ca9bd71970923481a09ed9b7e29f65
Please reload this pagehttps://github.com/TrackerControl/tracker-control-android/pull/539/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.