Author: nbelaevski
Date: 2011-02-09 09:11:59 -0500 (Wed, 09 Feb 2011)
New Revision: 21563
Modified:
branches/4.0.0.M6/core/api/src/main/java/org/richfaces/application/push/Session.java
branches/4.0.0.M6/core/impl/src/main/java/org/richfaces/application/push/impl/AbstractSession.java
branches/4.0.0.M6/core/impl/src/main/java/org/richfaces/application/push/impl/AtmospherePushHandler.java
branches/4.0.0.M6/core/impl/src/main/java/org/richfaces/application/push/impl/SessionManagerImpl.java
Log:
https://issues.jboss.org/browse/RF-10457
Modified:
branches/4.0.0.M6/core/api/src/main/java/org/richfaces/application/push/Session.java
===================================================================
---
branches/4.0.0.M6/core/api/src/main/java/org/richfaces/application/push/Session.java 2011-02-09
13:20:59 UTC (rev 21562)
+++
branches/4.0.0.M6/core/api/src/main/java/org/richfaces/application/push/Session.java 2011-02-09
14:11:59 UTC (rev 21563)
@@ -51,6 +51,4 @@
public void invalidate();
- public void destroy();
-
}
Modified:
branches/4.0.0.M6/core/impl/src/main/java/org/richfaces/application/push/impl/AbstractSession.java
===================================================================
---
branches/4.0.0.M6/core/impl/src/main/java/org/richfaces/application/push/impl/AbstractSession.java 2011-02-09
13:20:59 UTC (rev 21562)
+++
branches/4.0.0.M6/core/impl/src/main/java/org/richfaces/application/push/impl/AbstractSession.java 2011-02-09
14:11:59 UTC (rev 21563)
@@ -26,6 +26,7 @@
import org.richfaces.application.push.Request;
import org.richfaces.application.push.Session;
import org.richfaces.application.push.SessionManager;
+import org.richfaces.application.push.impl.SessionManagerImpl.DestroyableSession;
import org.richfaces.log.Logger;
import org.richfaces.log.RichfacesLogger;
@@ -33,7 +34,7 @@
* @author Nick Belaevski
*
*/
-public abstract class AbstractSession implements Session {
+public abstract class AbstractSession implements Session, DestroyableSession {
private static final Logger LOGGER = RichfacesLogger.APPLICATION.getLogger();
Modified:
branches/4.0.0.M6/core/impl/src/main/java/org/richfaces/application/push/impl/AtmospherePushHandler.java
===================================================================
---
branches/4.0.0.M6/core/impl/src/main/java/org/richfaces/application/push/impl/AtmospherePushHandler.java 2011-02-09
13:20:59 UTC (rev 21562)
+++
branches/4.0.0.M6/core/impl/src/main/java/org/richfaces/application/push/impl/AtmospherePushHandler.java 2011-02-09
14:11:59 UTC (rev 21563)
@@ -96,7 +96,8 @@
resp.setContentType("text/plain");
try {
- session.connect(createRequest(resource, session));
+ Request request = createRequest(resource, session);
+ request.suspend();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Modified:
branches/4.0.0.M6/core/impl/src/main/java/org/richfaces/application/push/impl/SessionManagerImpl.java
===================================================================
---
branches/4.0.0.M6/core/impl/src/main/java/org/richfaces/application/push/impl/SessionManagerImpl.java 2011-02-09
13:20:59 UTC (rev 21562)
+++
branches/4.0.0.M6/core/impl/src/main/java/org/richfaces/application/push/impl/SessionManagerImpl.java 2011-02-09
14:11:59 UTC (rev 21563)
@@ -40,13 +40,21 @@
private static final Logger LOGGER = RichfacesLogger.APPLICATION.getLogger();
+ interface DestroyableSession {
+
+ public void destroy();
+
+ }
+
private final class SessionsExpirationRunnable implements Runnable {
public void run() {
while (true) {
try {
Session session = sessionQueue.take();
sessionMap.remove(session.getId());
- session.destroy();
+ if (session instanceof DestroyableSession) {
+ ((DestroyableSession) session).destroy();
+ }
} catch (InterruptedException e) {
LOGGER.error(e.getMessage(), e);
}
@@ -75,7 +83,9 @@
for (Iterator<Session> sessionsItr = sessionMap.values().iterator();
sessionsItr.hasNext(); ) {
Session session = sessionsItr.next();
- session.destroy();
+ if (session instanceof DestroyableSession) {
+ ((DestroyableSession) session).destroy();
+ }
}
}