You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Daniel Leffel <da...@gmail.com> on 2007/09/10 18:06:52 UTC
T5 and Stateless Forms
I realize client-side persistence isn't complete,so... Is there any way to
turn off validation to make a form stateless? I tried implementing my own
validation tracker which ignores errors, but I get a null pointer exception.
Stack below:
-
org.apache.tapestry.internal.services.ComponentInstanceResultProcessor.processComponentEvent
(ComponentInstanceResultProcessor.java:46)
-
org.apache.tapestry.internal.services.ComponentInstanceResultProcessor.processComponentEvent
(ComponentInstanceResultProcessor.java:25)
-
org.apache.tapestry.internal.services.ComponentActionRequestHandlerImpl$1.handleResult
(ComponentActionRequestHandlerImpl.java:60)
- org.apache.tapestry.internal.services.EventImpl.storeResult(
EventImpl.java:63)
- org.apache.tapestry.tutorial.pages.Search.handleComponentEvent(
Search.java)
-
org.apache.tapestry.internal.structure.ComponentPageElementImpl.handleEvent
(ComponentPageElementImpl.java:885)
-
org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerEvent
(ComponentPageElementImpl.java:998)
-
org.apache.tapestry.internal.services.ComponentActionRequestHandlerImpl.handle
(ComponentActionRequestHandlerImpl.java:81)
- org.apache.tapestry.internal.services.InternalModule$11.handle(
InternalModule.java:541)
-
org.apache.tapestry.internal.services.ComponentActionDispatcher.dispatch
(ComponentActionDispatcher.java:116)
- org.apache.tapestry.services.TapestryModule$12.service(
TapestryModule.java:1066)
- org.apache.tapestry.tutorial.services.AppModule$1.service(
AppModule.java:78)
- org.apache.tapestry.internal.services.LocalizationFilter.service(
LocalizationFilter.java:43)
- org.apache.tapestry.services.TapestryModule$2.service(
TapestryModule.java:657)
- org.apache.tapestry.internal.services.StaticFilesFilter.service(
StaticFilesFilter.java:63)
- org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke
(CheckForUpdatesFilter.java:97)
- org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke
(CheckForUpdatesFilter.java:88)
- org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(
ConcurrentBarrier.java:77)
- org.apache.tapestry.internal.services.CheckForUpdatesFilter.service(
CheckForUpdatesFilter.java:110)
- org.apache.tapestry.services.TapestryModule$11.service(
TapestryModule.java:1044)
- org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:135)
- org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter
(WebApplicationHandler.java:821)
- org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(
WebApplicationHandler.java:471)
- org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java
:568)
- org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
- org.mortbay.jetty.servlet.WebApplicationContext.handle(
WebApplicationContext.java:633)
- org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
- org.mortbay.http.HttpServer.service(HttpServer.java:909)
- org.mortbay.http.HttpConnection.service(HttpConnection.java:820)
- org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986)
- org.mortbay.http.HttpConnection.handle(HttpConnection.java:837)
- org.mortbay.http.SocketListener.handleConnection(SocketListener.java
:245)
- org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
- org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
Re: T5 and Stateless Forms
Posted by Daniel Leffel <da...@gmail.com>.
Not sure why, but seems if I inject the regular ValidationTrackerImpl
implementation and don't persist it, I don't get null pointers anymore and
all seems to be well.
As an aside, using @Persist("client") is undesirable to me because of the
url parameter it was adding.
In T4, I sometimes used the Hidden component to persist objects. I hope that
makes it's way into T5.
On 9/10/07, Filip S. Adamsen <fs...@fsadev.com> wrote:
>
> Maybe injecting the ValidationTracker in your page and persisting it
> with @Persist("client:page") and then using the form's tracker parameter
> to use this will work?
>
> -Filip
>
> Daniel Leffel skrev:
> > Is that done by setting clientValidation=true? I tried that and got the
> same
> > behavior.
> >
> > Or did you mean to store the validation tracker as a hidden element in
> the
> > form?
> >
> > On 9/10/07, Howard Lewis Ship <hl...@gmail.com> wrote:
> >> You can store the validation tracker on the client side instead of the
> >> server side.
> >>
> >> On 9/10/07, Daniel Leffel <da...@gmail.com> wrote:
> >>> I realize client-side persistence isn't complete,so... Is there any
> way
> >> to
> >>> turn off validation to make a form stateless? I tried implementing my
> >> own
> >>> validation tracker which ignores errors, but I get a null pointer
> >>> exception.
> >>> Stack below:
> >>>
> >>>
> >>> -
> >>>
> >>>
> >>
> org.apache.tapestry.internal.services.ComponentInstanceResultProcessor.processComponentEvent
> >>> (ComponentInstanceResultProcessor.java:46)
> >>> -
> >>>
> >>>
> >>
> org.apache.tapestry.internal.services.ComponentInstanceResultProcessor.processComponentEvent
> >>> (ComponentInstanceResultProcessor.java:25)
> >>> -
> >>>
> >>>
> >>
> org.apache.tapestry.internal.services.ComponentActionRequestHandlerImpl$1.handleResult
> >>> (ComponentActionRequestHandlerImpl.java:60)
> >>> - org.apache.tapestry.internal.services.EventImpl.storeResult(
> >>> EventImpl.java:63)
> >>> - org.apache.tapestry.tutorial.pages.Search.handleComponentEvent(
> >>> Search.java)
> >>> -
> >>>
> >>>
> >>
> org.apache.tapestry.internal.structure.ComponentPageElementImpl.handleEvent
> >>> (ComponentPageElementImpl.java:885)
> >>> -
> >>>
> >>>
> >>
> org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerEvent
> >>> (ComponentPageElementImpl.java:998)
> >>> -
> >>>
> >>>
> >>
> org.apache.tapestry.internal.services.ComponentActionRequestHandlerImpl.handle
> >>> (ComponentActionRequestHandlerImpl.java:81)
> >>> - org.apache.tapestry.internal.services.InternalModule$11.handle(
> >>> InternalModule.java:541)
> >>> -
> >>>
> >>>
> org.apache.tapestry.internal.services.ComponentActionDispatcher.dispatch
> >>> (ComponentActionDispatcher.java:116)
> >>> - org.apache.tapestry.services.TapestryModule$12.service(
> >>> TapestryModule.java:1066)
> >>> - org.apache.tapestry.tutorial.services.AppModule$1.service(
> >>> AppModule.java:78)
> >>> - org.apache.tapestry.internal.services.LocalizationFilter.service(
> >>> LocalizationFilter.java:43)
> >>> - org.apache.tapestry.services.TapestryModule$2.service(
> >>> TapestryModule.java:657)
> >>> - org.apache.tapestry.internal.services.StaticFilesFilter.service(
> >>> StaticFilesFilter.java:63)
> >>> -
> >> org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke
> >>> (CheckForUpdatesFilter.java:97)
> >>> -
> >> org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke
> >>> (CheckForUpdatesFilter.java:88)
> >>> - org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(
> >>> ConcurrentBarrier.java:77)
> >>> -
> org.apache.tapestry.internal.services.CheckForUpdatesFilter.service
> >> (
> >>> CheckForUpdatesFilter.java:110)
> >>> - org.apache.tapestry.services.TapestryModule$11.service(
> >>> TapestryModule.java:1044)
> >>> - org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java
> >> :135)
> >>> -
> >> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter
> >>> (WebApplicationHandler.java:821)
> >>> - org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(
> >>> WebApplicationHandler.java:471)
> >>> - org.mortbay.jetty.servlet.ServletHandler.handle(
> ServletHandler.java
> >>> :568)
> >>> - org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
> >>> - org.mortbay.jetty.servlet.WebApplicationContext.handle(
> >>> WebApplicationContext.java:633)
> >>> - org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
> >>> - org.mortbay.http.HttpServer.service(HttpServer.java:909)
> >>> - org.mortbay.http.HttpConnection.service(HttpConnection.java:820)
> >>> - org.mortbay.http.HttpConnection.handleNext(HttpConnection.java
> :986)
> >>> - org.mortbay.http.HttpConnection.handle(HttpConnection.java:837)
> >>> - org.mortbay.http.SocketListener.handleConnection(
> >> SocketListener.java
> >>> :245)
> >>> - org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
> >>> - org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
> >>>
> >>
> >>
> >> --
> >> Howard M. Lewis Ship
> >> Partner and Senior Architect at Feature50
> >>
> >> Creator Apache Tapestry and Apache HiveMind
> >>
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>
Re: T5 and Stateless Forms
Posted by "Filip S. Adamsen" <fs...@fsadev.com>.
Maybe injecting the ValidationTracker in your page and persisting it
with @Persist("client:page") and then using the form's tracker parameter
to use this will work?
-Filip
Daniel Leffel skrev:
> Is that done by setting clientValidation=true? I tried that and got the same
> behavior.
>
> Or did you mean to store the validation tracker as a hidden element in the
> form?
>
> On 9/10/07, Howard Lewis Ship <hl...@gmail.com> wrote:
>> You can store the validation tracker on the client side instead of the
>> server side.
>>
>> On 9/10/07, Daniel Leffel <da...@gmail.com> wrote:
>>> I realize client-side persistence isn't complete,so... Is there any way
>> to
>>> turn off validation to make a form stateless? I tried implementing my
>> own
>>> validation tracker which ignores errors, but I get a null pointer
>>> exception.
>>> Stack below:
>>>
>>>
>>> -
>>>
>>>
>> org.apache.tapestry.internal.services.ComponentInstanceResultProcessor.processComponentEvent
>>> (ComponentInstanceResultProcessor.java:46)
>>> -
>>>
>>>
>> org.apache.tapestry.internal.services.ComponentInstanceResultProcessor.processComponentEvent
>>> (ComponentInstanceResultProcessor.java:25)
>>> -
>>>
>>>
>> org.apache.tapestry.internal.services.ComponentActionRequestHandlerImpl$1.handleResult
>>> (ComponentActionRequestHandlerImpl.java:60)
>>> - org.apache.tapestry.internal.services.EventImpl.storeResult(
>>> EventImpl.java:63)
>>> - org.apache.tapestry.tutorial.pages.Search.handleComponentEvent(
>>> Search.java)
>>> -
>>>
>>>
>> org.apache.tapestry.internal.structure.ComponentPageElementImpl.handleEvent
>>> (ComponentPageElementImpl.java:885)
>>> -
>>>
>>>
>> org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerEvent
>>> (ComponentPageElementImpl.java:998)
>>> -
>>>
>>>
>> org.apache.tapestry.internal.services.ComponentActionRequestHandlerImpl.handle
>>> (ComponentActionRequestHandlerImpl.java:81)
>>> - org.apache.tapestry.internal.services.InternalModule$11.handle(
>>> InternalModule.java:541)
>>> -
>>>
>>> org.apache.tapestry.internal.services.ComponentActionDispatcher.dispatch
>>> (ComponentActionDispatcher.java:116)
>>> - org.apache.tapestry.services.TapestryModule$12.service(
>>> TapestryModule.java:1066)
>>> - org.apache.tapestry.tutorial.services.AppModule$1.service(
>>> AppModule.java:78)
>>> - org.apache.tapestry.internal.services.LocalizationFilter.service(
>>> LocalizationFilter.java:43)
>>> - org.apache.tapestry.services.TapestryModule$2.service(
>>> TapestryModule.java:657)
>>> - org.apache.tapestry.internal.services.StaticFilesFilter.service(
>>> StaticFilesFilter.java:63)
>>> -
>> org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke
>>> (CheckForUpdatesFilter.java:97)
>>> -
>> org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke
>>> (CheckForUpdatesFilter.java:88)
>>> - org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(
>>> ConcurrentBarrier.java:77)
>>> - org.apache.tapestry.internal.services.CheckForUpdatesFilter.service
>> (
>>> CheckForUpdatesFilter.java:110)
>>> - org.apache.tapestry.services.TapestryModule$11.service(
>>> TapestryModule.java:1044)
>>> - org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java
>> :135)
>>> -
>> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter
>>> (WebApplicationHandler.java:821)
>>> - org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(
>>> WebApplicationHandler.java:471)
>>> - org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java
>>> :568)
>>> - org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
>>> - org.mortbay.jetty.servlet.WebApplicationContext.handle(
>>> WebApplicationContext.java:633)
>>> - org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
>>> - org.mortbay.http.HttpServer.service(HttpServer.java:909)
>>> - org.mortbay.http.HttpConnection.service(HttpConnection.java:820)
>>> - org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986)
>>> - org.mortbay.http.HttpConnection.handle(HttpConnection.java:837)
>>> - org.mortbay.http.SocketListener.handleConnection(
>> SocketListener.java
>>> :245)
>>> - org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
>>> - org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
>>>
>>
>>
>> --
>> Howard M. Lewis Ship
>> Partner and Senior Architect at Feature50
>>
>> Creator Apache Tapestry and Apache HiveMind
>>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org
Re: T5 and Stateless Forms
Posted by Daniel Leffel <da...@gmail.com>.
Is that done by setting clientValidation=true? I tried that and got the same
behavior.
Or did you mean to store the validation tracker as a hidden element in the
form?
On 9/10/07, Howard Lewis Ship <hl...@gmail.com> wrote:
>
> You can store the validation tracker on the client side instead of the
> server side.
>
> On 9/10/07, Daniel Leffel <da...@gmail.com> wrote:
> >
> > I realize client-side persistence isn't complete,so... Is there any way
> to
> > turn off validation to make a form stateless? I tried implementing my
> own
> > validation tracker which ignores errors, but I get a null pointer
> > exception.
> > Stack below:
> >
> >
> > -
> >
> >
> org.apache.tapestry.internal.services.ComponentInstanceResultProcessor.processComponentEvent
> > (ComponentInstanceResultProcessor.java:46)
> > -
> >
> >
> org.apache.tapestry.internal.services.ComponentInstanceResultProcessor.processComponentEvent
> > (ComponentInstanceResultProcessor.java:25)
> > -
> >
> >
> org.apache.tapestry.internal.services.ComponentActionRequestHandlerImpl$1.handleResult
> > (ComponentActionRequestHandlerImpl.java:60)
> > - org.apache.tapestry.internal.services.EventImpl.storeResult(
> > EventImpl.java:63)
> > - org.apache.tapestry.tutorial.pages.Search.handleComponentEvent(
> > Search.java)
> > -
> >
> >
> org.apache.tapestry.internal.structure.ComponentPageElementImpl.handleEvent
> > (ComponentPageElementImpl.java:885)
> > -
> >
> >
> org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerEvent
> > (ComponentPageElementImpl.java:998)
> > -
> >
> >
> org.apache.tapestry.internal.services.ComponentActionRequestHandlerImpl.handle
> > (ComponentActionRequestHandlerImpl.java:81)
> > - org.apache.tapestry.internal.services.InternalModule$11.handle(
> > InternalModule.java:541)
> > -
> >
> > org.apache.tapestry.internal.services.ComponentActionDispatcher.dispatch
> > (ComponentActionDispatcher.java:116)
> > - org.apache.tapestry.services.TapestryModule$12.service(
> > TapestryModule.java:1066)
> > - org.apache.tapestry.tutorial.services.AppModule$1.service(
> > AppModule.java:78)
> > - org.apache.tapestry.internal.services.LocalizationFilter.service(
> > LocalizationFilter.java:43)
> > - org.apache.tapestry.services.TapestryModule$2.service(
> > TapestryModule.java:657)
> > - org.apache.tapestry.internal.services.StaticFilesFilter.service(
> > StaticFilesFilter.java:63)
> > -
> org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke
> > (CheckForUpdatesFilter.java:97)
> > -
> org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke
> > (CheckForUpdatesFilter.java:88)
> > - org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(
> > ConcurrentBarrier.java:77)
> > - org.apache.tapestry.internal.services.CheckForUpdatesFilter.service
> (
> > CheckForUpdatesFilter.java:110)
> > - org.apache.tapestry.services.TapestryModule$11.service(
> > TapestryModule.java:1044)
> > - org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java
> :135)
> > -
> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter
> > (WebApplicationHandler.java:821)
> > - org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(
> > WebApplicationHandler.java:471)
> > - org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java
> > :568)
> > - org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
> > - org.mortbay.jetty.servlet.WebApplicationContext.handle(
> > WebApplicationContext.java:633)
> > - org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
> > - org.mortbay.http.HttpServer.service(HttpServer.java:909)
> > - org.mortbay.http.HttpConnection.service(HttpConnection.java:820)
> > - org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986)
> > - org.mortbay.http.HttpConnection.handle(HttpConnection.java:837)
> > - org.mortbay.http.SocketListener.handleConnection(
> SocketListener.java
> > :245)
> > - org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
> > - org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
> >
>
>
>
> --
> Howard M. Lewis Ship
> Partner and Senior Architect at Feature50
>
> Creator Apache Tapestry and Apache HiveMind
>
Re: T5 and Stateless Forms
Posted by Howard Lewis Ship <hl...@gmail.com>.
You can store the validation tracker on the client side instead of the
server side.
On 9/10/07, Daniel Leffel <da...@gmail.com> wrote:
>
> I realize client-side persistence isn't complete,so... Is there any way to
> turn off validation to make a form stateless? I tried implementing my own
> validation tracker which ignores errors, but I get a null pointer
> exception.
> Stack below:
>
>
> -
>
> org.apache.tapestry.internal.services.ComponentInstanceResultProcessor.processComponentEvent
> (ComponentInstanceResultProcessor.java:46)
> -
>
> org.apache.tapestry.internal.services.ComponentInstanceResultProcessor.processComponentEvent
> (ComponentInstanceResultProcessor.java:25)
> -
>
> org.apache.tapestry.internal.services.ComponentActionRequestHandlerImpl$1.handleResult
> (ComponentActionRequestHandlerImpl.java:60)
> - org.apache.tapestry.internal.services.EventImpl.storeResult(
> EventImpl.java:63)
> - org.apache.tapestry.tutorial.pages.Search.handleComponentEvent(
> Search.java)
> -
>
> org.apache.tapestry.internal.structure.ComponentPageElementImpl.handleEvent
> (ComponentPageElementImpl.java:885)
> -
>
> org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerEvent
> (ComponentPageElementImpl.java:998)
> -
>
> org.apache.tapestry.internal.services.ComponentActionRequestHandlerImpl.handle
> (ComponentActionRequestHandlerImpl.java:81)
> - org.apache.tapestry.internal.services.InternalModule$11.handle(
> InternalModule.java:541)
> -
>
> org.apache.tapestry.internal.services.ComponentActionDispatcher.dispatch
> (ComponentActionDispatcher.java:116)
> - org.apache.tapestry.services.TapestryModule$12.service(
> TapestryModule.java:1066)
> - org.apache.tapestry.tutorial.services.AppModule$1.service(
> AppModule.java:78)
> - org.apache.tapestry.internal.services.LocalizationFilter.service(
> LocalizationFilter.java:43)
> - org.apache.tapestry.services.TapestryModule$2.service(
> TapestryModule.java:657)
> - org.apache.tapestry.internal.services.StaticFilesFilter.service(
> StaticFilesFilter.java:63)
> - org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke
> (CheckForUpdatesFilter.java:97)
> - org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke
> (CheckForUpdatesFilter.java:88)
> - org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(
> ConcurrentBarrier.java:77)
> - org.apache.tapestry.internal.services.CheckForUpdatesFilter.service(
> CheckForUpdatesFilter.java:110)
> - org.apache.tapestry.services.TapestryModule$11.service(
> TapestryModule.java:1044)
> - org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:135)
> - org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter
> (WebApplicationHandler.java:821)
> - org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(
> WebApplicationHandler.java:471)
> - org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java
> :568)
> - org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
> - org.mortbay.jetty.servlet.WebApplicationContext.handle(
> WebApplicationContext.java:633)
> - org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
> - org.mortbay.http.HttpServer.service(HttpServer.java:909)
> - org.mortbay.http.HttpConnection.service(HttpConnection.java:820)
> - org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986)
> - org.mortbay.http.HttpConnection.handle(HttpConnection.java:837)
> - org.mortbay.http.SocketListener.handleConnection(SocketListener.java
> :245)
> - org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
> - org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
>
--
Howard M. Lewis Ship
Partner and Senior Architect at Feature50
Creator Apache Tapestry and Apache HiveMind