Skip to content

🐛 Refactor toReader method in CloudEventHttpUtils to provide a temporary workaround to issue #704#743

Open
ranma2913 wants to merge 1 commit into
cloudevents:mainfrom
ranma2913:main
Open

🐛 Refactor toReader method in CloudEventHttpUtils to provide a temporary workaround to issue #704#743
ranma2913 wants to merge 1 commit into
cloudevents:mainfrom
ranma2913:main

Conversation

@ranma2913

Copy link
Copy Markdown

🐛 Refactor toReader method in CloudEventHttpUtils to provide a temporary workaround to #704

Spring Framework 7 changed org.springframework.http.HttpHeaders so it no longer implements the Map / MultiValueMap contract.

Current versions of io.cloudevents:cloudevents-spring pass HttpHeaders directly to:

HttpMessageFactory.createReaderFromMultimap(headers, body.get()); The CloudEvents HTTP reader expects a Map<String, List>, so applications running Spring Framework 7 fail while deserializing inbound CloudEvents with:

java.lang.IncompatibleClassChangeError:
Class org.springframework.http.ReadOnlyHttpHeaders does not implement the requested interface java.util.Map
In WebFlux, Reactor treats this linkage error as fatal. The HTTP exchange can remain incomplete, causing callers such as WebTestClient to report a timeout instead of the underlying exception.

…mporary workaround to [cloudevents#704](cloudevents#704)

Spring Framework 7 changed org.springframework.http.HttpHeaders so it no longer implements the Map / MultiValueMap contract.

Current versions of io.cloudevents:cloudevents-spring pass HttpHeaders directly to:

HttpMessageFactory.createReaderFromMultimap(headers, body.get());
The CloudEvents HTTP reader expects a Map<String, List<String>>, so applications running Spring Framework 7 fail while deserializing inbound CloudEvents with:

java.lang.IncompatibleClassChangeError:
Class org.springframework.http.ReadOnlyHttpHeaders does not implement
the requested interface java.util.Map
In WebFlux, Reactor treats this linkage error as fatal. The HTTP exchange can remain incomplete, causing callers such as WebTestClient to report a timeout instead of the underlying exception.

Signed-off-by: Joel Sticha (ranma2913) <4295880+ranma2913@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant