{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":38764029,"defaultBranch":"main","name":"spring-cloud-stream","ownerLogin":"spring-cloud","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2015-07-08T15:51:38.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/7815877?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1724090775.0","currentOid":""},"activityList":{"items":[{"before":"42d91e0ff396bc2a3f493c7b12628bad9a49cfe3","after":"29a3558329ca8165518028412aa9ae23796aebf0","ref":"refs/heads/main","pushedAt":"2024-09-19T20:17:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"sobychacko","name":"Soby Chacko","path":"/sobychacko","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/827682?s=80&v=4"},"commit":{"message":"Make MessageConverterHelper bean names distinct in binders.","shortMessageHtmlLink":"Make MessageConverterHelper bean names distinct in binders."}},{"before":"058fc660ae469a2e4ccfd0898034a541c1111118","after":"42d91e0ff396bc2a3f493c7b12628bad9a49cfe3","ref":"refs/heads/main","pushedAt":"2024-09-19T16:48:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"artembilan","name":"Artem Bilan","path":"/artembilan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1071590?s=80&v=4"},"commit":{"message":"GH-2650: Observability enhancements in reactive Kafka binder\n\nFixes https://github.com/spring-cloud/spring-cloud-stream/issues/2650\r\n\r\n* Enable native observability support for output binding in the reactive Kafka binder\r\n* Adding test to verify this support with downstream consumers\r\n* Adding ref docs\r\n* Addressing PR review","shortMessageHtmlLink":"GH-2650: Observability enhancements in reactive Kafka binder"}},{"before":"fac9eb1ebda8f2c70c13d5ae51ffde923d17843c","after":"058fc660ae469a2e4ccfd0898034a541c1111118","ref":"refs/heads/main","pushedAt":"2024-09-18T17:30:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"sobychacko","name":"Soby Chacko","path":"/sobychacko","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/827682?s=80&v=4"},"commit":{"message":"Enhancements in Kafka binder FunctionBatchingConversionTests","shortMessageHtmlLink":"Enhancements in Kafka binder FunctionBatchingConversionTests"}},{"before":"14c10462f8a6787fc3c02537a101d5c4f03e41ed","after":"fac9eb1ebda8f2c70c13d5ae51ffde923d17843c","ref":"refs/heads/main","pushedAt":"2024-09-17T18:40:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"sobychacko","name":"Soby Chacko","path":"/sobychacko","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/827682?s=80&v=4"},"commit":{"message":"Customizing batch message conversion behavior for Kafka binder\n\nContinuation of the previous commit: 14c10462f8a6787fc3c02537a101d5c4f03e41ed","shortMessageHtmlLink":"Customizing batch message conversion behavior for Kafka binder"}},{"before":"4df2e760b986506ae142418ee0ca7f3795cb7e70","after":"14c10462f8a6787fc3c02537a101d5c4f03e41ed","ref":"refs/heads/main","pushedAt":"2024-09-16T14:11:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"olegz","name":"Oleg Zhurakousky","path":"/olegz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/172397?s=80&v=4"},"commit":{"message":"GH-2994, GH-2986 Add initial support for customizing Message Converter behavior\n\nprimarily during batch processing.","shortMessageHtmlLink":"GH-2994, GH-2986 Add initial support for customizing Message Converte…"}},{"before":"f456405b0215fcbae1a17ccd8b2d4758f7c3cad8","after":"4df2e760b986506ae142418ee0ca7f3795cb7e70","ref":"refs/heads/main","pushedAt":"2024-09-10T19:54:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"sobychacko","name":"Soby Chacko","path":"/sobychacko","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/827682?s=80&v=4"},"commit":{"message":"Fixing failing tests\n\nMostly related to this commit in spring-cloud-funtion:\nhttps://github.com/spring-cloud/spring-cloud-function/commit/85a4fffcd48a710cdb9ce3676501222352f4ee0d","shortMessageHtmlLink":"Fixing failing tests"}},{"before":"87ed345d1aa1f815ada9106c99a9880e868f281e","after":"6c3fc4c35045025b66907983da258538780b283b","ref":"refs/heads/4.1.x","pushedAt":"2024-09-08T11:16:13.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"olegz","name":"Oleg Zhurakousky","path":"/olegz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/172397?s=80&v=4"},"commit":{"message":"Merge pull request #3001 from hightea/cherry-pick-avoid-duplicate-logs\n\nAvoid duplicate error logging when multiple destinations per binding","shortMessageHtmlLink":"Merge pull request #3001 from hightea/cherry-pick-avoid-duplicate-logs"}},{"before":"64dd18cc8ebf88852ca1f683820ffcf41f380814","after":"f456405b0215fcbae1a17ccd8b2d4758f7c3cad8","ref":"refs/heads/main","pushedAt":"2024-09-05T09:42:58.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"olegz","name":"Oleg Zhurakousky","path":"/olegz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/172397?s=80&v=4"},"commit":{"message":"Merge pull request #2998 from hightea/fix-duplicate-errors-logs\n\nAvoid duplicate error logging when multiple destinations per binding","shortMessageHtmlLink":"Merge pull request #2998 from hightea/fix-duplicate-errors-logs"}},{"before":"a0ccd665ff52c31623b847372bfad5721dcbc017","after":"08761487d89b8cf02505bdadc0f3ce0218a1560b","ref":"refs/heads/docs-build","pushedAt":"2024-09-04T20:01:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spencergibb","name":"Spencer Gibb","path":"/spencergibb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/594085?s=80&v=4"},"commit":{"message":"Adds 4.1.x branch","shortMessageHtmlLink":"Adds 4.1.x branch"}},{"before":"fe1392efb0e9f725b2e1ff360d3e3d4ceaf1a4db","after":"64dd18cc8ebf88852ca1f683820ffcf41f380814","ref":"refs/heads/main","pushedAt":"2024-09-03T23:20:18.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sobychacko","name":"Soby Chacko","path":"/sobychacko","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/827682?s=80&v=4"},"commit":{"message":"Use PulsarTopicBuilder in Pulsar binder (#2999)\n\nSpring for Apache Pulsar introduced support for default tenant and namespace\r\nfor Pulsar topics in https://github.com/spring-projects/spring-pulsar/commit/6d23378fbb57a50c3a302be136f9173d2854085d.\r\nThis ensures that all topic names are fully-qualified (using the default\r\ntenant and namespace when not fully-qualified).","shortMessageHtmlLink":"Use PulsarTopicBuilder in Pulsar binder (#2999)"}},{"before":"f146ce3eac18714c3375c5ef22f9f6215e4d51c9","after":"87ed345d1aa1f815ada9106c99a9880e868f281e","ref":"refs/heads/4.1.x","pushedAt":"2024-08-23T17:40:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"sobychacko","name":"Soby Chacko","path":"/sobychacko","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/827682?s=80&v=4"},"commit":{"message":"KafkaBinderMetrics' metrics should be unregistered before it's thread\n\n* KafkaBinderMetrics' metrics should be unregistered before it's threadpool is shutdown.\r\n* update authors and copyright years","shortMessageHtmlLink":"KafkaBinderMetrics' metrics should be unregistered before it's thread"}},{"before":"8e5f67a1a6f3e2e808056b7b62c5688982d8dd94","after":"fe1392efb0e9f725b2e1ff360d3e3d4ceaf1a4db","ref":"refs/heads/main","pushedAt":"2024-08-23T17:36:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sobychacko","name":"Soby Chacko","path":"/sobychacko","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/827682?s=80&v=4"},"commit":{"message":"KafkaBinderMetrics' metrics should be unregistered before it's thread\n\n* KafkaBinderMetrics' metrics should be unregistered before it's threadpool is shutdown.\r\n* update authors and copyright years","shortMessageHtmlLink":"KafkaBinderMetrics' metrics should be unregistered before it's thread"}},{"before":"1de0e1c690f79de934ef107df9ce9f8af6914f6d","after":"8e5f67a1a6f3e2e808056b7b62c5688982d8dd94","ref":"refs/heads/main","pushedAt":"2024-08-20T13:04:20.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"olegz","name":"Oleg Zhurakousky","path":"/olegz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/172397?s=80&v=4"},"commit":{"message":"Code cleanup\n\nResolves #2990","shortMessageHtmlLink":"Code cleanup"}},{"before":"26dddfe1c1815763523d1c5a1f3fdf44f9bac8c3","after":"1de0e1c690f79de934ef107df9ce9f8af6914f6d","ref":"refs/heads/main","pushedAt":"2024-08-19T18:09:14.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"spring-builds","name":"Spring Builds","path":"/spring-builds","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1134463?s=80&v=4"},"commit":{"message":"Going back to snapshots","shortMessageHtmlLink":"Going back to snapshots"}},{"before":"15f57912813313e79f0c66305d7ef49b640e5c6d","after":null,"ref":"refs/tags/v4.2.0-M1","pushedAt":"2024-08-19T17:41:46.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"ryanjbaxter","name":"Ryan Baxter","path":"/ryanjbaxter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/524254?s=80&v=4"}},{"before":"268423327b7e1189064ca85d29886345639e9c19","after":"26dddfe1c1815763523d1c5a1f3fdf44f9bac8c3","ref":"refs/heads/main","pushedAt":"2024-08-19T17:29:32.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"spring-builds","name":"Spring Builds","path":"/spring-builds","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1134463?s=80&v=4"},"commit":{"message":"Going back to snapshots","shortMessageHtmlLink":"Going back to snapshots"}},{"before":"6aa90622479ef649b016d8969f1583ed4f528c38","after":"268423327b7e1189064ca85d29886345639e9c19","ref":"refs/heads/main","pushedAt":"2024-08-19T10:17:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"olegz","name":"Oleg Zhurakousky","path":"/olegz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/172397?s=80&v=4"},"commit":{"message":"GH-2989 - Make SpEL converter stringify primitive values\n\nResolves #2989","shortMessageHtmlLink":"GH-2989 - Make SpEL converter stringify primitive values"}},{"before":"3dd4a0747bb3c3e9612941f4483f959850cda9e0","after":"f146ce3eac18714c3375c5ef22f9f6215e4d51c9","ref":"refs/heads/4.1.x","pushedAt":"2024-08-19T10:11:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"olegz","name":"Oleg Zhurakousky","path":"/olegz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/172397?s=80&v=4"},"commit":{"message":"GH-2989 - Make SpEL converter stringify primitive values\n\nResolves #2989","shortMessageHtmlLink":"GH-2989 - Make SpEL converter stringify primitive values"}},{"before":"b898e396edd30bfec4b876de51560c8c4fe73099","after":"6aa90622479ef649b016d8969f1583ed4f528c38","ref":"refs/heads/main","pushedAt":"2024-08-08T09:00:31.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"olegz","name":"Oleg Zhurakousky","path":"/olegz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/172397?s=80&v=4"},"commit":{"message":"Merge pull request #2983 from omercelikceng/messageHeadersTest\n\nMissing Headers Problem","shortMessageHtmlLink":"Merge pull request #2983 from omercelikceng/messageHeadersTest"}},{"before":"dffbe6d61006661d93625a0042954beb13d05d92","after":"b898e396edd30bfec4b876de51560c8c4fe73099","ref":"refs/heads/main","pushedAt":"2024-08-07T21:50:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"sobychacko","name":"Soby Chacko","path":"/sobychacko","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/827682?s=80&v=4"},"commit":{"message":"Re-enable SchemaRegistryServerAvroTests\n\n* Update the expected error messages","shortMessageHtmlLink":"Re-enable SchemaRegistryServerAvroTests"}},{"before":"71e0c92e7cba39ed5d8d5c3ee3addeaab64c5e12","after":"dffbe6d61006661d93625a0042954beb13d05d92","ref":"refs/heads/main","pushedAt":"2024-08-07T15:29:54.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"olegz","name":"Oleg Zhurakousky","path":"/olegz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/172397?s=80&v=4"},"commit":{"message":"Merge pull request #2984 from andq/main\n\nFix typo in docs","shortMessageHtmlLink":"Merge pull request #2984 from andq/main"}},{"before":"9bfc2429412365060b5279476fcba4414990737a","after":"71e0c92e7cba39ed5d8d5c3ee3addeaab64c5e12","ref":"refs/heads/main","pushedAt":"2024-08-06T18:49:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spring-builds","name":"Spring Builds","path":"/spring-builds","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1134463?s=80&v=4"},"commit":{"message":"Bumping versions","shortMessageHtmlLink":"Bumping versions"}},{"before":"721b904ae24e90fec05a75ae6b54e2c73041fb21","after":"9bfc2429412365060b5279476fcba4414990737a","ref":"refs/heads/main","pushedAt":"2024-08-06T18:18:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spencergibb","name":"Spencer Gibb","path":"/spencergibb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/594085?s=80&v=4"},"commit":{"message":"Disables tests","shortMessageHtmlLink":"Disables tests"}},{"before":"8eda26210add3359c67a96ea2bd54f2186b5820b","after":"721b904ae24e90fec05a75ae6b54e2c73041fb21","ref":"refs/heads/main","pushedAt":"2024-08-06T17:50:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spencergibb","name":"Spencer Gibb","path":"/spencergibb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/594085?s=80&v=4"},"commit":{"message":"Disables tests","shortMessageHtmlLink":"Disables tests"}},{"before":"42c42104ea6dbe9c4ae88453c4f76165176c2805","after":"8eda26210add3359c67a96ea2bd54f2186b5820b","ref":"refs/heads/main","pushedAt":"2024-08-05T20:06:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spencergibb","name":"Spencer Gibb","path":"/spencergibb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/594085?s=80&v=4"},"commit":{"message":"Disables tests","shortMessageHtmlLink":"Disables tests"}},{"before":"3dd4a0747bb3c3e9612941f4483f959850cda9e0","after":"42c42104ea6dbe9c4ae88453c4f76165176c2805","ref":"refs/heads/main","pushedAt":"2024-08-05T19:54:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spencergibb","name":"Spencer Gibb","path":"/spencergibb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/594085?s=80&v=4"},"commit":{"message":"Fixed compile errors with replacements for deprecations","shortMessageHtmlLink":"Fixed compile errors with replacements for deprecations"}},{"before":null,"after":"3dd4a0747bb3c3e9612941f4483f959850cda9e0","ref":"refs/heads/4.1.x","pushedAt":"2024-08-05T14:30:03.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ryanjbaxter","name":"Ryan Baxter","path":"/ryanjbaxter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/524254?s=80&v=4"},"commit":{"message":"Bumping versions","shortMessageHtmlLink":"Bumping versions"}},{"before":"3b5bb2e0d9a89c3b9ae9152c99268460ca7ed442","after":"3dd4a0747bb3c3e9612941f4483f959850cda9e0","ref":"refs/heads/main","pushedAt":"2024-08-02T10:19:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spring-builds","name":"Spring Builds","path":"/spring-builds","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1134463?s=80&v=4"},"commit":{"message":"Bumping versions","shortMessageHtmlLink":"Bumping versions"}},{"before":"f3565995037d55336c8189b4bed31e4be2dcd6ad","after":"3b5bb2e0d9a89c3b9ae9152c99268460ca7ed442","ref":"refs/heads/main","pushedAt":"2024-08-01T21:57:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"sobychacko","name":"Soby Chacko","path":"/sobychacko","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/827682?s=80&v=4"},"commit":{"message":"Remove redundant `delaySubscription` from `FunctionConfiguration`\n\nRelated to: https://github.com/spring-projects/spring-integration/issues/9362\n\nAfter the fix in Spring Integration: https://github.com/spring-projects/spring-integration/commit/bdcb856a9081bc091d56be16d51f0f4d561bc9ce\nwe ended up in a deadlock situation with a `beginPublishingTrigger` in the `FunctionConfiguration`\nused for the `delaySubscription()` on an original `Publisher`.\nThe `FluxMessageChannel` uses its own `delaySubscription()` until the channel has its subscribers.\nApparently the logic before was with errors, so the `FluxMessageChannel` was marked as active\neven if its subscriber is not ready yet, leading to famous `Dispatcher does not have subscribers` error.\nSo, looks like this `beginPublishingTrigger` was introduced back in days in Spring Cloud Stream\nto mitigate that situation until we really emit a `BindingCreatedEvent`.\n\nThe deadlock (and the flaw, respectively) is with the `setupBindingTrigger()` method implementation\nwhere `FluxMessageChannel` now \"really\" delays a subscription to the provided `Publisher`,\ntherefore not triggering that `Mono.create()` fulfilment immediately.\nThe `BindingCreatedEvent` arrives earlier, than we have a subscriber on the channel,\nbut `triggerRef.get()` is `null`, so we don't `success()` it and in the end don't subscribe\nto an original `Publisher` since `delaySubscription()` on it is never completed.\n\nSince `FunctionConfiguration` fully relies on `IntegrationFlow.from(Publisher)`,\nwhich ends up with the mentioned `FluxMessageChannel.subscribeTo()` and its own `delaySubscription()`\n(which, in turn, apparently fixed now), we don't need our own `delaySubscription()` any more.\nTherefore the fix in this PR is to propose to remove `beginPublishingTrigger` logic altogether.","shortMessageHtmlLink":"Remove redundant delaySubscription from FunctionConfiguration"}},{"before":"07e7d81e2db5241d01d6c9ee3a96cead213a44b1","after":"f3565995037d55336c8189b4bed31e4be2dcd6ad","ref":"refs/heads/main","pushedAt":"2024-07-17T15:20:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"olegz","name":"Oleg Zhurakousky","path":"/olegz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/172397?s=80&v=4"},"commit":{"message":"GH-1163-function\n\nAdded test for the fix provided in s-c-function","shortMessageHtmlLink":"GH-1163-function"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xOVQyMDoxNzowNC4wMDAwMDBazwAAAAS7SKcx","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xOVQyMDoxNzowNC4wMDAwMDBazwAAAAS7SKcx","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNy0xN1QxNToyMDozOC4wMDAwMDBazwAAAASB_qMM"}},"title":"Activity · spring-cloud/spring-cloud-stream"}