Antonio, I have tested the patch suggested by Matt Hughes at
http://issues.apache.org/struts/browse/SHALE-409.
And does work.
I have modified the private method afterRenderResponse of
ViewPhaseListener class:
private void afterRenderResponse(PhaseEvent event) {
// Initialize local values we will need
Map map =
event.getFacesContext().getExternalContext().getRequestMap();
// Remove our list of initialized views explicitly
map.remove(FacesConstants.VIEWS_INITIALIZED);
List list = new ArrayList();
Iterator entries = map.entrySet().iterator();
// First select all the ViewController and AbstractRequestBean
instances
while (entries.hasNext()) {
Map.Entry entry = (Map.Entry) entries.next();
if ((entry.getValue() instanceof ViewController)
|| (entry.getValue() instanceof AbstractRequestBean)) {
list.add(entry.getKey());
}
}
// Second select all remaining instances, which will include
annotated
// managed beans if Shale Tiger is present
/* COMMENTED BY BUONOPANE
entries = map.entrySet().iterator();
while (entries.hasNext()) {
Map.Entry entry = (Map.Entry) entries.next();
if (!list.contains(entry.getKey())) {
list.add(entry.getKey());
}
}*/
// Iterate through the keys in the specified order, removing the
// corresponding request scope attribute instances
Iterator keys = list.iterator();
while (keys.hasNext()) {
String key = (String) keys.next();
try {
log.info("******** removing "+key);
map.remove(key);
} catch (Exception e) {
handleException(event.getFacesContext(), e);
}
}
}
I have just commented the line the second loop identified by the string
COMMENTED BY BUONOPANE.
As you can see I also have logged the key of the objects removed and
following are the keys deleted by the original version:
******** removing __acegi_session_integration_filter_applied
******** removing dialog
******** removing org$apache$shale$view$VIEW_POSTBACK
******** removing org.apache.myfaces.myFacesJavascript
******** removing com.ibm.websphere.servlet.uri_non_decoded
******** removing __acegi_filterSecurityInterceptor_filterApplied
******** removing
******** removing generic
******** removing t
******** removing org.apache.myfaces.calendar.JAVASCRIPT_ENCODED
******** removing bundle
******** removing org.apache.shale.view.PHASE_ID
******** removing com.sun.faces.FORM_CLIENT_ID_ATTR
******** removing class
org.apache.myfaces.shared_tomahawk.renderkit.html.util.JavascriptUtils.O
LD_VIEW_ID
******** removing ricerche$ricercaPolizzePage
******** removing org.apache.struts.taglib.tiles.CompContext
******** removing
org.apache.myfaces.application.jsp.JspStateManagerImpl.RESTORED_SERIALIZ
ED_VIEW
******** removing org.apache.myfaces.config.beansUnderConstruction
******** removing javax.faces.webapp.UIComponentTag.UNIQUE_ID_COUNTER
******** removing org.apache.myfaces.AddResourceFactory.CACHE_MAP_KEY
******** removing
org.apache.myfaces.component.html.util.ExtensionFilter.doFilterCalled
******** removing org.apache.myfaces.inputTextHelp.JAVASCRIPT_ENCODED
******** removing jsf_sequence
******** removing com.ibm.servlet.engine.webapp.dispatch_type
The problem is that I don't understand the second loop commented so I
can just comment it.
What do you think?
Mario
-----Original Message-----
From: Antonio Petrelli [mailto:[EMAIL PROTECTED]
Sent: 22 maggio 2007 15.59
To: [email protected]
Subject: Re: SHALE-409 fix
2007/5/22, [EMAIL PROTECTED]
<[EMAIL PROTECTED]>:
>
> Antonio, can i?
> Looking to http://issues.apache.org/struts/browse/SHALE-409 seems to
be
> present the solution. What can I do to write the patch?
With "write" I meant "modify your local version, export a diff file and
post
the newly created patch".
If you post this patch, not only the community will be happy, but most
probably the issue will be fixed in a shorter time than the ones without
patches.
In conclusion, modify your local version and see if it works. In
affirmative
case, create a diff file (through the use of "svn diff") and post it to
the
issue page itself.
Antonio
This message is for the designated recipient only and may contain privileged,
proprietary, or otherwise private information. If you have received it in
error, please notify the sender immediately and delete the original. Any other
use of the email by you is prohibited.