[Javalist] Exception elkapása

Richard O. Legendi richard.legendi at gmail.com
2012. Aug. 30., Cs, 14:56:17 CEST


Valami sunyiság lesz itt a háttérben, ha csak feldobsz egy modális 
JDialog-ot, akkor el kéne tudnod kapni a kivételt.

Ez a "duplaklikkre megnyílik az ablak" kicsit nem tiszta, tudnál egy 
minimál kódot mutatni?

Esetleg az uncaughtExceptionHandler 
<http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Thread.html#setUncaughtExceptionHandler%28java.lang.Thread.UncaughtExceptionHandler%29> 
segíthet, de nem vagyok biztos benne, hogy ezt keresed.

Ricsi

On 2012.08.30. 14:01, Vig, Balázs wrote:
> Sziasztok!
>
> Egy érdekességbe futottam bele:
> Van egy hibernate alapú Swing alkalmazásom. Ha jól olvastam, akkor 
> bármilyen hibernate hiba esetén a sessiont le kell zárnom, és újat 
> kell nyitnom. Ezt szeretném megoldani minél kevesebb fájdalommal. A 
> hibák a runtimeexception leszármazott hibernateexception 
> leszármazottjai formájában indulnak útjukra.
>
> Szóval van egy fő formom, ahonnan egy dupla klikk segítségével egy 
> modális dialogra jutok. Ott egy gomb megnyomására szeretnék bekérni 
> egy listát, aminek során egy hibát ejtettem.
>
> A hibát el tudom kapni a lista lekérését végző eljárásban, valamint az 
> eljárás hívásakor a modális dialogban.
> Viszont nem tudom elkapni a fő formon: catch(Exception e)
>
> Eddig úgy tudtam, hogy a modális dialógok a hívó threadon belül 
> futnak, és ezt látszik megerősíteni a stack trace is: szerepel benne a 
> fő formon szereplő egérkezelő.  Tehát véleményem szerint az 
> exceptionnak odáig vissza kellene csorognia, és ott el kellene kapnom.
>
> Hol a hiba az érvelésben? Miért nem tudom a fő formon elkapni az 
> exceptiont?
>
> Üdv:
> *VigB*
>
> ui: A fontosabb részeket megjelöltem -->
>
> ----------- 8< ------------
> Exception in thread "AWT-EventQueue-0" 
> org.hibernate.hql.internal.ast.QuerySyntaxException: DsrProceddures is 
> not mapped [from DsrProceddures order by PROC_NAME]
>     at 
> org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:180)
>     at 
> org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:110)
>     at 
> org.hibernate.hql.internal.ast.tree.FromClause.addFromElement(FromClause.java:93)
>     at 
> org.hibernate.hql.internal.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:324)
>     at 
> org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3291)
>     at 
> org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:3180)
>     at 
> org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:706)
>     at 
> org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:562)
>     at 
> org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:299)
>     at 
> org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:247)
>     at 
> org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:248)
>     at 
> org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:183)
>     at 
> org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
>     at 
> org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:105)
>     at 
> org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
>     at 
> org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:168)
>     at 
> org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:219)
>     at 
> org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:197)
>     at 
> org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1736)
> --> hibás eljárás --->    at 
> dsr_framework.Helper.getAllProcedures(Helper.java:269)
> --> még itt is elkapható -->    at 
> dsr_framework.nodeeditor.NodeEditorDialog.btnNewProcActionPerformed(NodeEditorDialog.java:375)
>     at 
> dsr_framework.nodeeditor.NodeEditorDialog.access$300(NodeEditorDialog.java:23)
>     at 
> dsr_framework.nodeeditor.NodeEditorDialog$4.actionPerformed(NodeEditorDialog.java:117)
>     at 
> javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
>     at 
> javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
>     at 
> javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
>     at 
> javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
>     at 
> javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
>     at java.awt.Component.processMouseEvent(Component.java:6505)
>     at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
>     at java.awt.Component.processEvent(Component.java:6270)
>     at java.awt.Container.processEvent(Container.java:2229)
>     at java.awt.Component.dispatchEventImpl(Component.java:4861)
>     at java.awt.Container.dispatchEventImpl(Container.java:2287)
>     at java.awt.Component.dispatchEvent(Component.java:4687)
>     at 
> java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
>     at 
> java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
>     at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
>     at java.awt.Container.dispatchEventImpl(Container.java:2273)
>     at java.awt.Window.dispatchEventImpl(Window.java:2719)
>     at java.awt.Component.dispatchEvent(Component.java:4687)
>     at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:703)
>     at java.awt.EventQueue.access$000(EventQueue.java:102)
>     at java.awt.EventQueue$3.run(EventQueue.java:662)
>     at java.awt.EventQueue$3.run(EventQueue.java:660)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at 
> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
>     at 
> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
>     at java.awt.EventQueue$4.run(EventQueue.java:676)
>     at java.awt.EventQueue$4.run(EventQueue.java:674)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at 
> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
>     at java.awt.EventQueue.dispatchEvent(EventQueue.java:673)
>     at 
> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
>     at 
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
>     at 
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:155)
>     at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
>     at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
>     at java.awt.Dialog.show(Dialog.java:1072)
>     at java.awt.Component.show(Component.java:1651)
>     at java.awt.Component.setVisible(Component.java:1603)
>     at java.awt.Window.setVisible(Window.java:1014)
>     at java.awt.Dialog.setVisible(Dialog.java:1003)
> --> itt lesz létrehozva a modal dialog -->    at 
> dsr_framework.NodeTreeNode.performActionEvent(NodeTreeNode.java:58)
> --> fő form -->    at 
> dsr_framework.DSR_Frame$PopupListener.mouseClicked(DSR_Frame.java:307)
>     at 
> java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270)
>     at java.awt.Component.processMouseEvent(Component.java:6508)
>     at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
>     at java.awt.Component.processEvent(Component.java:6270)
>     at java.awt.Container.processEvent(Container.java:2229)
>     at java.awt.Component.dispatchEventImpl(Component.java:4861)
>     at java.awt.Container.dispatchEventImpl(Container.java:2287)
>     at java.awt.Component.dispatchEvent(Component.java:4687)
>     at 
> java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
>     at 
> java.awt.LightweightDispatcher.processMouseEvent(Container.java:4501)
>     at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
>     at java.awt.Container.dispatchEventImpl(Container.java:2273)
>     at java.awt.Window.dispatchEventImpl(Window.java:2719)
>     at java.awt.Component.dispatchEvent(Component.java:4687)
>     at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:703)
>     at java.awt.EventQueue.access$000(EventQueue.java:102)
>     at java.awt.EventQueue$3.run(EventQueue.java:662)
>     at java.awt.EventQueue$3.run(EventQueue.java:660)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at 
> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
>     at 
> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
>     at java.awt.EventQueue$4.run(EventQueue.java:676)
>     at java.awt.EventQueue$4.run(EventQueue.java:674)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at 
> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
>     at java.awt.EventQueue.dispatchEvent(EventQueue.java:673)
>     at 
> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
>     at 
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
>     at 
> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
>     at 
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
>     at 
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
>     at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
>
>
> _______________________________________________
> Javalist mailing list
> Javalist at lists.javaforum.hu
> http://lists.javaforum.hu/mailman/listinfo/javalist

--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://lists.javaforum.hu/pipermail/javalist/attachments/20120830/c24e4b0a/attachment.html>


További információk a(z) Javalist levelezőlistáról