[richfaces-svn-commits] JBoss Rich Faces SVN: r4943 - in trunk/framework/impl/src/main: javascript/ajaxjsf and 1 other directory.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Thu Dec 20 15:55:21 EST 2007


Author: alexsmirnov
Date: 2007-12-20 15:55:21 -0500 (Thu, 20 Dec 2007)
New Revision: 4943

Modified:
   trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/BaseFilter.java
   trunk/framework/impl/src/main/javascript/ajaxjsf/JSFAJAX.js
Log:
Fix JavaScript AJAX.push code , and change empty events response code to 202, for fix issue http://jira.jboss.com/jira/browse/RF-1753

Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/BaseFilter.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/BaseFilter.java	2007-12-20 18:46:05 UTC (rev 4942)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/BaseFilter.java	2007-12-20 20:55:21 UTC (rev 4943)
@@ -237,9 +237,12 @@
 						&& null != ajaxPushHeader) {
 					PushEventsCounter listener = eventsManager
 							.getListener(ajaxPushHeader);
+					// To avoid XmlHttpRequest parsing exceptions.
+					httpServletResponse.setContentType("text/plain");
+					httpServletResponse.setContentLength(0);
 					if (listener.isPerformed()) {
 						listener.processed();
-						httpServletResponse.setStatus(200);
+						httpServletResponse.setStatus(HttpServletResponse.SC_OK);
 						if (log.isDebugEnabled()) {
 							log
 									.debug("Occurs event for a id "
@@ -247,7 +250,7 @@
 						}
 					} else {
 						// Response code - 'No content'
-						httpServletResponse.setStatus(204);
+						httpServletResponse.setStatus(HttpServletResponse.SC_ACCEPTED);
 						if (log.isDebugEnabled()) {
 							log.debug("No event for a id " + ajaxPushHeader);
 						}

Modified: trunk/framework/impl/src/main/javascript/ajaxjsf/JSFAJAX.js
===================================================================
--- trunk/framework/impl/src/main/javascript/ajaxjsf/JSFAJAX.js	2007-12-20 18:46:05 UTC (rev 4942)
+++ trunk/framework/impl/src/main/javascript/ajaxjsf/JSFAJAX.js	2007-12-20 20:55:21 UTC (rev 4943)
@@ -235,8 +235,12 @@
 			LOG.debug("selectNodes found "+elements.length);
 	    }
 	    catch (ex) {
-			elements = element.getElementsByTagName(elementname);
-			LOG.debug("getElementsByTagName found "+elements.length);	    	
+	    	try {
+				elements = element.getElementsByTagName(elementname);
+				LOG.debug("getElementsByTagName found "+elements.length);	    	
+	    	} catch(nf){
+				LOG.debug("getElementsByTagName found no elements, "+nf.Message);	    		    		
+	    	}
 	    }
 //	    return document.getElementsByTagName(tagName);
 //		elements = element.getElementsByTagNameNS("http://www.w3.org/1999/xhtml",elementname);
@@ -513,18 +517,16 @@
 		      	if (request.readyState == 4  ) {
 		      		try {
 		      		if(request.status == 200){
-//		      			A4J.AJAX._pollers[options.pushId]=undefined;
 				        A4J.AJAX.SubmitRequest(containerId,form||options.dummyForm,null,options);
 		      		}
 		      		} catch(e){
 		      			// Network error.
 		      		}
+		      		// Clear variables.
+		      		request=null;
+					A4J.AJAX._pollers[options.pushId] = null;
 		      		// Re-send request.
 		      		A4J.AJAX.Push( containerId, form, options );
-		      		request=null;
-//					A4J.AJAX._pollers[options.pushId] = window.setTimeout(function(){
-//						A4J.AJAX.SendPush( request,options );
-//					},options.pushinterval);
 		      	}
 		}
 		A4J.AJAX.SendPush( request,options );
@@ -538,13 +540,13 @@
 		if(options.timeout){
 			request.setRequestHeader( "Timeout", options.timeout);			
 		}
-		request.send();	
+		request.send(null);	
 }
 
 A4J.AJAX.StopPush =  function( Id ) {
 	if(A4J.AJAX._pollers[Id]){
 		window.clearTimeout(A4J.AJAX._pollers[Id]);
-		A4J.AJAX._pollers[Id] = undefined;
+		A4J.AJAX._pollers[Id] = null;
 	}
 };
 




More information about the richfaces-svn-commits mailing list