Skip to content

Commit e7bdaf5

Browse files
committed
Scala 3.8+ requires us to make an underlying field in a Scala 2 Enumeration class accessible (#800)
* Scala 3.8+ requires us to make an underlying field in a Scala 2 Enumeration class accessible * Update EnumerationSerializerModule.scala * Update EnumerationSerializerModule.scala
1 parent 2c1df8b commit e7bdaf5

1 file changed

Lines changed: 2 additions & 0 deletions

File tree

src/main/scala/com/fasterxml/jackson/module/scala/ser/EnumerationSerializerModule.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ private class EnumerationSerializer extends JsonSerializer[scala.Enumeration#Val
2424
override def serialize(value: scala.Enumeration#Value, jgen: JsonGenerator, provider: SerializerProvider) = {
2525
val parentEnum = value.asInstanceOf[AnyRef].getClass.getSuperclass.getDeclaredFields.find( f => f.getName == "$outer" )
2626
.getOrElse(throw new RuntimeException("failed to find $outer field on Enumeration class"))
27+
// setAccessible is needed for Scala 3.8+ (https://github.com/FasterXML/jackson-module-scala/issues/795)
28+
parentEnum.setAccessible(true)
2729
val enumClass = parentEnum.get(value).getClass.getName stripSuffix "$"
2830
jgen.writeStartObject()
2931
jgen.writeStringField("enumClass", enumClass)

0 commit comments

Comments
 (0)