in kernel/src/main/scala/org/apache/toree/kernel/protocol/v5/handler/ShutdownHandler.scala [41:69]
override def process(kernelMessage: KernelMessage): Future[_] = Future {
logKernelMessageAction("Initiating Shutdown request for", kernelMessage)
val kernelInfo = SparkKernelInfo
val shutdownReply = ShutdownReply(false)
val replyHeader = Header(
java.util.UUID.randomUUID.toString,
"",
java.util.UUID.randomUUID.toString,
ShutdownReply.toTypeString,
kernelInfo.protocolVersion)
val kernelResponseMessage = KMBuilder()
.withIds(kernelMessage.ids)
.withSignature("")
.withHeader(replyHeader)
.withParent(kernelMessage)
.withContentString(shutdownReply).build
logger.debug("Attempting graceful shutdown.")
actorLoader.load(SystemActorType.KernelMessageRelay) ! kernelResponseMessage
// Instruct security manager that exit should be allowed
KernelSecurityManager.enableRestrictedExit()
System.exit(0)
}