Re: preventing double submit in tapestry

2006-11-15 Thread John Menke

The filter solution does use a unique token on the form and you can disable
the filter by not including the token on a form.  I did have to add logic to
the posted solution to handle errors but even with that code included the
code seems to be non-invasive -- all it does is check for form variable and
continues normal processing or blocks duplicate requests while "caching" the
response (sounds more complicated than it is)

i do see what you mean about the security concern and someone being able to
manipulate a post to get past the filter, trying to think of solutions to
this problem

maybe something where the form included a secure key in a hidden variable
and having some sort of check which could determine if a key had been used
already

if form is secure
-- check for valid and unique key
-- if key is valid then process the form and expire the key
-- don't let another request pass through after key is expired or absent

above solution does require the ability to mark certain forms as secure on
the server side.

with security in place i think the filter solution could be a complete
server side solution.  I know you mentioned possible side effects did you
have anything specific in mind?

Bottom line is that there should be a server side solution to this problem
in tapestry that is secure and non-invasive.  I encourage others to post
their ideas in an effort to come to some sort of agreement on best way to
accomplish this.

-john



On 11/15/06, Sam Gendler <[EMAIL PROTECTED]> wrote:


That seems like a complex solution to the problem which does things in
a filter, where it might be difficult to predict side effects or
override the behaviour in certain circumstances.  I'd be more inclined
to implement a unique token solution in a base page class so that I
could overload it in certain pages, if necessary.  Simplest solution,
but not entirely error proof, would be to stick a unique token in the
form (I'm not use you can use a session persistent property in the
page, as I don't know when those get written into the session -
possibly only after the page is finished processing).  Then,  when
processing any form, check the session location for a token, if it
matches, just send back a page saying "don't do that."  If it isn't
found, assume that this is the first time you've seen the form and go
ahead and process it.  You can add increasing complexity to such a
solution depending on what kind of user experience you want and how
error-proof you want it.  The filter trick is cute, since you can
actually serve the same response to multiple requests, but that is
often not necessary and sometimes not even desired and it takes too
much logic out of the core application for my own comfort level.

But disabling a button can be pretty effective against all but an
actually malicious user (does anyone build javascript-free web apps
these days, especially in tapestry?), and a malicious user can
override a unique token all too easily, anyway.  If there is a true
security or data integrity concern, you'll have to do something that
is entirely on the server side in order to prevent manipulation by
someone with the smarts to interpret an html file and manually send a
post.

--sam

On 11/15/06, John Menke <[EMAIL PROTECTED]> wrote:
> Is there a non-javascript solution to this problem?  I have been
> experimenting with code based on the forum post below.  Has anyone
developed
> a solution for Tapestry?  I propose some sort of consensus should
> be reached as to what the best method is to handle double submits and a
> patch should be made for Tapestry.  Any comments? Ideas?
>
> 
>  There is a server-side solution for this problem. Here is the concept:
> Build a way to identify each form from which a request (or multiple
> requests, if the form button is clicked several times) arrives. This can
be
> done by having a hidden input element included in the form, whose value
is a
> unique number (typically using the time in milliseconds).
>
> Write a filter implementing the javax.servlet.Filter interface, with the
> following logic in the doFilter() method:
> Synchronize a code block on a session-scoped object. Inside this block,
> check if the form-id received through the current request is same as the
one
> received previously.
> If different, this is the first request received from the form (i.e. the
> request originated as a result of the first click). If same, this is a
> subsequent request, generated as a result of multiple clicks.
>
> In the first case, invoke FilterChain.doFilter() by passing a
> ResponseWrapper object instead of the original response object. This
> ResponseWrapper object should be built with a ByteArrayOutputStream
object,
> so that the response content can be extracted as a String. When the
> FilterChain.doFilter() method returns, save the response content and

Re: preventing double submit in tapestry

2006-11-15 Thread John Menke

Is there a non-javascript solution to this problem?  I have been
experimenting with code based on the forum post below.  Has anyone developed
a solution for Tapestry?  I propose some sort of consensus should
be reached as to what the best method is to handle double submits and a
patch should be made for Tapestry.  Any comments? Ideas?


There is a server-side solution for this problem. Here is the concept:
Build a way to identify each form from which a request (or multiple
requests, if the form button is clicked several times) arrives. This can be
done by having a hidden input element included in the form, whose value is a
unique number (typically using the time in milliseconds).

Write a filter implementing the javax.servlet.Filter interface, with the
following logic in the doFilter() method:
Synchronize a code block on a session-scoped object. Inside this block,
check if the form-id received through the current request is same as the one
received previously.
If different, this is the first request received from the form (i.e. the
request originated as a result of the first click). If same, this is a
subsequent request, generated as a result of multiple clicks.

In the first case, invoke FilterChain.doFilter() by passing a
ResponseWrapper object instead of the original response object. This
ResponseWrapper object should be built with a ByteArrayOutputStream object,
so that the response content can be extracted as a String. When the
FilterChain.doFilter() method returns, save the response content and the
current form-id in session-scope, for subsequent requests and leave the
synchronized block.

Then outside the synchronized block, forward all the requests (including the
first one) to a "LoopBackServlet" with the original "request" and "response"
objects. The whole purpose of this "LoopBackServlet" is to write the saved
response content into the response object.

In this way, when multiple requests arrive from the same form as a result of
multiple clicks, we let the first request thread proceed, with a
response-wrapper and block all the other threads. When the first thread
returns with the response ready, the response content is stored in session
and the same is written to all the blocked threads when they become
unblocked.

If anybody wants more details, please email me at [EMAIL PROTECTED], I can
send the working code.




http://forum.java.sun.com/thread.jspa?threadID=665472&start=15&tstart=0



On 11/15/06, Denis McCarthy <[EMAIL PROTECTED]> wrote:


I was looking for a sledgehammer to crack a nut. That's how I ended up
doing it (after spending the day looking for an enterprisey solution!)
Thanks
Denis

Jesse Kuhnert wrote:
> Why don't you just disable the submit buttons in question when they
submit?
> (set the disabled attribute to true)
>
> On 11/15/06, Denis McCarthy <[EMAIL PROTECTED]> wrote:
>>
>> Hi,
>> I'm encountering a problem in my app where users are double submitting
a
>>   form, creating a hibernate exception in the back end where two
>> sessions are attempting to update the same collection. I've read some
>> posts about preventing form resubmission by using a unique token in the
>> form to detect a double submit.
>>
>> If a double submit is detected, the second and subsequent submits wait
>> until the original one returns and then report the outcome of that
>> transaction (if I understand correctly, it's the last submit that
issues
>> the response to the user, and the first one does the updating).
>>
>> I'm wondering
>> a) is this indeed the right approach to stop users who are
>> over-enthusiastic in their button clicking from encountering errors,
and
>> b) does anyone have an actual example of code that implements this
>> pattern?
>> Thanks very much
>> Denis Mc.
>>
>> -
>> 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]




Form Component that outputs raw DisplayName

2006-08-07 Thread John Menke

I have a component that implements IFormComponent - and has a
getDisplayName() method that returns the name for use in a label.  I need
the outputed text in the label to be RAW - is there any simple way of doing
this?

-jm


Re: Unable to decode stream: Unexpected end of ZLIB input stream

2006-08-03 Thread John Menke

So could this be another issue with somebody spoofing a url?

On 8/3/06, James Carman <[EMAIL PROTECTED]> wrote:


