Return-Path: Delivered-To: apmail-ws-axis-dev-archive@www.apache.org Received: (qmail 61730 invoked from network); 27 Mar 2008 12:13:45 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 27 Mar 2008 12:13:45 -0000 Received: (qmail 61685 invoked by uid 500); 27 Mar 2008 12:13:44 -0000 Delivered-To: apmail-ws-axis-dev-archive@ws.apache.org Received: (qmail 61086 invoked by uid 500); 27 Mar 2008 12:13:42 -0000 Mailing-List: contact axis-dev-help@ws.apache.org; run by ezmlm Precedence: bulk Reply-To: axis-dev@ws.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list axis-dev@ws.apache.org Received: (qmail 61074 invoked by uid 99); 27 Mar 2008 12:13:42 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 27 Mar 2008 05:13:42 -0700 X-ASF-Spam-Status: No, hits=2.0 required=10.0 tests=HTML_MESSAGE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of mish0.nac@googlemail.com designates 209.85.200.171 as permitted sender) Received: from [209.85.200.171] (HELO wf-out-1314.google.com) (209.85.200.171) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 27 Mar 2008 12:13:02 +0000 Received: by wf-out-1314.google.com with SMTP id 28so3266977wff.28 for ; Thu, 27 Mar 2008 05:13:14 -0700 (PDT) Received: by 10.142.101.17 with SMTP id y17mr1021479wfb.54.1206619994148; Thu, 27 Mar 2008 05:13:14 -0700 (PDT) Received: by 10.143.162.15 with HTTP; Thu, 27 Mar 2008 05:13:14 -0700 (PDT) Message-ID: <79e17c220803270513r66b8d63blb35efe24ed70748f@mail.gmail.com> Date: Thu, 27 Mar 2008 14:13:14 +0200 From: "Misho Gradinkata" To: axis-dev@ws.apache.org Subject: Fwd: [Axis2] wrong JAX-WS handler-chain execution In-Reply-To: <79e17c220803270504m9228742q1e1e0d2667234d94@mail.gmail.com> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_12911_25066165.1206619994141" References: <79e17c220803270504m9228742q1e1e0d2667234d94@mail.gmail.com> X-Virus-Checked: Checked by ClamAV on apache.org ------=_Part_12911_25066165.1206619994141 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi all, I'm testing Axis2-1.4/RC2 and its JAX-WS handler framework implementation. I noticed some unconformities with the JAX-WS specification: I have a handler chain with Handler1, Handler2, Handler3 and Handler4. The four of them have handleMessage(), handleFault() and close() methods as well as init() and destroy() methods annotated with @PostConstruct and @PreDestroy respectively. When a message arrives init() is executed on all handlers, then on the inbound direction Handler3's handleMessage() method throws a ProtocolException -> then the chain is reverted and handleFault() is invoked on Handler2 and Handler1, then close() on Handler 1, 2 and 3. As far as I understand from the JAX-WS 2.0 specification this is the expected behavior. So here I expect all @PreDestroy methods to be executed and that's all for the handler-chain. BUT instead I can see that an outbound execution starts (with OUTBOUND_PROPERTY = true) and handleFault() is called (again) on all four handlers from 4 to 1, then close() on all handlers (again) and at the end destroy() on all handlers. I guess that somewhere you miss to check for errors on the inbound chain execution and a complete outbound chain is executed no matter what happened on the inbound direction. I think it is important to fix this. Thanks. Regards, Misho ------=_Part_12911_25066165.1206619994141 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline

Hi all,

I'm testing Axis2-1.4/RC2= and its JAX-WS handler framework implementation. I noticed some unconformi= ties with the JAX-WS specification:

I have a handler chain with Hand= ler1, Handler2, Handler3 and Handler4. The four of them have handleMessage(= ), handleFault() and close() methods as well as init() and destroy() method= s annotated with @PostConstruct and @PreDestroy respectively. When a messag= e arrives init() is executed on all handlers, then on the inbound direction= Handler3's handleMessage() method throws a ProtocolException -> the= n the chain is reverted and handleFault() is invoked on Handler2 and Handle= r1, then close() on Handler 1, 2 and 3. As far as I understand from the JAX= -WS 2.0 specification this is the expected behavior. So here I expect all @= PreDestroy methods to be executed and that's all for the handler-chain.= BUT instead I can see that an outbound execution starts (with OUTBOUND_PRO= PERTY =3D true) and handleFault() is called (again) on all four handlers fr= om 4 to 1, then close() on all handlers (again) and at the end destroy() on= all handlers.

I guess that somewhere you miss to check for errors on the inbound chai= n execution and a complete outbound chain is executed no matter what happen= ed on the inbound direction. I think it is important to fix this.
Thanks= .

Regards,
Misho

------=_Part_12911_25066165.1206619994141--