To anybody whom it may concern...

The threading problem referred to in this thread, can be worked around by overriding the AbstractEngine's protected createComponentClassEnhancer method to return a synchronized version of the enhancer. This makes 3.0.4 work like earlier versions of Tapestry as far as we can tell.

Of course, you shouldn't *have* to do this.

Below is some code:

In your custom engine:
protected IComponentClassEnhancer createComponentClassEnhancer (RequestContext context)
    {
        boolean disableValidation =
            "true".equals(
                    this._propertySource.getPropertyValue(
"org.apache.tapestry.enhance.disable-abstract- method-validation"));

return new SynchronizedComponentClassEnhancer (this._resolver, disableValidation);
    }


And a new class:

public class SynchronizedComponentClassEnhancer extends DefaultComponentClassEnhancer {

public SynchronizedComponentClassEnhancer(IResourceResolver resolver, boolean disableValidation) {
        super(resolver, disableValidation);
    }

    /**
     * Returns the Class, in a synchronized manner.
     *
* @see org.apache.tapestry.enhance.DefaultComponentClassEnhancer#getEnhancedCla ss(org.apache.tapestry.spec.IComponentSpecification, java.lang.String)
     */
public synchronized Class getEnhancedClass (IComponentSpecification specification, String className)
    {
        Class result = getCachedClass(specification);

        if (result == null) {
            result = constructComponentClass(specification, className);
            storeCachedClass(specification, result);
        }

        return result;
    }

    /**
     * Returns a Synchronized implemenation of IEnhancedClassFactory
     *
* @see org.apache.tapestry.enhance.DefaultComponentClassEnhancer#createEnhanced ClassFactory()
     */
    protected IEnhancedClassFactory createEnhancedClassFactory()
    {
return new SynchronizedEnhancedClassFactory (getResourceResolver());
    }

}




On Jan 31, 2007, at 2:37 PM, Mark Stang wrote:

Howard,
It appears that development on 3.x has stalled to a complete stop. The web-site lists the latest 3.x release as 3.0.4. According to the "news" it says 3.0.4 has hundreds of bug fixes. What it doesn't show is that 3.0.4 has a threading issue. The issue was identified over two months ago. The 3.0.4 is not on any of the mirrors, I guess because of the bug.

All-in-all, it appears that not only is 3.x dead but there is a "bad" version sitting out there mis-leading potential users. Unless someone is going to pick up 3.x, the web site should be reverted back to 3.0.3. Then 3.0.4 and 3.0.5 should be deleted and all JIRA issues reflecting the fixes that were done should be re- listed as outstanding. Those "fixes" which happened in 3.0.4 are still a problem for anyone using 3.0.3 but JIRA says they were fixed.

The web site might as well show that 3.x is dead and tell everyone that it will no longer be maintained.

Mark

Mark J. Stang
Senior Engineer/Architect
office: +1 303.468.2900
mobile: +1 303.507.2833
Ping Identity



-----Original Message-----
From: Mark Stang
Sent: Tue 1/30/2007 11:33 PM
To: Tapestry users; Tapestry users
Subject: RE: FW: Tapestry 3.0.4..not on mirrors

Nick,
Thanks for pointing that out, I finally found the e-mail trail. I decided that I couldn't take a chance on 3.0.4 and reverted back to 3.0.3. I guess we are done with 3.x and will wait for 5.x or the next great GUI Framework. Tapestry has been fun and very interesting.

regards,

Mark

Mark J. Stang
Senior Engineer/Architect
office: +1 303.468.2900
mobile: +1 303.507.2833
Ping Identity



-----Original Message-----
From: Nick Westgate [mailto:[EMAIL PROTECTED]
Sent: Tue 1/30/2007 8:10 PM
To: Tapestry users
Subject: Re: FW: Tapestry 3.0.4..not on mirrors

Hi Mark.

I'm referring to this thread:
"3.0.4 and repetitive method name/signature problem (class enhancement)"
http://thread.gmane.org/gmane.comp.java.tapestry.user/43121

Take it to the dev list when you've read that.
(I'm not a dev, so as to who is managing 3 now ...)

Cheers,
Nick.


Mark Stang wrote:
Nick,
I did a quick look and only saw references to 4.x. If 3.0.4 is not the current release, then why does the Tapestry Web site have it listed as such?

http://tapestry.apache.org/tapestry3/

Who is managing this?

thanks,

Mark

---------------------------------------------------------------------
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