Return-Path: X-Original-To: apmail-geronimo-dev-archive@www.apache.org Delivered-To: apmail-geronimo-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 1A26E4881 for ; Mon, 6 Jun 2011 13:21:12 +0000 (UTC) Received: (qmail 26015 invoked by uid 500); 6 Jun 2011 13:21:11 -0000 Delivered-To: apmail-geronimo-dev-archive@geronimo.apache.org Received: (qmail 25967 invoked by uid 500); 6 Jun 2011 13:21:11 -0000 Mailing-List: contact dev-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list dev@geronimo.apache.org Delivered-To: moderator for dev@geronimo.apache.org Received: (qmail 21481 invoked by uid 99); 6 Jun 2011 11:36:51 -0000 X-ASF-Spam-Status: No, hits=0.0 required=5.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,RFC_ABUSE_POST,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of timothyjward@hotmail.com designates 65.55.116.80 as permitted sender) Message-ID: X-Originating-IP: [195.212.29.67] From: Timothy Ward Sender: To: CC: , Subject: RE: Yet another proxy/weaving problem Date: Mon, 6 Jun 2011 12:36:21 +0100 Importance: Normal In-Reply-To: <03A4D5C4-F3E2-42D7-8498-9FF4FD57ECD0@yahoo.com> References: ,<03A4D5C4-F3E2-42D7-8498-9FF4FD57ECD0@yahoo.com> Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginalArrivalTime: 06 Jun 2011 11:36:21.0309 (UTC) FILETIME=[F53F8ED0:01CC243D] X-Virus-Checked: Checked by ClamAV on apache.org Sorry=2C Aparently I responded on the wrong fork of this message list >From June 2nd=20 ---------------------- I would like to quickly point out that the method java.lang.reflect.Method#= isSynthetic() gives you access to the synthetic flag in a very easy way.=20 =20 My understanding from JIT implementors has always been that final is a good= thing for performance. I also like the additional safety it adds to the pr= oxy code=2C preventing us accidentally overriding our own implementations. =20 I do think overriding synthetic methods when proxying is a reasonably bad i= dea=2C similarly for bridge methods=2C which I imagine are also overridden.= Intercepting these calls gives the wrong behaviour unless you are extremel= y careful. Obviously I'm not part of the OWB discussion=2C and they may be = making valid points. For clarity we avoid weaving/overriding synthetic=2C s= tatic=2C private=2C bridge=2C abstract or native modified methods in Aries = code. =20 I assume removing the final modifier from the proxy weaving code also fixes= the issue? =20 Regards=2C =20 Tim ---------------- Tim ---------------------------------------- > Subject: Re: Yet another proxy/weaving problem > From: david_jencks@yahoo.com > Date: Sat=2C 4 Jun 2011 09:02:57 -0700 > CC: dev@openwebbeans.apache.org=3B dev@geronimo.apache.org > To: dev@aries.apache.org > > I've now found another place where the added WovenProxy interface breaks = OpenWebBeans. The lack of response on the aries list to my first post makes= me think that perhaps this interface can't be removed. I notice that there= 's an isSynthetic() method on Class. I'm not sure what this means but I'm w= ondering if it would be possible to mark this interface synthetic and have = the relevant parts of OWB ignore synthetic interfaces rather than explicitl= y configuring it to ignore this particular interface? > > thanks > david jencks > > On Jun 2=2C 2011=2C at 11:53 PM=2C David Jencks wrote: > > > another day another problem.... > > > > org.apache.webbeans.exception.WebBeansConfigurationException: Decorator= : Name:null=2C WebBeans Type:DECORATOR=2C API Types:[org.jboss.jsr299.tck.= tests.context.dependent.InteriorDecorator=2Corg.apache.aries.proxy.weaving.= WovenProxy=2Corg.jboss.jsr299.tck.tests.context.dependent.Interior=2Cjava.l= ang.Object]=2C Qualifiers:[javax.enterprise.inject.Any=2Cjavax.enterprise.i= nject.Default] delegate attribute must implement all of the decorator decor= ated types=2C but decorator type interface org.apache.aries.proxy.weaving.W= ovenProxy is not assignable from delegate type of interface org.jboss.jsr29= 9.tck.tests.context.dependent.Interior > > > > > > I believe the story here is that decorator classes must not implement i= nterfaces that the delegate doesn't implement=2C but aries is adding the or= g.apache.aries.proxy.weaving.WovenProxy to the decorator class. > > > > OWB is already excluding Serializable and I can modify the code to also= exclude org.apache.aries.proxy.weaving.WovenProxy and the jcdi tests pass = but this is going to involve making the list of ignored interfaces configur= able and may not be acceptable to OWB. > > > > Is there any way to make the weaving/proxying code not add this interfa= ce? I don't think the jdk proxying code needs to add interfaces.... > > > > thanks > > david jencks > =