I don't think that's it.  You basically have a bad parameter coming in
that's supposed to be a "squeezed" value.  The data squeezer is trying to
unsqueeze it (and it thinks it's zipped up).

-Original Message-
From: Rui Pacheco [mailto:[EMAIL PROTECTED]
Sent: Thursday, August 03, 2006 11:41 AM
To: Tapestry users
Subject: Re: Unable to decode stream: Unexpected end of ZLIB input stream

I get it sometimes too.

I believe it is because the war file is tainted while en route between my
workstation and the server. We have a flaky network and unexpected things
tend to happen.

On 8/3/06, John Menke <[EMAIL PROTECTED]> wrote:
>
> Has anyone seen this error?  We are getting sporadically on our site:
>
> org.apache.hivemind.ApplicationRuntimeException: Unable to decode
stream:
> Unexpected end of ZLIB input stream
> at
>
>

org.apache.tapestry.services.impl.LinkFactoryImpl.extractListenerParameters
> (
> LinkFactoryImpl.java:185)
> at
>
>

$LinkFactory_10cb01fc87a.extractListenerParameters($LinkFactory_10cb01fc87a.
java)
> at org.apache.tapestry.engine.DirectService.service(
DirectService.java
> :130)
> at
> $IEngineService_10cb01fc902.service($IEngineService_10cb01fc902.java)
> at org.apache.tapestry.services.impl.EngineServiceOuterProxy.service
(
> EngineServiceOuterProxy.java:66)
> at org.apache.tapestry.engine.AbstractEngine.service(
> AbstractEngine.java
> :248)
> at org.apache.tapestry.services.impl.InvokeEngineTerminator.service(
> InvokeEngineTerminator.java:60)
> at
>
>

$WebRequestServicer_10cb01fc8e0.service($WebRequestServicer_10cb01fc8e0.java
)
> at
>
>

$WebRequestServicer_10cb01fc8dc.service($WebRequestServicer_10cb01fc8dc.java
)
> at
>
org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service
> (
> WebRequestServicerPipelineBridge.java:56)
> at
>
>

$ServletRequestServicer_10cb01fc8c0.service($ServletRequestServicer_10cb01fc
8c0.java)
> at org.apache.tapestry.request.DecodedRequestInjector.service(
> DecodedRequestInjector.java:55)
> at
>
>

$ServletRequestServicerFilter_10cb01fc8bc.service($ServletRequestServicerFil
ter_10cb01fc8bc.java)
> at
>
>

$ServletRequestServicer_10cb01fc8c2.service($ServletRequestServicer_10cb01fc
8c2.java)
> at org.apache.tapestry.multipart.MultipartDecoderFilter.service(
> MultipartDecoderFilter.java:52)
> at
>
>

$ServletRequestServicerFilter_10cb01fc8ba.service($ServletRequestServicerFil
ter_10cb01fc8ba.java)
> at
>
>

$ServletRequestServicer_10cb01fc8c2.service($ServletRequestServicer_10cb01fc
8c2.java)
> at org.apache.tapestry.services.impl.SetupRequestEncoding.service(
> SetupRequestEncoding.java:53)
> at
>
>

$ServletRequestServicerFilter_10cb01fc8be.service($ServletRequestServicerFil
ter_10cb01fc8be.java)
> at
>
>

$ServletRequestServicer_10cb01fc8c2.service($ServletRequestServicer_10cb01fc
8c2.java)
> at
>
>

$ServletRequestServicer_10cb01fc8b4.service($ServletRequestServicer_10cb01fc
8b4.java)
> at org.apache.tapestry.ApplicationServlet.doService(
> ApplicationServlet.java:123)
> at org.apache.tapestry.ApplicationServlet.doGet(
> ApplicationServlet.java
> :79)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> ApplicationFilterChain.java:252)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:173)
> at
>
>

org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterI
nternal
> (OpenSessionInViewFilter.java:174)
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(
> OncePerRequestFilter.java:76)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> ApplicationFilterChain.java:202)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:173)
> at org.apache.catalina.core.StandardWrapperValve.invoke(
> StandardWrapperValve.java:213)
> at org.apache.catalina.core.StandardContextValve.invoke(
> StandardContextValve.java:178)
> at org.apache.catalina.core.StandardHostValve.invoke(
> StandardHostValve.java:126)
> at org.apache.catalina.valves.ErrorReportValve.invoke(
> ErrorReportValve.java:105)
> at org.apache.catalina.core.StandardEngineValve.invoke(
> StandardEngineValve.java:107)
> at org.apache.catalina.connector.CoyoteAdapter.service(
> CoyoteAdapter.jav

Unable to decode stream: Unexpected end of ZLIB input stream

2006-08-03 Thread John Menke

Has anyone seen this error?  We are getting sporadically on our site:

org.apache.hivemind.ApplicationRuntimeException: Unable to decode stream:
Unexpected end of ZLIB input stream
   at
org.apache.tapestry.services.impl.LinkFactoryImpl.extractListenerParameters(
LinkFactoryImpl.java:185)
   at
$LinkFactory_10cb01fc87a.extractListenerParameters($LinkFactory_10cb01fc87a.java)
   at org.apache.tapestry.engine.DirectService.service(DirectService.java
:130)
   at $IEngineService_10cb01fc902.service($IEngineService_10cb01fc902.java)
   at org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(
EngineServiceOuterProxy.java:66)
   at org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java
:248)
   at org.apache.tapestry.services.impl.InvokeEngineTerminator.service(
InvokeEngineTerminator.java:60)
   at
