https://kotlinlang.org logo
#kotest
Title
# kotest
j

Joel Hess

04/26/2021, 1:55 PM
I just updated to
4.4.3
with kotlin
1.4.32
and am seeing some method not found exceptions in my build pipeline that I don’t see locally.
Copy code
java.lang.NoSuchMethodError: 'java.lang.Object kotlinx.coroutines.DelayKt.delay-VtjQ1oo(double, kotlin.coroutines.Continuation)'
        at io.kotest.assertions.timing.EventuallyKt.eventually(eventually.kt:123)
        at io.kotest.assertions.timing.EventuallyKt.eventually$default(eventually.kt:77)
        at io.kotest.assertions.timing.EventuallyKt.eventually-rnQQ1Ag(eventually.kt:48)
Dropping back down to Kotest
4.4.1
seemed to work. Building on Java 11.
s

sam

04/26/2021, 2:08 PM
Yeah we've seen this before, duration is experimental in Kotlin and we shouldn't have used it. https://github.com/kotest/kotest/issues/2149 @Jim perhaps its worth getting this into 4.5 after all ?
j

Jim

04/26/2021, 4:28 PM
Yeah I can get to that this week
s

sam

04/26/2021, 4:28 PM
I don't mind doing the work, if we agree on an approach
p

Peter

04/30/2021, 10:59 PM
s

sam

04/30/2021, 10:59 PM
Yeah that's really annoying
j

Jim

04/30/2021, 11:00 PM
😞 just release it already
p

Peter

04/30/2021, 11:01 PM
i've been trying 1.5 ... no go 😞
Copy code
Caused by: java.lang.NoSuchMethodError: 'io.kotest.assertions.until.FixedInterval io.kotest.assertions.until.FixedIntervalKt.fixed-LRDsOJo(long)'
(works fine with 4.4.3 and 1.4.32)
s

sam

04/30/2021, 11:02 PM
We're going to add a new eventually package that doesn't use durations at all. Hopefully within a few days
p

Peter

04/30/2021, 11:02 PM
🙏
j

Jim

04/30/2021, 11:05 PM
Yep gonna start on that tomorrow.. I need a break tonight
s

sam

04/30/2021, 11:05 PM
Slacker ! ;)
p

Peter

04/30/2021, 11:06 PM
thanks guys 😄
gents - did these changes make it in?
eventually
seems to be still using kotlin.time.Duration and it’s blowing up at runtime being a value class in kotlin 1.5 - am i doing something wrong?
Caused by: java.lang.NoSuchMethodError: 'java.lang.Object io.kotest.assertions.timing.EventuallyKt.eventually-D5N0EJY(long, kotlin.jvm.functions.Function1, kotlin.coroutines.Continuation)'
first parameter is a
long
looks like code previously built against an
inline class
with 1.4 is not compatible with 1.5 where this particular class was changed to a
value class
? that seems alarming
s

sam

05/05/2021, 5:22 PM
They have changed the durations yes
So we need to rebuild teh eventually support - we're going to add a new package with a fresh implementation that doesn't use durations at all
j

Jim

05/05/2021, 5:22 PM
“Slacker” is right 😞 gonna take a look at lunch today
s

sam

05/05/2021, 5:22 PM
now that 4.5 is out, we can do this for a 4.5.1 release
p

Peter

05/05/2021, 5:23 PM
🙏
7 Views