New JIRA created:
https://issues.apache.org/jira/browse/TAPESTRY-848
On 1/29/06, Howard Lewis Ship <[EMAIL PROTECTED]> wrote:
> I don't have a test for this case, so it would certainly be a bug.
> Based on how the code is organized, I can't see how this could happen
> (confusion between the page and component annotations). Each
> "enhancement" of a class (page or component) gets its own instance of
> EnhancementOperationImpl, which is where these checks originate.
>
> ComponentConstructorFactoryImpl.getComponentConstructor() is
> synchronized, I believe. I just can't see how page and component class
> enhancement could interfere with each other, but that's the nature of
> bugs.
>
> Have you created a JIRA issue (or re-opened the old one)?
>
> On 1/28/06, Chris Chiappone <[EMAIL PROTECTED]> wrote:
> > I'm still curious if someone can confirm this. Is it true that you
> > cannot use the same named property in a page and a component? That
> > doing this could cause the binding exceptions that I have been
> > getting??
> >
> > On 1/27/06, Chris Chiappone <[EMAIL PROTECTED]> wrote:
> > > It looks like I can reproduce this issue easily. For instance say I
> > > have a page that contains:
> > >
> > > @InjectState("visit")
> > > public abstract Visit getVisitObj();
> > >
> > > And have the exact same getter (annotation or not) in my component:
> > >
> > > public abstract Visit getVisitObj();
> > >
> > > The binding exception seems to occur.
> > >
> > > Does this seem like correct behavior for tapestry? I do this quite
> > > often in my components because at times the page may not have the
> > > visit or some other object that the page has, but other times it may.
> > >
> > > Thoughts and help greatly appreciated
> > >
> > >
> > >
> > > On 1/27/06, Chris Chiappone <[EMAIL PROTECTED]> wrote:
> > > > At first I thought I could work around these issues but they seem to
> > > > be popping up more and more throughout my application. Its really
> > > > becoming an issue for me.
> > > >
> > > > Ever since I have moved from .page and .jwc files to annotations I get
> > > > these exceptions more often.
> > > >
> > > > I don't believe I am doing anything wrong with these annotations. As
> > > > you can see by the following one I have just declared a DelegateBean
> > > > in my class. Using
> > > >
> > > > @Bean(SimpleValidationDeleage)
> > > > public abstract SimpleValidationDelegate getDelegate();
> > > >
> > > > That same Delegate is used on mulitple pages and in components. From
> > > > what I understand this should be acceptable.
> > > >
> > > > This issue also has sprung up on my declaring the same Persistent
> > > > property on different pages or components using the @Persist
> > > > annotation.
> > > >
> > > > I didn't run into these problems before I used annotations. I'd also
> > > > hate to have to go back to .page and .jwc files since there are so
> > > > many files that I've changed.
> > > >
> > > > Here is an one of the exceptions:
> > > >
> > > > Exception invoking listener method searchLinkListener of component
> > > > SearchResults/border.search: Error: An error occured processing
> > > > annotation @org.apache.tapestry.annotations.Bean(value=class
> > > > view.util.SimpleValidationDelegate, lifecycle=REQUEST, initializer=)
> > > > of public abstract view.util.SimpleValidationDelegate
> > > > view.components.BasicSearch.getDelegate(): Bean delegate has already
> > > > been declared (at Annotation
> > > > @org.apache.tapestry.annotations.Bean(value=class
> > > > view.util.SimpleValidationDelegate, lifecycle=REQUEST, initializer=)
> > > > of public abstract view.util.SimpleValidationDelegate
> > > > view.components.BasicSearch.getDelegate()).
> > > > binding: [EMAIL PROTECTED]
> > > > parameter listener, component=SearchResults/border.search,
> > > > methodName=searchLinkListener,
> > > > location=context:/WEB-INF/BasicSearch.html, line 16]
> > > > component: [EMAIL PROTECTED]/border.search]
> > > > location: context:/WEB-INF/BasicSearch.html, line 16
> > > > 11 <br>
> > > > 12 <input jwcid="companyField"
> > > > 13 autocomplete="off" size="20" id="txt1" /> <br>
> > > > 14 <input jwcid="@Submit" name="Submit" label="message:submit" /></form>
> > > > 15
> > > > 16 <a jwcid="@DirectLink" listener="listener:searchLinkListener">
> > > > 17 » <span key="advanced">Advanced</span>
> > > > 18 </a>
> > > > 19 </div>
> > > > 20 </td>
> > > > 21 </tr>
> > > >
> > > >
> > > > org.apache.hivemind.ApplicationRuntimeException
> > > > Error: An error occured processing annotation
> > > > @org.apache.tapestry.annotations.Bean(value=class
> > > > util.SimpleValidationDelegate, lifecycle=REQUEST, initializer=) of
> > > > public abstract view.util.SimpleValidationDelegate
> > > > view.components.BasicSearch.getDelegate(): Bean delegate has already
> > > > been declared (at Annotation
> > > > @org.apache.tapestry.annotations.Bean(value=class
> > > > view.util.SimpleValidationDelegate, lifecycle=REQUEST, initializer=)
> > > > of public abstract view.util.SimpleValidationDelegate
> > > > view.components.BasicSearch.getDelegate()).
> > > > location: Annotation @org.apache.tapestry.annotations.Bean(value=class
> > > > view.util.SimpleValidationDelegate, lifecycle=REQUEST, initializer=)
> > > > of public abstract view.util.SimpleValidationDelegate
> > > > view.components.BasicSearch.getDelegate()
> > > >
> > > > org.apache.hivemind.ApplicationRuntimeException
> > > > Bean delegate has already been declared (at Annotation
> > > > @org.apache.tapestry.annotations.Bean(value=class
> > > > view.util.SimpleValidationDelegate, lifecycle=REQUEST, initializer=)
> > > > of public abstract view.util.SimpleValidationDelegate
> > > > view.components.BasicSearch.getDelegate()).
> > > > location: Annotation @org.apache.tapestry.annotations.Bean(value=class
> > > > view.util.SimpleValidationDelegate, lifecycle=REQUEST, initializer=)
> > > > of public abstract view.util.SimpleValidationDelegate
> > > > view.components.BasicSearch.getDelegate()
> > > > Stack Trace:
> > > > org.apache.tapestry.spec.ComponentSpecification.addBeanSpecification(ComponentSpecification.java:410)
> > > > org.apache.tapestry.annotations.BeanAnnotationWorker.performEnhancement(BeanAnnotationWorker.java:64)
> > > > org.apache.tapestry.annotations.AnnotationEnhancementWorker.performMethodEnhancement(AnnotationEnhancementWorker.java:142)
> > > > org.apache.tapestry.annotations.AnnotationEnhancementWorker.performMethodEnhancement(AnnotationEnhancementWorker.java:110)
> > > > org.apache.tapestry.annotations.AnnotationEnhancementWorker.performEnhancement(AnnotationEnhancementWorker.java:70)
> > > > $EnhancementWorker_1090cd8cc4b.performEnhancement($EnhancementWorker_1090cd8cc4b.java)
> > > > $EnhancementWorker_1090cd8cc4d.performEnhancement($EnhancementWorker_1090cd8cc4d.java)
> > > > $EnhancementWorker_1090cd8cc2d.performEnhancement($EnhancementWorker_1090cd8cc2d.java)
> > > > org.apache.tapestry.services.impl.ComponentConstructorFactoryImpl.getComponentConstructor(ComponentConstructorFactoryImpl.java:97)
> > > > $ComponentConstructorFactory_1090cd8cc1a.getComponentConstructor($ComponentConstructorFactory_1090cd8cc1a.java)
> > > > org.apache.tapestry.pageload.PageLoader.instantiateComponent(PageLoader.java:531)
> > > > org.apache.tapestry.pageload.PageLoader.createImplicitComponent(PageLoader.java:481)
> > > >
> > > >
> > > >
> > > > --
> > > > ~chris
> > > >
> > >
> > >
> > > --
> > > ~chris
> > >
> >
> >
> > --
> > ~chris
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
>
> --
> Howard M. Lewis Ship
> Independent J2EE / Open-Source Java Consultant
> Creator, Jakarta Tapestry
> Creator, Jakarta HiveMind
>
> Professional Tapestry training, mentoring, support
> and project work. http://howardlewisship.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
--
~chris
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]