$WebRequestServicer_10cb01fc8e0.service($WebRequestServicer_10cb01fc8e0.java)
   at
$WebRequestServicer_10cb01fc8dc.service($WebRequestServicer_10cb01fc8dc.java)
   at
org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(
WebRequestServicerPipelineBridge.java:56)
   at
$ServletRequestServicer_10cb01fc8c0.service($ServletRequestServicer_10cb01fc8c0.java)
   at org.apache.tapestry.request.DecodedRequestInjector.service(
DecodedRequestInjector.java:55)
   at
$ServletRequestServicerFilter_10cb01fc8bc.service($ServletRequestServicerFilter_10cb01fc8bc.java)
   at
$ServletRequestServicer_10cb01fc8c2.service($ServletRequestServicer_10cb01fc8c2.java)
   at org.apache.tapestry.multipart.MultipartDecoderFilter.service(
MultipartDecoderFilter.java:52)
   at
$ServletRequestServicerFilter_10cb01fc8ba.service($ServletRequestServicerFilter_10cb01fc8ba.java)
   at
$ServletRequestServicer_10cb01fc8c2.service($ServletRequestServicer_10cb01fc8c2.java)
   at org.apache.tapestry.services.impl.SetupRequestEncoding.service(
SetupRequestEncoding.java:53)
   at
$ServletRequestServicerFilter_10cb01fc8be.service($ServletRequestServicerFilter_10cb01fc8be.java)
   at
$ServletRequestServicer_10cb01fc8c2.service($ServletRequestServicer_10cb01fc8c2.java)
   at
$ServletRequestServicer_10cb01fc8b4.service($ServletRequestServicer_10cb01fc8b4.java)
   at org.apache.tapestry.ApplicationServlet.doService(
ApplicationServlet.java:123)
   at org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java
:79)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:252)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173)
   at
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal
(OpenSessionInViewFilter.java:174)
   at org.springframework.web.filter.OncePerRequestFilter.doFilter(
OncePerRequestFilter.java:76)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:202)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173)
   at org.apache.catalina.core.StandardWrapperValve.invoke(
StandardWrapperValve.java:213)
   at org.apache.catalina.core.StandardContextValve.invoke(
StandardContextValve.java:178)
   at org.apache.catalina.core.StandardHostValve.invoke(
StandardHostValve.java:126)
   at org.apache.catalina.valves.ErrorReportValve.invoke(
ErrorReportValve.java:105)
   at org.apache.catalina.core.StandardEngineValve.invoke(
StandardEngineValve.java:107)
   at org.apache.catalina.connector.CoyoteAdapter.service(
CoyoteAdapter.java:148)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:869)
   at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection
(Http11BaseProtocol.java:667)
   at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
PoolTcpEndpoint.java:527)
   at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(
LeaderFollowerWorkerThread.java:80)
   at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
ThreadPool.java:684)
   at java.lang.Thread.run(Thread.java:595)
Caused by: org.apache.hivemind.ApplicationRuntimeException: Unable to decode
stream: Unexpected end of ZLIB input stream
   at org.apache.tapestry.util.io.SerializableAdaptor.unsqueeze(
SerializableAdaptor.java:127)
   at
$SqueezeAdaptor_10cb01fc9b5.unsqueeze($SqueezeAdaptor_10cb01fc9b5.java)
   at org.apache.tapestry.util.io.DataSqueezerImpl.unsqueeze(
DataSqueezerImpl.java:179)
   at org.apache.tapestry.util.io.DataSqueezerImpl.unsqueeze(
DataSqueezerImpl.java:199)
   at $DataSqueezer_10cb01fc878.unsqueeze($DataSqueezer_10cb01fc878.java)
   at
