You're welcome - I'm glad to contribute! Regards, Jakob
2010/9/29 Rohit Kelapure <[email protected]>: > This is an excellent patch. Thanks Jakob! > > We ran into a similar issue discovered by Paul Reder where in > > org.apache.webbeans.inject.impl.InjectionPointImpl.readObject(ObjectInputStream) > > the owner bean filtering > this.ownerBean = BeanManagerImpl.getManager().getBeans(beanClass, > anns.toArray(new Annotation[0])).iterator().next(); > > did NOT work.because checkEquality does NOT correctly compare the > owner bean deserialized annotations with the resolvedComponent > qualifiers. > > how this patch affects InjectionPointImpl deserialization ... > method hierarchy --> > org.apache.webbeans.util.AnnotationUtil.checkEquality(String, String, > List<String>) > org.apache.webbeans.util.AnnotationUtil.hasAnnotationMember(Class<? > extends Annotation>, Annotation, Annotation) > > org.apache.webbeans.container.InjectionResolver.findByQualifier(Set<Bean<?>>, > Annotation...) > > org.apache.webbeans.container.InjectionResolver.implResolveByType(Type, > Annotation...) > org.apache.webbeans.container.BeanManagerImpl.getBeans(Type, > Annotation...) > > org.apache.webbeans.inject.impl.InjectionPointImpl.readObject(ObjectInputStream) > > > --Thanks, > Rohit Kelapure > > On Tue, Sep 28, 2010 at 5:24 PM, Jakob Korherr (JIRA) <[email protected]> wrote: >> >> [ >> https://issues.apache.org/jira/browse/OWB-462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel >> ] >> >> Jakob Korherr updated OWB-462: >> ------------------------------ >> >> Attachment: OWB-462.patch >> >> The patch contains the refactored code and some test cases. >> >>> Refactor AnnotationUtil.hasAnnotationMember() >>> --------------------------------------------- >>> >>> Key: OWB-462 >>> URL: https://issues.apache.org/jira/browse/OWB-462 >>> Project: OpenWebBeans >>> Issue Type: Task >>> Components: Core >>> Affects Versions: 1.0.0-alpha-2 >>> Reporter: Jakob Korherr >>> Assignee: Gurkan Erdogdu >>> Attachments: OWB-462.patch >>> >>> >>> We needed a method to compare qualifiers for MyFaces CODI and stumbled upon >>> AnnotationUtil.hasAnnotationMember(). >>> However this method is really messy, because it uses the String >>> representation of an annotation to compare it and thus fails in various >>> cases (e.g. when using annotation instances which implement toString() >>> differently or by using array values in the qualifier). Furthermore it does >>> not detect @Nonbinding fields correctly, if there is more than one >>> annotation on the annotation-method. >>> Also it's kinda weird that the method takes the Annotation-Class as an >>> extra parameter, but it could just get it from one of the Annotation >>> instances. I checked all usages and found out that this argument can be >>> dropped. In addition I think it's better to rename the method to >>> isQualifierEqual() - the usage is just a lot clearer. >>> I implemented a custom solution for MyFaces CODI and I think it should also >>> be applied here. >> >> -- >> This message is automatically generated by JIRA. >> - >> You can reply to this email to add a comment to the issue online. >> >> > -- Jakob Korherr blog: http://www.jakobk.com twitter: http://twitter.com/jakobkorherr work: http://www.irian.at
