X-CGP-ClamAV-Result: CLEAN X-VirusScanner: Niversoft's CGPClamav Helper v1.22.2a (ClamAV engine v0.102.2) X-Junk-Score: 0 [] X-KAS-Score: 0 [] From: "Markus Ruggiero (rucotec)" Received: from miniserver.rucotec.ch ([213.189.151.242] verified) by post.selbstdenker.com (CommuniGate Pro SMTP 6.3.3) with ESMTPS id 25614342 for webobjects-dev@wocommunity.org; Tue, 23 Mar 2021 11:12:40 +0100 Received-SPF: none receiver=post.selbstdenker.com; client-ip=213.189.151.242; envelope-from=markus.ruggiero@rucotec.ch Received: from localhost (localhost [127.0.0.1]) by miniserver.rucotec.ch (Postfix) with ESMTP id 71A9826B2E43 for ; Tue, 23 Mar 2021 11:12:19 +0100 (CET) Received: from miniserver.rucotec.ch ([127.0.0.1]) by localhost (miniserver.rucotec.ch [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VX9mgv4feuuV for ; Tue, 23 Mar 2021 11:12:18 +0100 (CET) Received: from [192.168.56.49] (unknown [192.168.56.49]) by miniserver.rucotec.ch (Postfix) with ESMTPSA id F17C126B2E31 for ; Tue, 23 Mar 2021 11:12:17 +0100 (CET) Content-Type: multipart/signed; boundary="Apple-Mail=_944F4303-D0E2-4229-B645-B25B64C1FC74"; protocol="application/pkcs7-signature"; micalg=sha-256 Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.4\)) Subject: Re: [WO-DEV] Uncatchable Exception somewhere in DirectAction/D2W Date: Tue, 23 Mar 2021 11:12:17 +0100 References: To: WebObjects & WOnder Development In-Reply-To: Message-Id: X-Mailer: Apple Mail (2.3608.120.23.2.4) --Apple-Mail=_944F4303-D0E2-4229-B645-B25B64C1FC74 Content-Type: multipart/alternative; boundary="Apple-Mail=_0F3EACE1-27AB-4937-BBD6-FF0021F04FE2" --Apple-Mail=_0F3EACE1-27AB-4937-BBD6-FF0021F04FE2 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Thanks, that helped. Don=E2=80=99t ask why I did not think of looking = into the sources myself (blush) By overriding the reportException() in my DirectAction class I can now = trap the exception.=20 /** * Let our application handle the error reporting.=20 *=20 * @param ex the exception thrown */ @Override public WOActionResults reportException(Exception ex) { Application application =3D (Application)Application.application(); WOContext context =3D context(); =09 return application.handleException(ex, context); =09 } > On 3 Mar 2021, at 20:02, Hugi Thordarson = wrote: >=20 > Hi Markus, > ERD2WDirectAction seems to be doing some really funky stuff to catch = and handle exceptions in performActionNamed(). > If there's no D2W involved you might want to consider inheriting from = ERXDirectAction instead. >=20 > = https://github.com/wocommunity/wonder/blob/e8ce291acc97e0c98738ad762fd00d9= c7da9e13c/Frameworks/Core/ERDirectToWeb/Sources/er/directtoweb/ERD2WDirect= Action.java#L444-L470 = >=20 > - hugi >=20 >=20 >=20 >> On 3 Mar 2021, at 14:41, Markus Ruggiero (rucotec) = > = wrote: >>=20 >> I have a direct action that crashes and I cannot catch the exception. = Why? >>=20 >> Scenario: >>=20 >> /** >> * dummy to demonstrate the issue >> */ >> public class DirectAction extends ERD2WDirectAction { >>=20 >> public WOActionResults crashAction() throws Exception { >> throw new Exception("Crash in DirectAction"); >> } >> } >>=20 >> Where can I catch this Exception? It does not trigger anything in = Application (which extends ERXApplication) >> Both handle...() methods do not respond. >>=20 >> @Override >> public WOResponse handleActionRequestError(WORequest aRequest, = Exception exception, String reason, >> WORequestHandler aHandler, String = actionClassName, String actionName, Class actionClass, >> WOAction actionInstance) { >> // TODO Auto-generated method stub >> return super.handleActionRequestError(aRequest, = exception, reason, aHandler, actionClassName, actionName, actionClass, >> actionInstance); >> } >>=20 >> @Override >> public WOResponse handleException(Exception anException, = WOContext aContext) >> { >> super.handleException(anException, aContext); >> ....... >>=20 >> The result of the crash is = er.directtoweb.pages.templates.ERD2WMessagePageTemplate being rendered = with my PageWrapper. >>=20 >> As there is (I assume) not much D2W involved here how do I trap this = error and handle it my way? What am I missing? >>=20 >> Thanks for any idea >> ---markus--- >>=20 >>=20 >> Markus Ruggiero >>=20 >> rucotec GmbH web https://rucotec.ch = >> Steinenvorstadt 79 email markus.ruggiero@rucotec.ch = >> 4051 Basel / Switzerland mobile +41 79 508 4701 >>=20 >>=20 >>=20 >>=20 >>=20 >>=20 >>=20 >>=20 >=20 Markus Ruggiero rucotec GmbH web https://rucotec.ch Steinenvorstadt 79 email markus.ruggiero@rucotec.ch 4051 Basel / Switzerland mobile +41 79 508 4701 --Apple-Mail=_0F3EACE1-27AB-4937-BBD6-FF0021F04FE2 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8 Thanks, that helped. Don=E2=80=99t ask why I did not = think of looking into the sources myself (blush)
By overriding the reportException() in my DirectAction class I can = now trap the exception. 

