René's URL Explorer Experiment


Title: Call graph is missing edges to implementations of interfaces · Issue #113 · codellm-devkit/codeanalyzer-java · GitHub

Open Graph Title: Call graph is missing edges to implementations of interfaces · Issue #113 · codellm-devkit/codeanalyzer-java

X Title: Call graph is missing edges to implementations of interfaces · Issue #113 · codellm-devkit/codeanalyzer-java

Description: Describe the bug When there is call to an interface method, the call graph edge in the current call graph points to the interface and not to any of the implementations. So when there is a call to a method is a class that implements/exten...

Open Graph Description: Describe the bug When there is call to an interface method, the call graph edge in the current call graph points to the interface and not to any of the implementations. So when there is a call to a...

X Description: Describe the bug When there is call to an interface method, the call graph edge in the current call graph points to the interface and not to any of the implementations. So when there is a call to a...

Opengraph URL: https://github.com/codellm-devkit/codeanalyzer-java/issues/113

X: @github

direct link

Domain: github.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Call graph is missing edges to implementations of interfaces","articleBody":"### Describe the bug\n\nWhen there is call to an interface method, the call graph edge in the current call graph points to the interface and not to any of the implementations. So when there is a call to a method is a class that implements/extends this interface, we don't see those edges in the call graph.\n\n### Steps To Reproduce\n\nSteps to reproduce the behavior:\n1. Generate a analysis.json with `java -jar /path/to/codeanalyzer-2.2.0-dev.jar --input /path/to/daytrader8 --output /path/to/analysis-json/`\n2. Inspect the JSON for call edges from `com.ibm.websphere.samples.daytrader.web.servlet.TradeServletAction::doBuy(ServletContext, HttpServletRequest, HttpServletResponse, String, String, String)`.\n\n\n### Observed behavior\n\nWe'll see a call edge directly to the interface, i.e., we observe that there will an edge to `tAction.buy(userID, symbol, new Double(quantity).doubleValue(), TradeConfig.getOrderProcessingMode());` where `private TradeServices tAction;` and `TradeServices` is an interface class. \n\n### Expected behavior\n\nCall graph edge should point to the right implementation(s) of the the interface (i.e, to `TradeDirect` or `TradeSLSBBean` which implement/extend `TradeServices`). Or, if we choose to be imprecise, then we'll have to have edges to each of these implementations. \n \n### Screenshots\n\n![Image](https://github.com/user-attachments/assets/11bd576f-b902-4e36-b0af-971cf2ee995e)\n\n### Environment (please complete the following information):\n \n - OS: All supported\n - Version of Java: 11+\n - Version of Maven: N/A\n - Version of Gradle: N/A\n\n### Additional context\n\n- [ ] Explore the various analysis depths in WALA to see which one works\n\n- [ ] Expose the call-graph analysis depths as a CLI option to provide to codeanalyzer call graph construction \n\n- [ ] Mirror this in CLDK python-sdk repo as a now feature request \n\n- [ ] Consider manually adding call-edges to all implementing subtypes of the the interface (match by method signature of the subtypes.)\n\n- [ ] Test on below: \n\n```\ncom.ibm.websphere.samples.daytrader.web.servlet.TradeServletAction, doBuy(ServletContext, HttpServletRequest, HttpServletResponse, String, String, String)\n\nprivate TradeServices tAction\nOrderDataBean orderData = tAction.buy(userID, symbol, new Double(quantity).doubleValue(), TradeConfig.getOrderProcessingMode());\n```","author":{"url":"https://github.com/rahlk","@type":"Person","name":"rahlk"},"datePublished":"2025-02-11T03:09:23.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/113/codeanalyzer-java/issues/113"}

