It's possible that tacos has this problem, but that was not the issue in
our case, as we've custom rolled our AJAX stuff, and don't use tacos.
The issue was in the standard Tapestry component pipeline.

Later this afternoon I should have time to redo my debugging. I'll
annotate the JIRA issue with what I find.

jeff

-----Original Message-----
From: Jesse Kuhnert [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, January 31, 2006 12:04 PM
To: Tapestry users
Subject: Re: BindingException Issues more prominent with annotations

Ouch, I hope this has nothing to do with the tacos component enhancement
pipeline contributions. It could very well be my fault somehow as well.
I'll
double check the tacos contribution rules to see if it looks like it
might
conflict with something in annotations.

it's this btw (for howard) :
<contribution configuration-id="tapestry.enhance.EnhancementWorkers">
        Adds ajax render interception into component enhancement chain.
        <command id="inject-ajaxrender"
            object="service:tacos.enhance.ComponentRenderInterceptor"
            before="tapestry.enhance.page-detach-listener" />
        <command id="inject-formevent-listener"
                object="service:tacos.enhance.FormComponentEventWorker"
                after="inject-ajaxrender" />
    </contribution>

j

On 1/31/06, Jeff Lubetkin <[EMAIL PROTECTED]> wrote:
>
> This looks very similar to a problem we encountered with
> disable-caching=true and running parallel queries (such as when a
> resulting HTML page contained multiple embedded asset requests, or
AJAX
> type requests).
>
> Basically, if two queries run in parallel and disable-caching is true,
> then when the first one completes all caches will be cleared.  If the
> second query is still running and dependent on caches, it will blow
up.
> I found some spots in the Component enhancement pipeline that, if they
> found something cached at the beginning of the request, would throw
like
> this later after the cache had been cleared.
>
> Our problem was Annotation related, but it was a @Parameter annotation
> that was blowing up for us.  I actually tracked down the specific
cache
> that was causing the problem, but that was a few months ago and I
can't
> remember the specifics.  We've stopped using the disable-cache mode,
so
> I haven't seen this in a while, but if I find some time later I can
redo
> the investigation...shouldn't take more than 30 minutes.
>
> jeff
>
> -----Original Message-----
> From: Chris Chiappone [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, January 31, 2006 11:26 AM
> To: Tapestry users
> Subject: Re: BindingException Issues more prominent with annotations
>
> I'm still trying to figure this out.  Could this problem be associated
> when disable-caching=true?
>
> On 1/29/06, Chris Chiappone <[EMAIL PROTECTED]> wrote:
> > 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 &raquo;&nbsp;<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(Com
> ponentSpecification.java:410)
> > > > > >
>
org.apache.tapestry.annotations.BeanAnnotationWorker.performEnhancement(
> BeanAnnotationWorker.java:64)
> > > > > >
>
org.apache.tapestry.annotations.AnnotationEnhancementWorker.performMetho
> dEnhancement(AnnotationEnhancementWorker.java:142)
> > > > > >
>
org.apache.tapestry.annotations.AnnotationEnhancementWorker.performMetho
> dEnhancement(AnnotationEnhancementWorker.java:110)
> > > > > >
>
org.apache.tapestry.annotations.AnnotationEnhancementWorker.performEnhan
> cement(AnnotationEnhancementWorker.java:70)
> > > > > >
>
$EnhancementWorker_1090cd8cc4b.performEnhancement($EnhancementWorker_109
> 0cd8cc4b.java)
> > > > > >
>
$EnhancementWorker_1090cd8cc4d.performEnhancement($EnhancementWorker_109
> 0cd8cc4d.java)
> > > > > >
>
$EnhancementWorker_1090cd8cc2d.performEnhancement($EnhancementWorker_109
> 0cd8cc2d.java)
> > > > > >
>
org.apache.tapestry.services.impl.ComponentConstructorFactoryImpl.getCom
> ponentConstructor(ComponentConstructorFactoryImpl.java:97)
> > > > > >
>
$ComponentConstructorFactory_1090cd8cc1a.getComponentConstructor($Compon
> entConstructorFactory_1090cd8cc1a.java)
> > > > > >
>
org.apache.tapestry.pageload.PageLoader.instantiateComponent(PageLoader.
> java:531)
> > > > > >
>
org.apache.tapestry.pageload.PageLoader.createImplicitComponent(PageLoad
> er.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
> >
>
>
> --
> ~chris
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to