org.apache.tapestry.services.impl.LinkFactoryImpl.extractListenerParameters(
LinkFactoryImpl.java:181)
   ... 42 more
Caused by: java.io.EOFException: Unexpected end of ZLIB input stream
   at java.util.zip.InflaterInputStream.fill(InflaterInputStream.java:216)
   at java.util

Re: Tapestry / Spring / Hibernate / Tomcat strange error

2006-08-03 Thread John Menke

I will try to see if I can isolate the IP address.  Thanks for your advice

On 8/3/06, James Carman <[EMAIL PROTECTED]> wrote:


Do you have an access log?  Maybe you can see where these requests are
coming from.  It very well could be someone trying to hack your site.


-Original Message-
From: John Menke [mailto:[EMAIL PROTECTED]
Sent: Thursday, August 03, 2006 11:27 AM
To: Tapestry users
Subject: Re: Tapestry / Spring / Hibernate / Tomcat strange error

We have no urls like this.  I'm starting to suspect that it's somebody
trying to hack

On 8/3/06, Ron Piterman <[EMAIL PROTECTED]> wrote:
>
> I would check your urls: you probably try to access an engine service
> which does not exist. either through an url or when generating a link?
> check the url which generates this exception, specifically the service=
> parameter ( if using roude URLs ).
> If you are using fiendly URLs, try to see which encoder makes problems.
> Cheers,
> Ron
>
>
> John Menke wrote:
> > We are getting the following error sporadically.  Can anyone shed any
> light
> > on this for us?
> >
> > org.apache.hivemind.ApplicationRuntimeException: No engine service
> > named  *(arbitrary
> > string here - usually a bogus email address)*
> >
> > at org.apache.tapestry.services.impl.ServiceMapImpl.buildProxy(
> > ServiceMapImpl.java:143)
> >
> > at org.apache.tapestry.services.impl.ServiceMapImpl.getService(
> > ServiceMapImpl.java:105)
> >
> > at $ServiceMap_10cb01fc8b0.getService($ServiceMap_10cb01fc8b0.java)
> >
> > at
> > org.apache.tapestry.engine.RequestCycle.getService(RequestCycle.java
> :202)
> >
> > at org.apache.tapestry.engine.AbstractEngine.service(
AbstractEngine.java
> > :241)
> >
> > at org.apache.tapestry.services.impl.InvokeEngineTerminator.service(
> > InvokeEngineTerminator.java:60)
> >
> > at
> >
>

$WebRequestServicer_10cb01fc8e0.service($WebRequestServicer_10cb01fc8e0.java
)
> >
> >
> > at
> >
>

$WebRequestServicer_10cb01fc8dc.service($WebRequestServicer_10cb01fc8dc.java
)
> >
> >
> > at
> >
>
org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service
> (
> > WebRequestServicerPipelineBridge.java:56)
> >
> > at
> >
>

$ServletRequestServicer_10cb01fc8c0.service($ServletRequestServicer_10cb01fc
8c0.java)
> >
> >
> > at org.apache.tapestry.request.DecodedRequestInjector.service(
> > DecodedRequestInjector.java:55)
> >
> > at
> >
>

$ServletRequestServicerFilter_10cb01fc8bc.service($ServletRequestServicerFil
ter_10cb01fc8bc.java)
> >
> >
> > at
> >
>

$ServletRequestServicer_10cb01fc8c2.service($ServletRequestServicer_10cb01fc
8c2.java)
> >
> >
> > at org.apache.tapestry.multipart.MultipartDecoderFilter.service(
> > MultipartDecoderFilter.java:52)
> >
> > at
> >
>

$ServletRequestServicerFilter_10cb01fc8ba.service($ServletRequestServicerFil
ter_10cb01fc8ba.java)
> >
> >
> > at
> >
>

$ServletRequestServicer_10cb01fc8c2.service($ServletRequestServicer_10cb01fc
8c2.java)
> >
> >
> > at org.apache.tapestry.services.impl.SetupRequestEncoding.service(
> > SetupRequestEncoding.java:53)
> >
> > at
> >
>

$ServletRequestServicerFilter_10cb01fc8be.service($ServletRequestServicerFil
ter_10cb01fc8be.java)
> >
> >
> > at
> >
>

$ServletRequestServicer_10cb01fc8c2.service($ServletRequestServicer_10cb01fc
8c2.java)
> >
> >
> > at
> >
>

$ServletRequestServicer_10cb01fc8b4.service($ServletRequestServicer_10cb01fc
8b4.java)
> >
> >
> > at org.apache.tapestry.ApplicationServlet.doService(
> ApplicationServlet.java
> > :123)
> >
> > at org.apache.tapestry.ApplicationServlet.doPost(
ApplicationServlet.java
> > :168)
> >
> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
> >
> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> >
> > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> > ApplicationFilterChain.java:252)
> >
> > at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> > ApplicationFilterChain.java:173)
> >
> > at
> >
>

