@@ -94,21 +94,25 @@ class ScalaVerticleFactory extends VerticleFactory {
94
94
val interpreter = new ScalaInterpreter (
95
95
settings.get, vertx, container, new LogPrintWriter (logger))
96
96
97
- runAsScript(main, interpreter).recoverWith { case _ =>
98
- // Recover by trying to compile it as a Scala class
99
- logger.info(s " Script contains compilation errors, or $main is a Scala class (pass -Dvertx.scala.interpreter.verbose=true to find out more) " )
100
- logger.info(s " Compiling as a Scala class " )
101
-
102
- val className = extractClassName(main)
103
- val classFile = getClassFile(main)
104
-
105
- for {
106
- classLoader <- interpreter.compileClass(classFile)
107
- verticle <- newVerticleInstance(className, classLoader)
108
- } yield {
109
- logger.info(s " Starting $className" )
110
- verticle
97
+ try {
98
+ runAsScript(main, interpreter).recoverWith { case _ =>
99
+ // Recover by trying to compile it as a Scala class
100
+ logger.info(s " Script contains compilation errors, or $main is a Scala class (pass -Dvertx.scala.interpreter.verbose=true to find out more) " )
101
+ logger.info(s " Compiling as a Scala class " )
102
+
103
+ val className = extractClassName(main)
104
+ val classFile = getClassFile(main)
105
+
106
+ for {
107
+ classLoader <- interpreter.compileClass(classFile)
108
+ verticle <- newVerticleInstance(className, classLoader)
109
+ } yield {
110
+ logger.info(s " Starting $className" )
111
+ verticle
112
+ }
111
113
}
114
+ } finally {
115
+ interpreter.close()
112
116
}
113
117
}
114
118
0 commit comments