[KYUUBI #4836] Set UncaughtExceptionHandler for thread to log exception
### _Why are the changes needed?_ To provide more insight, if there is uncaught exception. ### _How was this patch tested?_ - [ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible - [ ] Add screenshots for manual tests if appropriate - [x] [Run test](https://kyuubi.readthedocs.io/en/master/develop_tools/testing.html#running-tests) locally before make a pull request Closes #4836 from turboFei/handler_exception. Closes #4836 b9d304fb8 [fwang12] comment 3819447a6 [fwang12] un caughtt Authored-by: fwang12 <fwang12@ebay.com> Signed-off-by: fwang12 <fwang12@ebay.com>
This commit is contained in:
parent
e8db3da440
commit
61fcffb7d0
@ -0,0 +1,28 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.kyuubi.util
|
||||
|
||||
import java.lang.Thread.UncaughtExceptionHandler
|
||||
|
||||
import org.apache.kyuubi.Logging
|
||||
|
||||
class KyuubiUncaughtExceptionHandler extends UncaughtExceptionHandler with Logging {
|
||||
override def uncaughtException(t: Thread, e: Throwable): Unit = {
|
||||
error(s"Uncaught exception in thread ${t.getName}", e)
|
||||
}
|
||||
}
|
||||
@ -20,10 +20,17 @@ package org.apache.kyuubi.util
|
||||
import java.util.concurrent.ThreadFactory
|
||||
|
||||
class NamedThreadFactory(name: String, daemon: Boolean) extends ThreadFactory {
|
||||
import NamedThreadFactory._
|
||||
|
||||
override def newThread(r: Runnable): Thread = {
|
||||
val t = new Thread(r)
|
||||
t.setName(name + ": Thread-" + t.getId)
|
||||
t.setDaemon(daemon)
|
||||
t.setUncaughtExceptionHandler(kyuubiUncaughtExceptionHandler)
|
||||
t
|
||||
}
|
||||
}
|
||||
|
||||
object NamedThreadFactory {
|
||||
private val kyuubiUncaughtExceptionHandler = new KyuubiUncaughtExceptionHandler
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user