From 740eba42f717463d010ed780801fd0f05ac83510 Mon Sep 17 00:00:00 2001 From: Yun Ni Date: Sat, 6 Jan 2018 14:07:37 -0800 Subject: [PATCH] [jvm-packages] Add back the overriden finalize() method for SBooster (#3011) * Convert SIGSEGV to XGBoostError * Address CR Comments * Address CR Comments --- .../main/scala/ml/dmlc/xgboost4j/scala/Booster.scala | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/Booster.scala b/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/Booster.scala index a82294974..5b74fb247 100644 --- a/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/Booster.scala +++ b/jvm-packages/xgboost4j/src/main/scala/ml/dmlc/xgboost4j/scala/Booster.scala @@ -23,6 +23,12 @@ import ml.dmlc.xgboost4j.java.XGBoostError import scala.collection.JavaConverters._ import scala.collection.mutable +/** + * Booster for xgboost, this is a model API that support interactive build of a XGBoost Model + * + * DEVELOPER WARNING: A Java Booster must not be shared by more than one Scala Booster + * @param booster the java booster object. + */ class Booster private[xgboost4j](private[xgboost4j] var booster: JBooster) extends Serializable with KryoSerializable { @@ -202,6 +208,11 @@ class Booster private[xgboost4j](private[xgboost4j] var booster: JBooster) booster.dispose() } + override def finalize(): Unit = { + super.finalize() + dispose + } + override def write(kryo: Kryo, output: Output): Unit = { kryo.writeObject(output, booster) }