route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:290cc9d3-ff3b-e448-aadc-0eb2add10516
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-idCA26:92E79:7FB61:B1672:698F2941
html-safe-noncebe71d14284de666d8e984ebd77ebf70936593ca1588b303ee3068de7684dc1c0
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDQTI2OjkyRTc5OjdGQjYxOkIxNjcyOjY5OEYyOTQxIiwidmlzaXRvcl9pZCI6IjY0ODcxNTM5ODMyOTUwMDcwNDEiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmac159d65eb2a502f6e99249ebe519dcab3755c1668f295e051ebc3840d0424ec9c
hovercard-subject-tagissue:2844168586
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/codellm-devkit/codeanalyzer-java/113/issue_layout
twitter:imagehttps://opengraph.githubassets.com/1a7e32ced02513610f0ed69d17abe838f32ae58a2dd1a9a53f0e5fcef7ad6c41/codellm-devkit/codeanalyzer-java/issues/113
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/1a7e32ced02513610f0ed69d17abe838f32ae58a2dd1a9a53f0e5fcef7ad6c41/codellm-devkit/codeanalyzer-java/issues/113
og:image:altDescribe the bug When there is call to an interface method, the call graph edge in the current call graph points to the interface and not to any of the implementations. So when there is a call to a...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernamerahlk
hostnamegithub.com
expected-hostnamegithub.com
None6102991c714c1a6a27d05fb4f96ea6ca87a6750b4f093b95cc57ed1b84b145a1
turbo-cache-controlno-preview
go-importgithub.com/codellm-devkit/codeanalyzer-java git https://github.com/codellm-devkit/codeanalyzer-java.git
octolytics-dimension-user_id197800760
octolytics-dimension-user_logincodellm-devkit
octolytics-dimension-repository_id731300153
octolytics-dimension-repository_nwocodellm-devkit/codeanalyzer-java
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id731300153
octolytics-dimension-repository_network_root_nwocodellm-devkit/codeanalyzer-java
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
released52a41ad9b9ffb9b63a1b4a600a6054be8b70b36
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/codellm-devkit/codeanalyzer-java/issues/113#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fcodellm-devkit%2Fcodeanalyzer-java%2Fissues%2F113
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
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
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
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%2Fcodellm-devkit%2Fcodeanalyzer-java%2Fissues%2F113
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%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=codellm-devkit%2Fcodeanalyzer-java
Reloadhttps://github.com/codellm-devkit/codeanalyzer-java/issues/113
Reloadhttps://github.com/codellm-devkit/codeanalyzer-java/issues/113
Reloadhttps://github.com/codellm-devkit/codeanalyzer-java/issues/113
codellm-devkit https://github.com/codellm-devkit
codeanalyzer-javahttps://github.com/codellm-devkit/codeanalyzer-java
Notifications https://github.com/login?return_to=%2Fcodellm-devkit%2Fcodeanalyzer-java
Fork 1 https://github.com/login?return_to=%2Fcodellm-devkit%2Fcodeanalyzer-java
Star 4 https://github.com/login?return_to=%2Fcodellm-devkit%2Fcodeanalyzer-java
Code https://github.com/codellm-devkit/codeanalyzer-java
Issues 10 https://github.com/codellm-devkit/codeanalyzer-java/issues
Pull requests 0 https://github.com/codellm-devkit/codeanalyzer-java/pulls
Actions https://github.com/codellm-devkit/codeanalyzer-java/actions
Projects 0 https://github.com/codellm-devkit/codeanalyzer-java/projects
Security 0 https://github.com/codellm-devkit/codeanalyzer-java/security
Insights https://github.com/codellm-devkit/codeanalyzer-java/pulse
Code https://github.com/codellm-devkit/codeanalyzer-java
Issues https://github.com/codellm-devkit/codeanalyzer-java/issues
Pull requests https://github.com/codellm-devkit/codeanalyzer-java/pulls
Actions https://github.com/codellm-devkit/codeanalyzer-java/actions
Projects https://github.com/codellm-devkit/codeanalyzer-java/projects
Security https://github.com/codellm-devkit/codeanalyzer-java/security
Insights https://github.com/codellm-devkit/codeanalyzer-java/pulse
New issuehttps://github.com/login?return_to=https://github.com/codellm-devkit/codeanalyzer-java/issues/113
New issuehttps://github.com/login?return_to=https://github.com/codellm-devkit/codeanalyzer-java/issues/113
Bughttps://github.com/codellm-devkit/codeanalyzer-java/issues?q=type:"Bug"
#119https://github.com/codellm-devkit/codeanalyzer-java/pull/119
#116https://github.com/codellm-devkit/codeanalyzer-java/pull/116
Call graph is missing edges to implementations of interfaceshttps://github.com/codellm-devkit/codeanalyzer-java/issues/113#top
#119https://github.com/codellm-devkit/codeanalyzer-java/pull/119
#116https://github.com/codellm-devkit/codeanalyzer-java/pull/116
https://github.com/rahlk
bugSomething isn't workinghttps://github.com/codellm-devkit/codeanalyzer-java/issues?q=state%3Aopen%20label%3A%22bug%22
https://github.com/rahlk
https://github.com/rahlk
rahlkhttps://github.com/rahlk
on Feb 11, 2025https://github.com/codellm-devkit/codeanalyzer-java/issues/113#issue-2844168586
https://private-user-images.githubusercontent.com/1433964/411810915-11bd576f-b902-4e36-b0af-971cf2ee995e.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzA5OTAxODksIm5iZiI6MTc3MDk4OTg4OSwicGF0aCI6Ii8xNDMzOTY0LzQxMTgxMDkxNS0xMWJkNTc2Zi1iOTAyLTRlMzYtYjBhZi05NzFjZjJlZTk5NWUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDIxMyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjAyMTNUMTMzODA5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NTEzNDNmNjdhMjY2NDk3OGNmMmM2ZDBhZmQxMTIyOTBmODZlYTNjNGY0ZTIyN2UwMWQ4YzliYzk1ZGIyMjYzMyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.cXqOtHez9e1darkvwKICaMw9v2mjd8PNFYGbB_IVxFw
rahlkhttps://github.com/rahlk
bugSomething isn't workinghttps://github.com/codellm-devkit/codeanalyzer-java/issues?q=state%3Aopen%20label%3A%22bug%22
Bughttps://github.com/codellm-devkit/codeanalyzer-java/issues?q=type:"Bug"
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.