[Javalist] Exception elkapása

Vig, Balázs balazs.vig at datasolutions.hu
2012. Aug. 30., Cs, 14:01:06 CEST


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)
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://lists.javaforum.hu/pipermail/javalist/attachments/20120830/8cb78010/attachment.html>


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