Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EitherValues.value in Left kills the reporter #2157

Open
kamilkloch opened this issue Aug 12, 2022 · 4 comments
Open

EitherValues.value in Left kills the reporter #2157

kamilkloch opened this issue Aug 12, 2022 · 4 comments

Comments

@kamilkloch
Copy link

import org.scalatest.EitherValues
import org.scalatest.funsuite.AnyFunSuite


class TestEitherValues extends AnyFunSuite with EitherValues {

  test(".value") {
    (Left("error"): Either[String, Int]).value
    true
  }
}

sbt 1.7.1, scalatest 3.2.13, suite run from within sbt shell prints the following error:

sbt:tests> testOnly test.TestEitherValues
[info] TestEitherValues:
[info] - .value *** FAILED ***
[info]   The Either on which value was invoked was not defined as a Right; it was Left(error). (TestEitherValues.scala:9)
Reporter completed abruptly with an exception after receiving event: TestFailed(Ordinal(0, 3),The Either on which value was invoked was not defined as a Right; it was Left(error). ,TestEitherValues,test.TestEitherValues,Some(test.TestEitherValues),.value,.value,Vector(),Vector(),Some(org.scalatest.exceptions.TestFailedException: The Either on which value was invoked was not defined as a Right; it was Left(error). ),Some(38),Some(IndentedText(- .value,.value,0)),Some(SeeStackDepthException),Some(test.TestEitherValues),None,pool-1-thread-1-ScalaTest-running-TestEitherValues,1660294046998).
java.io.NotSerializableException: org.scalatest.Engine
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1197)
	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1582)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1539)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1448)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1191)
	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1582)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1539)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1448)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1191)
	at java.base/java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1391)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1187)
	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1582)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1539)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1448)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1191)
	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1582)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1539)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1448)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1191)
	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1582)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1539)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1448)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1191)
	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1582)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1539)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1448)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1191)
	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:354)
	at org.scalatest.tools.SocketReporter.apply(SocketReporter.scala:31)
	at org.scalatest.DispatchReporter$Propagator.$anonfun$run$10(DispatchReporter.scala:249)
	at org.scalatest.DispatchReporter$Propagator.$anonfun$run$10$adapted(DispatchReporter.scala:248)
	at scala.collection.immutable.List.foreach(List.scala:333)
	at org.scalatest.DispatchReporter$Propagator.run(DispatchReporter.scala:248)
	at java.base/java.lang.Thread.run(Thread.java:833)
Exception in thread "Thread-97" java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.scalatest.Engine
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1751)
	at java.base/java.io.ObjectInputStream$FieldValues.<init>(ObjectInputStream.java:2617)
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2468)
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2268)
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1744)
	at java.base/java.io.ObjectInputStream$FieldValues.<init>(ObjectInputStream.java:2617)
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2468)
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2268)
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1744)
	at java.base/java.io.ObjectInputStream.readArray(ObjectInputStream.java:2168)
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1732)
	at java.base/java.io.ObjectInputStream$FieldValues.<init>(ObjectInputStream.java:2617)
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2468)
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2268)
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1744)
	at java.base/java.io.ObjectInputStream$FieldValues.<init>(ObjectInputStream.java:2617)
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2468)
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2268)
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1744)
	at java.base/java.io.ObjectInputStream$FieldValues.<init>(ObjectInputStream.java:2617)
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2468)
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2268)
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1744)
	at java.base/java.io.ObjectInputStream$FieldValues.<init>(ObjectInputStream.java:2617)
	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2468)
	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2268)
	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1744)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:514)
	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:472)
	at org.scalatest.tools.Framework$ScalaTestRunner$Skeleton$1$React.react(Framework.scala:839)
	at org.scalatest.tools.Framework$ScalaTestRunner$Skeleton$1.run(Framework.scala:828)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.io.NotSerializableException: org.scalatest.Engine
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1197)
	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1582)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1539)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1448)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1191)
	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1582)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1539)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1448)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1191)
	at java.base/java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1391)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1187)
	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1582)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1539)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1448)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1191)
	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1582)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1539)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1448)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1191)
	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1582)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1539)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1448)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1191)
	at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1582)
	at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1539)
	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1448)
	at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1191)
	at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:354)
	at org.scalatest.tools.SocketReporter.apply(SocketReporter.scala:31)
	at org.scalatest.DispatchReporter$Propagator.$anonfun$run$10(DispatchReporter.scala:249)
	at org.scalatest.DispatchReporter$Propagator.$anonfun$run$10$adapted(DispatchReporter.scala:248)
	at scala.collection.immutable.List.foreach(List.scala:333)
	at org.scalatest.DispatchReporter$Propagator.run(DispatchReporter.scala:248)
	... 1 more

@cheeseng
Copy link
Contributor

@kamilkloch Hmm, I'll try to look into this now and see if I can find the cause.

@cheeseng
Copy link
Contributor

@kamilkloch Fyi I submitted a PR to fix this here:

#2159

@kamilkloch
Copy link
Author

When could we expect the next release with the patch merged?

@cheeseng
Copy link
Contributor

@kamilkloch Sorry I don't have a date yet, but it shouldn't be too far away. It would be good if we can include #2161 in the upcoming 3.2.14, I'll check with @bvenners .

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

No branches or pull requests

2 participants