Skip to content

Commit

Permalink
chore(dependency): upgrade spring boot from 2.5.x to 2.6.x and spring…
Browse files Browse the repository at this point in the history
… cloud from 2020.0.x to 2021.0.x

Spring cloud release 2021.0.x is compatible with spring boot 2.6.x.
https://github.com/spring-cloud/spring-cloud-release/wiki/Supported-Versions#supported-releases

While upgrading spring boot 2.6.15 and spring cloud 2021.0.8, encounter below errors in kork-plugins and kork-tomcat modules:

```
> Task :kork-plugins:compileTestKotlin FAILED
e: /kork/kork-plugins/src/test/kotlin/com/netflix/spinnaker/kork/plugins/SpringPluginStatusProviderTest.kt: (50, 11): Type mismatch: inferred type is Array<???> but SpringApplication! was expected
e: /kork/kork-plugins/src/test/kotlin/com/netflix/spinnaker/kork/plugins/SpringPluginStatusProviderTest.kt: (51, 11): Type mismatch: inferred type is ConfigurableEnvironment but Array<(out) String!>! was expected
e: /kork/kork-plugins/src/test/kotlin/com/netflix/spinnaker/kork/plugins/SpringPluginStatusProviderTest.kt: (52, 9): No value passed for parameter 'environment'
```
The root cause is the deprecation and removal of `org.springframework.boot.context.event.ApplicationEnvironmentPreparedEvent` constructor without `org.springframework.boot.SpringApplication` in spring boot 2.6.x.
https://docs.spring.io/spring-boot/docs/2.5.15/api/org/springframework/boot/context/event/ApplicationEnvironmentPreparedEvent.html
To fix this error add mock for `SpringApplication` in `ApplicationEnvironmentPreparedEvent` constructor.

```
DEBUG --- [o-auto-2-exec-1] o.a.coyote.http11.Http11InputBuffer      : Before fill(): parsingHeader: [true], parsingRequestLine: [true], parsingRequestLinePhase: [0], parsingRequestLineStart: [0], byteBuffer.position(): [0], byteBuffer.limit(): [0], end: [0]
DEBUG --- [o-auto-2-exec-1] o.a.coyote.http11.Http11InputBuffer      : Received [GET /test-controller HTTP/1.1
Accept: text/plain, application/json, application/*+json, */*
X-Dum@my: foo
User-Agent: Java/11.0.2
Host: localhost:35189
Connection: keep-alive

]
INFO --- [o-auto-2-exec-1] o.apache.coyote.http11.Http11Processor   : Error parsing HTTP request header
 Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.

java.lang.IllegalArgumentException: The HTTP header line [x-dum@my: foo] does not conform to RFC 7230. The request has been rejected.
	at org.apache.coyote.http11.Http11InputBuffer.skipLine(Http11InputBuffer.java:1074) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
	at org.apache.coyote.http11.Http11InputBuffer.parseHeader(Http11InputBuffer.java:905) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
	at org.apache.coyote.http11.Http11InputBuffer.parseHeaders(Http11InputBuffer.java:591) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:286) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.75.jar:9.0.75]
	at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]

expected: <200 OK> but was: <400 BAD_REQUEST>
Expected :200 OK
Actual   :400 BAD_REQUEST
<Click to see difference>

org.opentest4j.AssertionFailedError: expected: <200 OK> but was: <400 BAD_REQUEST>
	at app//org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:55)
	at app//org.junit.jupiter.api.AssertionUtils.failNotEqual(AssertionUtils.java:62)
	at app//org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:182)
	at app//org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:177)
	at app//org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:1141)
	at app//com.netflix.spinnaker.kork.tomcat.WebEnvironmentTest.testTomcatWithIllegalHttpHeaders(WebEnvironmentTest.java:59)
```
To fix this error removed `@` from test header.
  • Loading branch information
j-sandy committed Dec 15, 2023
1 parent 2ae4f0b commit b93d6f0
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ class SpringPluginStatusProviderTest : JUnit5Minutests {

subject.onApplicationEvent(
ApplicationEnvironmentPreparedEvent(
mockk(relaxed = true),
mockk(relaxed = true),
arrayOf(),
environment
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ void testTomcatWithIllegalHttpHeaders() throws Exception {
HttpHeaders headers = new HttpHeaders();
// this is enough to cause a BAD_REQUEST if tomcat has rejectIllegalHeaders
// set to true
headers.add("X-Dum@my", "foo");
headers.add("X-Dummy", "foo");

URI uri =
UriComponentsBuilder.fromHttpUrl("http://localhost/test-controller")
Expand Down
6 changes: 3 additions & 3 deletions spinnaker-dependencies/spinnaker-dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ ext {
spectator : "1.0.6",
spek : "1.1.5",
spek2 : "2.0.9",
springBoot : "2.5.15",
springCloud : "2020.0.6",
springBoot : "2.6.15",
springCloud : "2021.0.8", //"2020.0.6",
springfoxSwagger : "2.9.2",
swagger : "1.5.20", //this should stay in sync with what springfoxSwagger expects

Expand Down Expand Up @@ -83,7 +83,7 @@ dependencies {
// JinJava 2.5.3 has a bad bug: https://github.com/HubSpot/jinjava/issues/429
api("com.hubspot.jinjava:jinjava:2.5.2")
api("com.jakewharton.retrofit:retrofit1-okhttp3-client:1.1.0")
api("com.jcraft.jsch:${versions.jsch}")
api("com.jcraft:jsch:${versions.jsch}")
api("com.jcraft:jsch.agentproxy.connector-factory:${versions.jschAgentProxy}")
api("com.jcraft:jsch.agentproxy.jsch:${versions.jschAgentProxy}")
api("com.natpryce:hamkrest:1.4.2.2")
Expand Down

0 comments on commit b93d6f0

Please sign in to comment.