swing uncaughtexceptionhandler

Eu estou tentando construir um manipulador de exceção geral para um aplicativo swing como descrito aqui:http://www.javaspecialists.eu/archive/Issue081.html

Eu trabalho no jython (sintaxe python sendo compilado para java e executado). Meu código parece mais ou menos assimAtualizada):

def launcher(func):
    class launcherThread(Runnable):
        def __init__(self):
            super(launcherThread, self).__init__()

        def run(self):
            func()

    #trying to get the name which can be used to instantiate this in java
    cls = ExceptionGroup().getClass()
    fullName = cls.__module__ + '.' + cls.__name__

    System.setProperty("sun.awt.exception.handler", fullName)
    Thread(ExceptionGroup(), launcherThread(), 'Cross ExceptionHandlerThread').start()

class ExceptionGroup(ThreadGroup):
    def __init__(self):
         super(ExceptionGroup, self).__init__("HardenedGroup")

    def uncaughtException(self, thread, exception):
        #make a fancy dialog displaying str(exception)

Se eu testá-lo, funciona bem, no entanto, no ambiente de produção, ele falha. Para testar o lançamento do meu programa no Eclipse (PyDev), o ambiente de produção é um aplicativo de terceiros escrito em Java, que possui um console Jython embutido. O aplicativo suporta a adição de entradas de menu personalizadas e a inclusão de scripts jython.

A principal diferença que vejo entre o ambiente de teste e produção é que, no ambiente de produção, os fios de giro já são iniciados (o aplicativo de terceiros utiliza o swing). Isso faz com que o meuThreadGroup configuração para falhar, ou há outra razão pela qual isso não está funcionando?

Como posso obter os threads envolvidos (exceções são lançadas como resultado de buttonActions) para verificar seus manipuladores defaultException? Se (como eu tenho medo), deve ser que o terceiro tenha instalado seu próprio manipulador (todas as exceções são gravadas em um arquivo de log) como posso criar um novo thread de trabalho do swing? (Eu não quero pegar as exceções criadas pelo aplicativo host depois de tudo)

Recapitulação da pergunta: 1. Como posso verificar quais encadeamentos foram iniciados para a funçãofunc passou para olauncher função e ver o manipulador de exceção não capturado? 2. Posso impor um despachante de swing separado para minha parte de gui e as principais aplicações de parte gui? (Se eu exitOnClos em um quadro do meu add in, o aplicativo de terceiros fecha)?

Atualizar: Considerando a resposta delbalazscs Eu estou tentando usar osun.awt.exception.handler propriedade, mas não tem efeito, as exceções ainda acabam no arquivo de log (comportamento dfeault de aplicativos). Estou usando certo? (p. eu estou no Java 1.6)

questionAnswers(1)

yourAnswerToTheQuestion