Author: nbelaevski
Date: 2008-08-20 15:23:49 -0400 (Wed, 20 Aug 2008)
New Revision: 10152
Modified:
trunk/framework/impl/src/main/java/org/ajax4jsf/application/AjaxStateManager.java
Log:
https://jira.jboss.org/jira/browse/RF-4235
Modified:
trunk/framework/impl/src/main/java/org/ajax4jsf/application/AjaxStateManager.java
===================================================================
---
trunk/framework/impl/src/main/java/org/ajax4jsf/application/AjaxStateManager.java 2008-08-20
19:03:47 UTC (rev 10151)
+++
trunk/framework/impl/src/main/java/org/ajax4jsf/application/AjaxStateManager.java 2008-08-20
19:23:49 UTC (rev 10152)
@@ -530,13 +530,27 @@
@SuppressWarnings("unchecked")
protected void restoreAdditionalState(FacesContext context, Object state) {
if (null != state) {
+ boolean isAjax = AjaxContext.getCurrentInstance(context).isAjaxRequest();
+
// Append all saved beans to the request map.
Map beansMap = (Map) UIComponentBase.restoreAttachedState(context,
state);
Map<String, Object> requestMap = context.getExternalContext()
.getRequestMap();
for (Object key : beansMap.keySet()) {
- requestMap.put((String) key, beansMap.get(key));
+ Object bean = beansMap.get(key);
+ if (bean != null) {
+ KeepAlive annotation = bean.getClass().getAnnotation(KeepAlive.class);
+ if (annotation != null) {
+ if (!isAjax && annotation.ajaxOnly()) {
+
+ //skip ajax-only beans for non-ajax requests
+ continue;
+ }
+ }
+ }
+
+ requestMap.put((String) key, bean);
}
}
}