{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":1148753,"defaultBranch":"main","name":"spring-framework","ownerLogin":"spring-projects","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2010-12-08T04:04:45.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/317776?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1726143615.0","currentOid":""},"activityList":{"items":[{"before":"df5489b81a4e2c2e6f99e01081bf5a996f25b341","after":"c6fa180602f73c227e39d2f68c3ef98039e38117","ref":"refs/heads/main","pushedAt":"2024-09-20T18:25:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rstoyanchev","name":"Rossen Stoyanchev","path":"/rstoyanchev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/401908?s=80&v=4"},"commit":{"message":"Extract shared resource handling utility methods\n\nCloses: gh-33574","shortMessageHtmlLink":"Extract shared resource handling utility methods"}},{"before":"24a8f1b26da5ea2ec086e4b8e82bb6e4bb459a52","after":"df5489b81a4e2c2e6f99e01081bf5a996f25b341","ref":"refs/heads/main","pushedAt":"2024-09-20T17:16:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jhoeller","name":"Juergen Hoeller","path":"/jhoeller","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1263688?s=80&v=4"},"commit":{"message":"Introduce optionalValue() method on ResultQuerySpec\n\nCloses gh-33560","shortMessageHtmlLink":"Introduce optionalValue() method on ResultQuerySpec"}},{"before":"159e23730c3a10a48d91bc5c0fdcbb95c528312e","after":"24a8f1b26da5ea2ec086e4b8e82bb6e4bb459a52","ref":"refs/heads/main","pushedAt":"2024-09-20T17:10:16.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jhoeller","name":"Juergen Hoeller","path":"/jhoeller","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1263688?s=80&v=4"},"commit":{"message":"AnnotatedBeanDefinitionReader should respect @Fallback qualifier analogous to @Primary\n\nAlso add tests to cover qualifier classes.","shortMessageHtmlLink":"AnnotatedBeanDefinitionReader should respect @fallback qualifier anal…"}},{"before":"8931b75b958144b1496da1b163553acd03e11ebd","after":"159e23730c3a10a48d91bc5c0fdcbb95c528312e","ref":"refs/heads/main","pushedAt":"2024-09-20T09:34:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sbrannen","name":"Sam Brannen","path":"/sbrannen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/104798?s=80&v=4"},"commit":{"message":"Fix Javadoc @⁠since tags in JettyCoreRequestUpgradeStrategy\n\nSee gh-32097\r\nCloses gh-33569","shortMessageHtmlLink":"Fix Javadoc @⁠since tags in JettyCoreRequestUpgradeStrategy"}},{"before":"612007643703528120801bee30d835b2daeb5239","after":"8931b75b958144b1496da1b163553acd03e11ebd","ref":"refs/heads/main","pushedAt":"2024-09-20T08:58:46.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"sbrannen","name":"Sam Brannen","path":"/sbrannen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/104798?s=80&v=4"},"commit":{"message":"Polishing","shortMessageHtmlLink":"Polishing"}},{"before":"e587753b1d78f16620b6efa69cecc7069e2466ea","after":"612007643703528120801bee30d835b2daeb5239","ref":"refs/heads/main","pushedAt":"2024-09-20T08:56:48.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"rstoyanchev","name":"Rossen Stoyanchev","path":"/rstoyanchev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/401908?s=80&v=4"},"commit":{"message":"Merge branch '6.1.x'","shortMessageHtmlLink":"Merge branch '6.1.x'"}},{"before":"776811bdb882b7ed7e6b388f6433a5c1cf4c4938","after":"94c04821ffcf0935077d0bf49c7467a12009806f","ref":"refs/heads/6.1.x","pushedAt":"2024-09-20T08:56:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rstoyanchev","name":"Rossen Stoyanchev","path":"/rstoyanchev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/401908?s=80&v=4"},"commit":{"message":"Use correct method to check encoded resource path\n\nCloses: gh-33568","shortMessageHtmlLink":"Use correct method to check encoded resource path"}},{"before":"c832d5f496737617850ea8f9bb0b6025736e238c","after":"e587753b1d78f16620b6efa69cecc7069e2466ea","ref":"refs/heads/main","pushedAt":"2024-09-18T15:14:07.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"sbrannen","name":"Sam Brannen","path":"/sbrannen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/104798?s=80&v=4"},"commit":{"message":"Introduce @⁠EasyMockBean bean override example\n\nThis commit introduces example support for a custom @⁠EasyMockBean\nannotation that allows tests to use EasyMock as the mocking framework\nfor bean overrides in a test's ApplicationContext.\n\nThe point of this exercise is to ensure that it is possible for third\nparties to introduce bean override support for mocking frameworks other\nthan Mockito, and that they can do so with the APIs currently in place.\n\nCloses gh-33562","shortMessageHtmlLink":"Introduce @⁠EasyMockBean bean override example"}},{"before":"6f09c21f055035efc7760e66b75dd8eda5756aeb","after":"c832d5f496737617850ea8f9bb0b6025736e238c","ref":"refs/heads/main","pushedAt":"2024-09-18T09:51:10.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"simonbasle","name":"Simon Baslé","path":"/simonbasle","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6986166?s=80&v=4"},"commit":{"message":"Polishing contribution\n\nFixes gh-33556","shortMessageHtmlLink":"Polishing contribution"}},{"before":"06d240b558b94706d2f7d83e06ef3db86d08aaef","after":"6f09c21f055035efc7760e66b75dd8eda5756aeb","ref":"refs/heads/main","pushedAt":"2024-09-18T09:21:11.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"bclozel","name":"Brian Clozel","path":"/bclozel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/103264?s=80&v=4"},"commit":{"message":"Merge branch '6.1.x'","shortMessageHtmlLink":"Merge branch '6.1.x'"}},{"before":"de4ff4b44bbe0147009e3d98d31b6bc5f2373a53","after":"776811bdb882b7ed7e6b388f6433a5c1cf4c4938","ref":"refs/heads/6.1.x","pushedAt":"2024-09-18T09:21:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bclozel","name":"Brian Clozel","path":"/bclozel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/103264?s=80&v=4"},"commit":{"message":"Defer ExchangeFilterFunction execution in WebClient\n\nPrior to this commit, the `DefaultWebClient` would execute the configured\n`ExchangeFilterFunction` as the reactive pipeline is assembled during\nsubscription. This means that if imperative code is executed in a filter\nfunction, it won't be aware of the current observation through the local\nscope.\n\nFor example, when automatic context propagation is enabled for Reactor\noperators, the logger MDC will not know about the current\ntraceId/spanId.\n\nThis commit ensures that client filter functions execution is deferred\nduring the actual client exchange.\n\nFixes gh-33559","shortMessageHtmlLink":"Defer ExchangeFilterFunction execution in WebClient"}},{"before":"20bc5ef68bae66fd9115faaaa4ccd4c35b7e2fb0","after":"06d240b558b94706d2f7d83e06ef3db86d08aaef","ref":"refs/heads/main","pushedAt":"2024-09-17T14:51:00.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"simonbasle","name":"Simon Baslé","path":"/simonbasle","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6986166?s=80&v=4"},"commit":{"message":"Merge branch '6.1.x'","shortMessageHtmlLink":"Merge branch '6.1.x'"}},{"before":"daea92397f5fa0f37d30b377017563516eaec4ee","after":"de4ff4b44bbe0147009e3d98d31b6bc5f2373a53","ref":"refs/heads/6.1.x","pushedAt":"2024-09-17T14:51:00.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"simonbasle","name":"Simon Baslé","path":"/simonbasle","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6986166?s=80&v=4"},"commit":{"message":"Polishing tests\n\nThis commit adds more test coverage of SpringCoreBlockHoundIntegration.\n\nSee gh-33450","shortMessageHtmlLink":"Polishing tests"}},{"before":"383fa43dedc6be75998b98dd1975e9fed791b4fb","after":"20bc5ef68bae66fd9115faaaa4ccd4c35b7e2fb0","ref":"refs/heads/main","pushedAt":"2024-09-17T14:21:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jhoeller","name":"Juergen Hoeller","path":"/jhoeller","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1263688?s=80&v=4"},"commit":{"message":"Accept nested array type for upUntilUnresolvable check as well\n\nCloses gh-33535","shortMessageHtmlLink":"Accept nested array type for upUntilUnresolvable check as well"}},{"before":"13e175ab466169f5a381af92d5b45634d32abcde","after":"383fa43dedc6be75998b98dd1975e9fed791b4fb","ref":"refs/heads/main","pushedAt":"2024-09-16T15:00:39.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"sdeleuze","name":"Sébastien Deleuze","path":"/sdeleuze","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141109?s=80&v=4"},"commit":{"message":"Merge branch '6.1.x'","shortMessageHtmlLink":"Merge branch '6.1.x'"}},{"before":"5efb385e64c2b4aaaf5017ba9bfdfee09632991c","after":"daea92397f5fa0f37d30b377017563516eaec4ee","ref":"refs/heads/6.1.x","pushedAt":"2024-09-16T15:00:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"sdeleuze","name":"Sébastien Deleuze","path":"/sdeleuze","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141109?s=80&v=4"},"commit":{"message":"Reference the spring-framework-petclinic repository\n\nCloses gh-33539","shortMessageHtmlLink":"Reference the spring-framework-petclinic repository"}},{"before":"d3755aba0619152e0c04f52ea72815cace270537","after":"13e175ab466169f5a381af92d5b45634d32abcde","ref":"refs/heads/main","pushedAt":"2024-09-16T13:52:46.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"sbrannen","name":"Sam Brannen","path":"/sbrannen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/104798?s=80&v=4"},"commit":{"message":"Avoid use of static import in production code","shortMessageHtmlLink":"Avoid use of static import in production code"}},{"before":"0a001482c36c218ad2705a91baf79b466557514f","after":"d3755aba0619152e0c04f52ea72815cace270537","ref":"refs/heads/main","pushedAt":"2024-09-13T14:01:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"sdeleuze","name":"Sébastien Deleuze","path":"/sdeleuze","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141109?s=80&v=4"},"commit":{"message":"Add RestClient.Builder#messageConverters(List)\n\nThis commit also introduces the validation of the RestClient\nmessage converters for both variants.\n\nCloses gh-33536","shortMessageHtmlLink":"Add RestClient.Builder#messageConverters(List)"}},{"before":"16d8df8c2ffb01795dc999ba1b375575a1055f79","after":"0a001482c36c218ad2705a91baf79b466557514f","ref":"refs/heads/main","pushedAt":"2024-09-13T13:56:45.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"bclozel","name":"Brian Clozel","path":"/bclozel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/103264?s=80&v=4"},"commit":{"message":"Merge branch '6.1.x'","shortMessageHtmlLink":"Merge branch '6.1.x'"}},{"before":"b388ff60ddbbdcf4af25a2e0fd512f6f37a36ec0","after":"5efb385e64c2b4aaaf5017ba9bfdfee09632991c","ref":"refs/heads/6.1.x","pushedAt":"2024-09-13T13:56:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bclozel","name":"Brian Clozel","path":"/bclozel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/103264?s=80&v=4"},"commit":{"message":"Read Expires cookie attribute in HttpComponents connector\n\nPrior to this commit, the HttpComponents implementation for the\n`WebClient` would only consider the max-age attribute of response\ncookies when parsing the response. This is not aligned with other client\nimplementations that consider the max-age attribute first, and then the\nexpires if the former was not present. The expires date is then\ntranslated into a max-age duration. This behavior is done naturally by\nseveral implementations.\n\nThis commit updates the `HttpComponentsClientHttpResponse` to do the\nsame.\n\nFixes gh-33157","shortMessageHtmlLink":"Read Expires cookie attribute in HttpComponents connector"}},{"before":"52f0e8fb6d34fc382d3dc90c3f48d7cc48da1aca","after":"16d8df8c2ffb01795dc999ba1b375575a1055f79","ref":"refs/heads/main","pushedAt":"2024-09-13T13:30:01.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"sbrannen","name":"Sam Brannen","path":"/sbrannen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/104798?s=80&v=4"},"commit":{"message":"Merge branch '6.1.x'","shortMessageHtmlLink":"Merge branch '6.1.x'"}},{"before":"412f5f677bc5de068e6814f502c19dc43af2849c","after":"b388ff60ddbbdcf4af25a2e0fd512f6f37a36ec0","ref":"refs/heads/6.1.x","pushedAt":"2024-09-13T13:29:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"sbrannen","name":"Sam Brannen","path":"/sbrannen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/104798?s=80&v=4"},"commit":{"message":"Fix parameterized test display names and polishing","shortMessageHtmlLink":"Fix parameterized test display names and polishing"}},{"before":"598580020e3b5f72ea03990882dac37d8c0aa128","after":"52f0e8fb6d34fc382d3dc90c3f48d7cc48da1aca","ref":"refs/heads/main","pushedAt":"2024-09-13T12:49:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"sdeleuze","name":"Sébastien Deleuze","path":"/sdeleuze","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/141109?s=80&v=4"},"commit":{"message":"Refine null-safety for additional Assert methods\n\nCloses gh-33530","shortMessageHtmlLink":"Refine null-safety for additional Assert methods"}},{"before":"6a20987933283bd441ff4aedd2bc3c554c7010fc","after":"412f5f677bc5de068e6814f502c19dc43af2849c","ref":"refs/heads/6.1.x","pushedAt":"2024-09-13T08:21:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bclozel","name":"Brian Clozel","path":"/bclozel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/103264?s=80&v=4"},"commit":{"message":"Fix NPEs in MimeMessageHelper when adding files without names\n\nPrior to this commit, `MimeMessageHelper` would accept `Resource`\ninstances as inline attachments in multipart MIME messages. If the\nprovided `Resource` implementation returns `null` for `getFileName()`,\nthe `addInLine` method would fail with a `NullPointerException` as\nJakarta activation fails to detect the content type for a null filename.\n\nThis commit falls back on \"application/octet-stream\" when the filename\nis not known for the given resource instead of failing with an\nexception.\n\nFixes gh-33527","shortMessageHtmlLink":"Fix NPEs in MimeMessageHelper when adding files without names"}},{"before":"5838bf5888da1c23967df502ac2bca965cb74d70","after":"598580020e3b5f72ea03990882dac37d8c0aa128","ref":"refs/heads/main","pushedAt":"2024-09-13T08:21:48.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"bclozel","name":"Brian Clozel","path":"/bclozel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/103264?s=80&v=4"},"commit":{"message":"Merge branch '6.1.x'","shortMessageHtmlLink":"Merge branch '6.1.x'"}},{"before":"f6c6f7c02c73b8980d9af39c14e510977a249cee","after":"5838bf5888da1c23967df502ac2bca965cb74d70","ref":"refs/heads/main","pushedAt":"2024-09-13T07:33:28.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"bclozel","name":"Brian Clozel","path":"/bclozel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/103264?s=80&v=4"},"commit":{"message":"Merge branch '6.1.x'","shortMessageHtmlLink":"Merge branch '6.1.x'"}},{"before":"2ae62dec8c56d9bed5ed95d316d207ff0cb89287","after":"6a20987933283bd441ff4aedd2bc3c554c7010fc","ref":"refs/heads/6.1.x","pushedAt":"2024-09-13T07:33:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bclozel","name":"Brian Clozel","path":"/bclozel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/103264?s=80&v=4"},"commit":{"message":"Add missing URI template variables in RedirectViews\n\nPrior to this commit, the URL handler mapping would expose the matching\npattern, the path within mapping and matching URI variables as request\nattributes. This was the case when the mapping would use the\n`AntPathMatcher` as matching infrastructure, but not when using the\n`PathPattern` variant. In this case, the map of URI variables would be\n`null`. This could throw `IllegalArgumentException` when `RedirectView`\ninstances were relying on the presence of specific variables.\n\nThis commit ensures that URI variables are also extracted when the\n`PathPatternParser` is used.\n\nFixes gh-33422","shortMessageHtmlLink":"Add missing URI template variables in RedirectViews"}},{"before":"d86bf8b2056429edf5494456cffcb2b243331c49","after":"2ae62dec8c56d9bed5ed95d316d207ff0cb89287","ref":"refs/heads/6.1.x","pushedAt":"2024-09-12T12:11:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"snicoll","name":"Stéphane Nicoll","path":"/snicoll","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/490484?s=80&v=4"},"commit":{"message":"Next development version (v6.1.14-SNAPSHOT)","shortMessageHtmlLink":"Next development version (v6.1.14-SNAPSHOT)"}},{"before":"29ffa4963c32d3d9e2bd2c589c00686f8fcea8c2","after":"f6c6f7c02c73b8980d9af39c14e510977a249cee","ref":"refs/heads/main","pushedAt":"2024-09-12T12:11:23.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"snicoll","name":"Stéphane Nicoll","path":"/snicoll","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/490484?s=80&v=4"},"commit":{"message":"Merge branch '6.1.x'","shortMessageHtmlLink":"Merge branch '6.1.x'"}},{"before":"39e9e8893231ffc34d47614f00c5a4b5b09b6bfb","after":"29ffa4963c32d3d9e2bd2c589c00686f8fcea8c2","ref":"refs/heads/main","pushedAt":"2024-09-12T11:38:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"sbrannen","name":"Sam Brannen","path":"/sbrannen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/104798?s=80&v=4"},"commit":{"message":"Restructure content in testing resources section","shortMessageHtmlLink":"Restructure content in testing resources section"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yMFQxODoyNTo0Ni4wMDAwMDBazwAAAAS8QuWT","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yMFQxODoyNTo0Ni4wMDAwMDBazwAAAAS8QuWT","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xMlQxMTozODoyNy4wMDAwMDBazwAAAAS0Tikt"}},"title":"Activity · spring-projects/spring-framework"}