{"id":16559740,"url":"https://github.com/psub/checkerframework-method-chaining-performance-regression","last_synced_at":"2025-10-07T00:35:57.380Z","repository":{"id":136379825,"uuid":"221429609","full_name":"pSub/checkerframework-method-chaining-performance-regression","owner":"pSub","description":null,"archived":false,"fork":false,"pushed_at":"2019-11-13T10:33:50.000Z","size":4,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-07T00:35:56.774Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pSub.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-13T10:09:40.000Z","updated_at":"2019-11-13T10:33:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"b754b5af-6c1b-4250-ab9b-e0302b228b2a","html_url":"https://github.com/pSub/checkerframework-method-chaining-performance-regression","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pSub/checkerframework-method-chaining-performance-regression","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pSub%2Fcheckerframework-method-chaining-performance-regression","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pSub%2Fcheckerframework-method-chaining-performance-regression/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pSub%2Fcheckerframework-method-chaining-performance-regression/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pSub%2Fcheckerframework-method-chaining-performance-regression/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pSub","download_url":"https://codeload.github.com/pSub/checkerframework-method-chaining-performance-regression/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pSub%2Fcheckerframework-method-chaining-performance-regression/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278703579,"owners_count":26031204,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-11T20:26:57.097Z","updated_at":"2025-10-07T00:35:57.364Z","avatar_url":"https://github.com/pSub.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"Checker Framework Method-Chaining Performance Regression\n========================================================\n\nThe bug was fixed in https://github.com/typetools/checker-framework/issues/2853.\n\nThis repository contains a code that demonstrates a performance regression in the [checker framework](https://checkerframework.org/). The\nperformance regression affects source code that uses long [method chains](https://en.wikipedia.org/wiki/Method_chaining). The performance\nregression was introduced in versions 2.10.0 and 3.0.0. The performance in version 2.9.0 is OK.\n\nThe proof of concept in the repository might look constructed, however it is easy to come up with real-world examples that trigger the\nperformance regression. Some examples\n\n* building large objects with the [fluid builder pattern](https://dzone.com/articles/fluent-builder-pattern)\n* complex processing using [Java streams](https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html)\n\nThe problem hit me when upgrading the checker framework for the DMN analysis tool [dmn-checker](https://github.com/red6/dmn-check/),\nspecifically at a method in [FeelParser](https://github.com/red6/dmn-check/blob/master/validators/src/main/java/de/redsix/dmncheck/feel/FeelParser.java#L82).\n\nThe [tracis-ci job](https://travis-ci.org/pSub/checker-framework-letexpr-crash) provides a demonstration. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpsub%2Fcheckerframework-method-chaining-performance-regression","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpsub%2Fcheckerframework-method-chaining-performance-regression","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpsub%2Fcheckerframework-method-chaining-performance-regression/lists"}