Skip to content

Commit bd076b2

Browse files
fix: Do not evaluate isClassArityUsageDisabled on every serialize/des… (#157)
* fix: Do not evaluate isClassArityUsageDisabled on every serialize/deserialize function call * chore: Move isClassArityUsageDisabled to object
1 parent 7721dd4 commit bd076b2

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

modules/scala-api/src/main/scala/org/apache/flinkx/api/serializer/CaseClassSerializer.scala

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import org.apache.flink.api.common.typeutils.TypeSerializer
2222
import org.apache.flink.api.java.typeutils.runtime.TupleSerializerBase
2323
import org.apache.flink.core.memory.{DataInputView, DataOutputView}
2424
import org.apache.flink.types.NullFieldException
25+
import org.apache.flinkx.api.serializer.CaseClassSerializer.isClassArityUsageDisabled
2526
import org.slf4j.{Logger, LoggerFactory}
2627

2728
import scala.util.{Failure, Success, Try}
@@ -77,14 +78,6 @@ abstract class CaseClassSerializer[T <: Product](
7778
createInstance(fields.toArray)
7879
}
7980

80-
private def isClassArityUsageDisabled =
81-
sys.env
82-
.get("DISABLE_CASE_CLASS_ARITY_USAGE")
83-
.exists(v =>
84-
Try(v.toBoolean)
85-
.getOrElse(false)
86-
)
87-
8881
def serialize(value: T, target: DataOutputView): Unit = {
8982
if (arity > 0 && !isClassArityUsageDisabled)
9083
target.writeInt(value.productArity)
@@ -124,3 +117,13 @@ abstract class CaseClassSerializer[T <: Product](
124117
createInstance(fields.filter(_ != null))
125118
}
126119
}
120+
121+
object CaseClassSerializer {
122+
private val isClassArityUsageDisabled =
123+
sys.env
124+
.get("DISABLE_CASE_CLASS_ARITY_USAGE")
125+
.exists(v =>
126+
Try(v.toBoolean)
127+
.getOrElse(false)
128+
)
129+
}

0 commit comments

Comments
 (0)