My web application is developed with Struts2 and it was working fine till recently. All of a sudden one of the modules has started malfunctioning.
The malfunctioning module is 'Update Student details' page. This page has a lot of fields like 'schoolName', 'degreeName', etc .
School 1: <input name="schoolName">
School 2: <input name="schoolName">
.....
School n: <input name="schoolName">
As mentioned earlier, the page was working perfectly fine till recently. Now, one/many of the values of 'schoolName', 'degreeName', etc are being received as "" (EMPTY STRING) on the server-side.
For debugging, I used firebug and remote-debugging in eclipse. I find that the post-parameters are correct on the client-side. For instance, during one of the submissions the post-parameters were as below (i noted them from firebug).
Texas Institute
-----------------------------2921238217421
Content-Disposition: form-data; name="schoolName"
XXXX School
-----------------------------2921238217421--
But on the server-side, the request params were as below:
schoolName=[ABC Institute, Test School, XYZ, , XXXX School],
"Texas Institute" was received as "" (EMPTY STRING) in this particular case. This is not happening consistently. The parameters that become NULL (or EMPTY STRING) seem random to me - during one instance, parameter schoolName[3] became null as illustrated above, parameter schoolName[2] became null during yet another submission, etc. At times, none of the parameters are nullified.
The following is the list of the interceptors in the action definition.
List of interceptors:
----------------------
FileUploadInterceptor org.apache.struts2.interceptor.FileUploadInterceptor
ServletConfigInterceptor org.apache.struts2.interceptor.ServletConfigInterceptor
StaticParametersInterceptor com.opensymphony.xwork2.interceptor.StaticParametersInterceptor
ParametersInterceptor com.opensymphony.xwork2.interceptor.ParametersInterceptor
MyCustomInterceptor com.xxxx.yyyy.interceptors.GetLoggedOnUserInterceptor
This issue appears rather weird to me and I have not been able to zero-in on the exact cause of the issue. Any help in this regard would be highly appreciated. Thanks in advance.
What changed? Did you upgrade anything? Change code? Configs?
Raghuram Duraisamy
Greenhorn
Joined: Dec 27, 2009
Posts: 5
posted
0
Hi David,
Sorry for the late reply - was held up elsewhere.
What changed? Did you upgrade anything? Change code? Configs?
I upgraded commons-beanutils from 1.6 to 1.8. But after the issue turned up, i degraded back to 1.6 to check whether this was the cause. But parameters are getting lost even with beanutils1.6.
My form sends a multipart request (needed since file upload is enabled on the form). I decided to log the post-data that comes to the server. I modified RequestDumperFilter.java to log the multipart post data. After i added this filter, the parameter loss issue seems to have ceased (0 loss out of 150 submissions of form). I removed the filter and was able to reproduce the issue again.
You'll have to show some configuration or something; I don't have enough information to help.
Stephen Grepnal
Greenhorn
Joined: Apr 19, 2011
Posts: 1
posted
0
Hi, have you found a reason of the given behavior? Actually, I have the same bug, and your fix with RequestDumperFilter works for me also, but it is weird.
I agree. Here's the link: http://ej-technologies/jprofiler - if it wasn't for jprofiler, we would need to
run our stuff on 16 servers instead of 3.
subject: Post parameters are becoming null (at random)