/**
 * = Let our application handle the error = reporting. 
 * 
 * @param ex the exception = thrown
 */
@Override
public WOActionResults reportException(Exception ex) = {
    = Application application =3D = (Application)Application.application();
    WOContext context = =3D context();    
  =   return application.handleException(ex, context);   =   =
}



On 3 Mar = 2021, at 20:02, Hugi Thordarson <webobjects-dev@wocommunity.org> wrote:

Hi Markus,
ERD2WDirectAction seems to be doing some really funky stuff = to catch and handle exceptions in performActionNamed().
If there's no D2W involved you might want to consider = inheriting from ERXDirectAction instead.


- hugi



On 3 Mar = 2021, at 14:41, Markus Ruggiero (rucotec) <webobjects-dev@wocommunity.org> wrote:

I have a direct action = that crashes and I cannot catch the exception. Why?

Scenario:

/**
 * dummy = to demonstrate the issue
 */
public class DirectAction extends ERD2WDirectAction = {

  =   public WOActionResults crashAction() throws&nbs= p;Exception {
     = throw new Exception("Crash in DirectAction");
    }
}

Where can I catch this Exception? It does not trigger = anything in Application (which extends ERXApplication)
Both handle...() methods do not respond.

= @Override
= public WOResponse handleActionRequestError(WORequest = ;aRequest, Exception exception, String reason,
= = WORequestHandler aHandler, String actionClassName,&n= bsp;String actionName, Class actionClass,
= WOAction actionInstance) {
= // TODO Auto-generated method stub
= return super.handleActionRequestError(aRequest, exception= , reason, aHandler, actionClassName, actionName, = actionClass,
= actionInstance);
}