org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterI
nternal
> >
> > (OpenSessionInViewFilter.java:174)
> >
> > at org.springframework.web.filter.OncePerRequestFilter.doFilter(
> > OncePerRequestFilter.java:76)
> >
> > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> > App

Re: Tapestry / Spring / Hibernate / Tomcat strange error

2006-08-03 Thread John Menke

We have no urls like this.  I'm starting to suspect that it's somebody
trying to hack

On 8/3/06, Ron Piterman <[EMAIL PROTECTED]> wrote:


I would check your urls: you probably try to access an engine service
which does not exist. either through an url or when generating a link?
check the url which generates this exception, specifically the service=
parameter ( if using roude URLs ).
If you are using fiendly URLs, try to see which encoder makes problems.
Cheers,
Ron


John Menke wrote:
> We are getting the following error sporadically.  Can anyone shed any
light
> on this for us?
>
> org.apache.hivemind.ApplicationRuntimeException: No engine service
> named  *(arbitrary
> string here - usually a bogus email address)*
>
> at org.apache.tapestry.services.impl.ServiceMapImpl.buildProxy(
> ServiceMapImpl.java:143)
>
> at org.apache.tapestry.services.impl.ServiceMapImpl.getService(
> ServiceMapImpl.java:105)
>
> at $ServiceMap_10cb01fc8b0.getService($ServiceMap_10cb01fc8b0.java)
>
> at
> org.apache.tapestry.engine.RequestCycle.getService(RequestCycle.java
:202)
>
> at org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java
> :241)
>
> at org.apache.tapestry.services.impl.InvokeEngineTerminator.service(
> InvokeEngineTerminator.java:60)
>
> at
>
$WebRequestServicer_10cb01fc8e0.service($WebRequestServicer_10cb01fc8e0.java)
>
>
> at
>
$WebRequestServicer_10cb01fc8dc.service($WebRequestServicer_10cb01fc8dc.java)
>
>
> at
>
org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service
(
> WebRequestServicerPipelineBridge.java:56)
>
> at
>
$ServletRequestServicer_10cb01fc8c0.service($ServletRequestServicer_10cb01fc8c0.java)
>
>
> at org.apache.tapestry.request.DecodedRequestInjector.service(
> DecodedRequestInjector.java:55)
>
> at
>
$ServletRequestServicerFilter_10cb01fc8bc.service($ServletRequestServicerFilter_10cb01fc8bc.java)
>
>
> at
>
$ServletRequestServicer_10cb01fc8c2.service($ServletRequestServicer_10cb01fc8c2.java)
>
>
> at org.apache.tapestry.multipart.MultipartDecoderFilter.service(
> MultipartDecoderFilter.java:52)
>
> at
>
$ServletRequestServicerFilter_10cb01fc8ba.service($ServletRequestServicerFilter_10cb01fc8ba.java)
>
>
> at
>
$ServletRequestServicer_10cb01fc8c2.service($ServletRequestServicer_10cb01fc8c2.java)
>
>
> at org.apache.tapestry.services.impl.SetupRequestEncoding.service(
> SetupRequestEncoding.java:53)
>
> at
>
$ServletRequestServicerFilter_10cb01fc8be.service($ServletRequestServicerFilter_10cb01fc8be.java)
>
>
> at
>
$ServletRequestServicer_10cb01fc8c2.service($ServletRequestServicer_10cb01fc8c2.java)
>
>
> at
>
$ServletRequestServicer_10cb01fc8b4.service($ServletRequestServicer_10cb01fc8b4.java)
>
>
> at org.apache.tapestry.ApplicationServlet.doService(
ApplicationServlet.java
> :123)
>
> at org.apache.tapestry.ApplicationServlet.doPost(ApplicationServlet.java
> :168)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> ApplicationFilterChain.java:252)
>
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:173)
>
> at
>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal
>
> (OpenSessionInViewFilter.java:174)
>
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(
> OncePerRequestFilter.java:76)
>
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> ApplicationFilterChain.java:202)
>
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:173)
>
> at org.apache.catalina.core.StandardWrapperValve.invoke(
> StandardWrapperValve.java:213)
>
> at org.apache.catalina.core.StandardContextValve.invoke(
> StandardContextValve.java:178)
>
> at org.apache.catalina.core.StandardHostValve.invoke(
StandardHostValve.java
> :126)
>
> at org.apache.catalina.valves.ErrorReportValve.invoke(
ErrorReportValve.java
> :105)
>
> at org.apache.catalina.core.StandardEngineValve.invoke(
> StandardEngineValve.java:107)
>
> at org.apache.catalina.connector.CoyoteAdapter.service(
CoyoteAdapter.java
> :148)
>
> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
> :869)
>
> at
>
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection
>
> (Http11BaseProtocol.java:667)
>
> at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
> PoolTcpEndpoint.java:527)
>
> at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(
> LeaderFollowerWorkerThread.java:80)
>
> at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
> ThreadPool.java:684)
>
> at java.lang.Thread.run(Thread.java:595)
>


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




Tapestry / Spring / Hibernate / Tomcat strange error

2006-08-03 Thread John Menke

We are getting the following error sporadically.  Can anyone shed any light
on this for us?

org.apache.hivemind.ApplicationRuntimeException: No engine service
named  *(arbitrary
string here - usually a bogus email address)*

at org.apache.tapestry.services.impl.ServiceMapImpl.buildProxy(
ServiceMapImpl.java:143)

at org.apache.tapestry.services.impl.ServiceMapImpl.getService(
ServiceMapImpl.java:105)

at $ServiceMap_10cb01fc8b0.getService($ServiceMap_10cb01fc8b0.java)

at org.apache.tapestry.engine.RequestCycle.getService(RequestCycle.java:202)

at org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java
:241)

at org.apache.tapestry.services.impl.InvokeEngineTerminator.service(
InvokeEngineTerminator.java:60)

at
$WebRequestServicer_10cb01fc8e0.service($WebRequestServicer_10cb01fc8e0.java)

at
$WebRequestServicer_10cb01fc8dc.service($WebRequestServicer_10cb01fc8dc.java)

at
org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(
WebRequestServicerPipelineBridge.java:56)

at
$ServletRequestServicer_10cb01fc8c0.service($ServletRequestServicer_10cb01fc8c0.java)

at org.apache.tapestry.request.DecodedRequestInjector.service(
DecodedRequestInjector.java:55)

at
$ServletRequestServicerFilter_10cb01fc8bc.service($ServletRequestServicerFilter_10cb01fc8bc.java)

at
$ServletRequestServicer_10cb01fc8c2.service($ServletRequestServicer_10cb01fc8c2.java)

at org.apache.tapestry.multipart.MultipartDecoderFilter.service(
MultipartDecoderFilter.java:52)

at
$ServletRequestServicerFilter_10cb01fc8ba.service($ServletRequestServicerFilter_10cb01fc8ba.java)

at
$ServletRequestServicer_10cb01fc8c2.service($ServletRequestServicer_10cb01fc8c2.java)

at org.apache.tapestry.services.impl.SetupRequestEncoding.service(
SetupRequestEncoding.java:53)

at
$ServletRequestServicerFilter_10cb01fc8be.service($ServletRequestServicerFilter_10cb01fc8be.java)

at
$ServletRequestServicer_10cb01fc8c2.service($ServletRequestServicer_10cb01fc8c2.java)

at
$ServletRequestServicer_10cb01fc8b4.service($ServletRequestServicer_10cb01fc8b4.java)

at org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java
:123)

at org.apache.tapestry.ApplicationServlet.doPost(ApplicationServlet.java
:168)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:252)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173)