=
@Override
= public WOResponse handleException(Exception anExcept= ion, WOContext aContext)
{
= super.handleException(anException, aContext);
        .......

The result of the crash is = er.directtoweb.pages.templates.ERD2WMessagePageTemplate being rendered = with my PageWrapper.

As there is (I assume) not much D2W involved here how do I = trap this error and handle it my way? What am I missing?

Thanks for any idea
---markus---


Markus = Ruggiero

rucotec GmbH              =           web https://rucotec.ch
Steinenvorstadt 79          =       email markus.ruggiero@rucotec.ch
4051 Basel / = Switzerland         mobile +41 79 508 4701











Markus = Ruggiero


rucotec GmbH              =           web https://rucotec.ch
Steinenvorstadt 79          =       email markus.ruggiero@rucotec.ch
4051 Basel / = Switzerland         mobile +41 79 508 4701








= --Apple-Mail=_0F3EACE1-27AB-4937-BBD6-FF0021F04FE2-- --Apple-Mail=_944F4303-D0E2-4229-B645-B25B64C1FC74 Content-Disposition: attachment; filename=smime.p7s Content-Type: application/pkcs7-signature; name=smime.p7s Content-Transfer-Encoding: base64 MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCCzkw ggUhMIIECaADAgECAhBDXz2PBS4rcSTMoUCPbeA+MA0GCSqGSIb3DQEBCwUAMIGWMQswCQYDVQQG EwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYD VQQKEw9TZWN0aWdvIExpbWl0ZWQxPjA8BgNVBAMTNVNlY3RpZ28gUlNBIENsaWVudCBBdXRoZW50 aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBMB4XDTE5MDUyMjAwMDAwMFoXDTIyMDUyMTIzNTk1 OVowKzEpMCcGCSqGSIb3DQEJARYabWFya3VzLnJ1Z2dpZXJvQHJ1Y290ZWMuY2gwggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIAEK8S00IWrMmIpBkw5CcIS9RfaNGWyJOxskmtuYoHWE4 +QYfOO5tlWt4O5F6bTYsRWp1PpLirrdLhQoYIFp0P5Mi0nsBjNVP0zR0jNpDZreNcLcP7wmuIkUY C0fzxFgnRieFFgaXFm5yf46rqAJMVry/uR/KqwvY1d2F2gOb4DmntPp7TJtDsVyWQDtB82Uep+EO 9j71phQuMUb5TyA4aOdSb6UfCev1RgEw8vXrTdf+1rLzRZvIR1syfsqcLVmIO9WSl9mTH7IlZQhx SmTLqSTvTLssRGprVK8dhJl0nDvFuKknUGNxwCwON1ojJdZPgUJi1K+VvkCqDlI61czNAgMBAAGj ggHTMIIBzzAfBgNVHSMEGDAWgBQJwPL8C9qU21/+K9+omULPyeCtADAdBgNVHQ4EFgQUFRQz2DQf fM2xz9tI/Gy05p6XXc0wDgYDVR0PAQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAwHQYDVR0lBBYwFAYI KwYBBQUHAwQGCCsGAQUFBwMCMEAGA1UdIAQ5MDcwNQYMKwYBBAGyMQECAQEBMCUwIwYIKwYBBQUH AgEWF2h0dHBzOi8vc2VjdGlnby5jb20vQ1BTMFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwu c2VjdGlnby5jb20vU2VjdGlnb1JTQUNsaWVudEF1dGhlbnRpY2F0aW9uYW5kU2VjdXJlRW1haWxD QS5jcmwwgYoGCCsGAQUFBwEBBH4wfDBVBggrBgEFBQcwAoZJaHR0cDovL2NydC5zZWN0aWdvLmNv bS9TZWN0aWdvUlNBQ2xpZW50QXV0aGVudGljYXRpb25hbmRTZWN1cmVFbWFpbENBLmNydDAjBggr BgEFBQcwAYYXaHR0cDovL29jc3Auc2VjdGlnby5jb20wJQYDVR0RBB4wHIEabWFya3VzLnJ1Z2dp ZXJvQHJ1Y290ZWMuY2gwDQYJKoZIhvcNAQELBQADggEBACeso6Iombd/K2MXqk+u5cFNAi3kNRv5 t1WMA2YodqQxz/i/H9OxagG8Ukk5IcHgrikpy0dlOgJ9nOGEWJYrzZbLWZCMd7I8NQpT28vnkgKM 51tzAARg7mHu+SPKwvnDfYB8CFNSQ+Wlkq8wJHL9ALuTeGCRdnRmNtit8o/sRV25KoH6+0U2k08U TO5J+bzVendvcfygdf3bPp3+imRIlXJihwb2fg6OOMqVCnUFHKrdJULZ+SWSWNclriu5GbM1pKql d5dIrApf9M9b9XbY89XgHdFHA5bx7taL1Ie1msC23llmUVSYTHjNOqNrprgfKXvao1taAQvpDhzx BQXzO6YwggYQMIID+KADAgECAhBNlCwQ1DvglAnFgS06KwZPMA0GCSqGSIb3DQEBDAUAMIGIMQsw CQYDVQQGEwJVUzETMBEGA1UECBMKTmV3IEplcnNleTEUMBIGA1UEBxMLSmVyc2V5IENpdHkxHjAc BgNVBAoTFVRoZSBVU0VSVFJVU1QgTmV0d29yazEuMCwGA1UEAxMlVVNFUlRydXN0IFJTQSBDZXJ0 aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xODExMDIwMDAwMDBaFw0zMDEyMzEyMzU5NTlaMIGWMQsw CQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3Jk MRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxPjA8BgNVBAMTNVNlY3RpZ28gUlNBIENsaWVudCBB dXRoZW50aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A MIIBCgKCAQEAyjztlApB/975Rrno1jvm2pK/KxBOqhq8gr2+JhwpKirSzZxQgT9tlC7zl6hn1fXj So5MqXUfItMltrMaXqcESJuK8dtK56NCSrq4iDKaKq9NxOXFmqXX2zN8HHGjQ2b2Xv0v1L5Nk1MQ PKA19xeWQcpGEGFUUd0kN+oHox+L9aV1rjfNiCj3bJk6kJaOPabPi2503nn/ITX5e8WfPnGw4VuZ 79Khj1YBrf24k5Ee1sLTHsLtpiK9OjG4iQRBdq6Z/TlVx/hGAez5h36bBJMxqdHLpdwIUkTqT8se 3ed0PewDch/8kHPo5fZl5u1B0ecpq/sDN/5sCG52Ds+QU5O5EwIDAQABo4IBZDCCAWAwHwYDVR0j BBgwFoAUU3m/WqorSs9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFAnA8vwL2pTbX/4r36iZQs/J4K0A MA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdJQQWMBQGCCsGAQUFBwMC BggrBgEFBQcDBDARBgNVHSAECjAIMAYGBFUdIAAwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2Ny bC51c2VydHJ1c3QuY29tL1VTRVJUcnVzdFJTQUNlcnRpZmljYXRpb25BdXRob3JpdHkuY3JsMHYG CCsGAQUFBwEBBGowaDA/BggrBgEFBQcwAoYzaHR0cDovL2NydC51c2VydHJ1c3QuY29tL1VTRVJU cnVzdFJTQUFkZFRydXN0Q0EuY3J0MCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC51c2VydHJ1c3Qu Y29tMA0GCSqGSIb3DQEBDAUAA4ICAQBBRHUAqznCFfXejpVtMnFojADdF9d6HBA4kMjjsb0XMZHz tuOCtKF+xswhh2GqkW5JQrM8zVlU+A2VP72Ky2nlRA1GwmIPgou74TZ/XTarHG8zdMSgaDrkVYzz 1g3nIVO9IHk96VwsacIvBF8JfqIs+8aWH2PfSUrNxP6Ys7U0sZYx4rXD6+cqFq/ZW5BUfClN/rhk 2ddQXyn7kkmka2RQb9d90nmNHdgKrwfQ49mQ2hWQNDkJJIXwKjYA6VUR/fZUFeCUisdDe/0ABLTI +jheXUV1eoYV7lNwNBKpeHdNuO6Aacb533JlfeUHxvBz9OfYWUiXu09sMAviM11Q0DuMZ5760CdO 2VnpsXP4KxaYIhvqPqUMWqRdWyn7crItNkZeroXaecG03i3mM7dkiPaCkgocBg0EBYsbZDZ8bsG3 a08LwEsL1Ygz3SBsyECa0waq4hOf/Z85F2w2ZpXfP+w8q4ifwO90SGZZV+HR/Jh6rEaVPDRF/CEG VqR1hiuQOZ1YL5ezMTX0ZSLwrymUE0pwi/KDaiYB15uswgeIAcA6JzPFf9pLkAFFWs1QNyN++niF hsM47qodx/PL+5jR87myx5uYdBEQkkDc+lKB1Wct6ucXqm2EmsaQ0M95QjTmy+rDWjkDYdw3Ms6m SWE3Bn7i5ZgtwCLXgAIe5W8mybM2JzGCA8QwggPAAgEBMIGrMIGWMQswCQYDVQQGEwJHQjEbMBkG A1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYDVQQKEw9TZWN0 aWdvIExpbWl0ZWQxPjA8BgNVBAMTNVNlY3RpZ28gUlNBIENsaWVudCBBdXRoZW50aWNhdGlvbiBh bmQgU2VjdXJlIEVtYWlsIENBAhBDXz2PBS4rcSTMoUCPbeA+MA0GCWCGSAFlAwQCAQUAoIIB6TAY BgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0yMTAzMjMxMDEyMTdaMC8G CSqGSIb3DQEJBDEiBCApe6wSbJaBJwevoDc2SDOxObejFp4mdshGVtWAb0EiqTCBvAYJKwYBBAGC NxAEMYGuMIGrMIGWMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAw DgYDVQQHEwdTYWxmb3JkMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxPjA8BgNVBAMTNVNlY3Rp Z28gUlNBIENsaWVudCBBdXRoZW50aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBAhBDXz2PBS4r cSTMoUCPbeA+MIG+BgsqhkiG9w0BCRACCzGBrqCBqzCBljELMAkGA1UEBhMCR0IxGzAZBgNVBAgT EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEYMBYGA1UEChMPU2VjdGlnbyBM aW1pdGVkMT4wPAYDVQQDEzVTZWN0aWdvIFJTQSBDbGllbnQgQXV0aGVudGljYXRpb24gYW5kIFNl Y3VyZSBFbWFpbCBDQQIQQ189jwUuK3EkzKFAj23gPjANBgkqhkiG9w0BAQEFAASCAQBRr/nXulih SWSxZdxjplchqtu7XsmeeECxuryaYhACIirB2Xhd9Hw5dQx/ljNK9mI4h2hwSGK/W5Tmf0sy7tHO srqELOHTlKT6fcGM36yuJbZVr+SpvVArXRWTolyoLKgFLPJGD4AP33i8yrGh5vzHWraQV5xiEiMw HQcb7YVXPBBQ2oZihjXSwdVdnI635d/lXlFfef/ge2UejUF0ooi9+ov72sYVGAowFzo0lrhRGuxZ uC4EUOyF/gT8A3/ZGuQJBG/NDfdnjKY2UPP2ufL2pyhepXaHqs7NZxhF+Ng5rgzA/eNVvPEbKZn+ mM2OY3bsjOf+f6g/K/2LaQNxeJRrAAAAAAAA --Apple-Mail=_944F4303-D0E2-4229-B645-B25B64C1FC74--