at
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal
(OpenSessionInViewFilter.java:174)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(
OncePerRequestFilter.java:76)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:202)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173)

at org.apache.catalina.core.StandardWrapperValve.invoke(
StandardWrapperValve.java:213)

at org.apache.catalina.core.StandardContextValve.invoke(
StandardContextValve.java:178)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:126)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:105)

at org.apache.catalina.core.StandardEngineValve.invoke(
StandardEngineValve.java:107)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java
:148)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:869)

at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection
(Http11BaseProtocol.java:667)

at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
PoolTcpEndpoint.java:527)

at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(
LeaderFollowerWorkerThread.java:80)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
ThreadPool.java:684)

at java.lang.Thread.run(Thread.java:595)


link to Service gettting ampersands encoded and fouling up my query parameters

2006-07-19 Thread John Menke

I create a url string which i use as src to an IFrame.  This url points to a
Tapestry service.  I have been having problems with the parameters being
encoded incorrectly intermittently.


Ampersands end up getting encoded like this:



http://mysite.com?service=MyService&acco
untID=1603272555&eventID=1780&


Can i prevent tapestry from encoding the params in a link?


Number Translator and Commas

2006-06-30 Thread John Menke

 I am trying to do this:




but i get the error


Class org.apache.tapestry.form.translator.NumberTranslator does not contain
a property named '###.##''.

It seems that the comma is being intepreted as marking a new property.  Is
there any way to specifiy commas in the pattern?

-john


Re: strange problem losing session variables

2006-06-08 Thread John Menke

We are getting null values so the values are being lost it's not sync
problem.

On 6/7/06, Henri Dupre <[EMAIL PROTECTED]> wrote:


Maybe synchronization glitches can be the cause? nothing prevents a user
from firing two concurrent requests that would both modify your session
objects at the same time.





On 6/7/06, John Menke <[EMAIL PROTECTED]> wrote:
>
> Peter it's definitely storing them... This problem is sporadic... we
can't
> reproduce - only we see the errors in the log
>
> On 6/5/06, Peter Dawn <[EMAIL PROTECTED]> wrote:
> >
> > perhaps your variable is not being stored in the first place. i used
> > to get the same errors and then i realised that my original code was
> > not storing the variables in the first place. make sure that your code
> > is storing session variables in the first place.
> >
> > -
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
>


--
Thanks,

Henri.




Re: strange problem losing session variables

2006-06-07 Thread John Menke

Peter it's definitely storing them... This problem is sporadic... we can't
reproduce - only we see the errors in the log

On 6/5/06, Peter Dawn <[EMAIL PROTECTED]> wrote:


perhaps your variable is not being stored in the first place. i used
to get the same errors and then i realised that my original code was
not storing the variables in the first place. make sure that your code
is storing session variables in the first place.

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




Re: strange problem losing session variables

2006-06-07 Thread John Menke

We are using Tapestry 4

On 6/6/06, Henri Dupre <[EMAIL PROTECTED]> wrote:


Yes we have been experienced those... Are you using tapestry 3 or tapestry
4? Which servlet engine?
Since we switched to tapestry 4, we have seen way less of these...
And I'm 99% positive this has not anything to do with the code.


On 6/5/06, John Menke <[EMAIL PROTECTED]> wrote:
>
> Is anyone experiencing any problems with "lost" session variables?  We
> have
> an application that stores some state in the session and we are getting
> strange errors caused by objects that were
> previously being in the session being "lost".  When our code tries to
> access
> these variables it gives nullpointer errors.
>
> What is strange is that the session is not being lost itself - if this
was
> the case the StaleSession page would appear via tapestry...
>
> -jm
>
>


--
Thanks,

Henri.




strange problem losing session variables

2006-06-05 Thread John Menke

Is anyone experiencing any problems with "lost" session variables?  We have
an application that stores some state in the session and we are getting
strange errors caused by objects that were
previously being in the session being "lost".  When our code tries to access
these variables it gives nullpointer errors.

What is strange is that the session is not being lost itself - if this was
the case the StaleSession page would appear via tapestry...

-jm


TableView add remove column at runtime?

2006-05-09 Thread John Menke

How can you add or remove a column at runtime with the tableView component?

-jm