User: jules_gosnell
  Date: 02/01/13 13:30:14

  Modified:    jetty/src/main/org/jboss/jetty/session
                        CoarseDistributedStore.java
                        DistributedHttpSession.java
                        DistributedHttpSessionManager.java
  Log:
  a fixed watchdog ear will now deploy/undeploy happily and tests can be run:
  
       [java]     [gtest] *** 333 TEST(S) PASSED! ***
       [java]     [gtest] *** 9 TEST(S) FAILED! ***
  
  Revision  Changes    Path
  1.2       +15 -11    
contrib/jetty/src/main/org/jboss/jetty/session/CoarseDistributedStore.java
  
  Index: CoarseDistributedStore.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/contrib/jetty/src/main/org/jboss/jetty/session/CoarseDistributedStore.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- CoarseDistributedStore.java       2002/01/13 13:26:45     1.1
  +++ CoarseDistributedStore.java       2002/01/13 21:30:13     1.2
  @@ -5,7 +5,7 @@
    * See terms of license at gnu.org.
    */
   
  -// $Id: CoarseDistributedStore.java,v 1.1 2002/01/13 13:26:45 jules_gosnell Exp $
  +// $Id: CoarseDistributedStore.java,v 1.2 2002/01/13 21:30:13 jules_gosnell Exp $
   
   //----------------------------------------
   
  @@ -94,23 +94,24 @@
     public AbstractHttpSessionData
       get(String id)
     {
  +    if (_home==null)
  +      return null;
  +
       AbstractHttpSessionData data=null;
   
       try
       {
         CoarseHttpSession ejb=_home.findByPrimaryKey(id);
  -      data= ejb.getData();
  -      ejb.remove();
  -      ejb=null;
  +
  +      if (ejb!=null)
  +      {
  +     data= ejb.getData();
  +     ejb.remove();
  +     ejb=null;
  +      }
       }
  -    catch (RemoteException e)
  -    {}
  -    catch (FinderException e)
  +    catch (Throwable e)
       {}
  -    catch (RemoveException e)
  -    {}
  -    catch (Exception e)
  -    {}
   
       return data;
     }
  @@ -124,6 +125,9 @@
     public void
       set(String id, AbstractHttpSessionData data)
     {
  +    if (_home==null)
  +      return;
  +
       try
       {
         CoarseHttpSession ejb=_home.create((CoarseHttpSessionData)data);
  
  
  
  1.2       +9 -2      
contrib/jetty/src/main/org/jboss/jetty/session/DistributedHttpSession.java
  
  Index: DistributedHttpSession.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/contrib/jetty/src/main/org/jboss/jetty/session/DistributedHttpSession.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DistributedHttpSession.java       2002/01/13 13:26:45     1.1
  +++ DistributedHttpSession.java       2002/01/13 21:30:14     1.2
  @@ -136,9 +136,16 @@
     }
   
     //----------------------------------------
  +  // Scavenger thread needs this method...
   
  -  // Greg's API - where does he use it ? Should be inheriting it from
  -  // some interface...
  +  public DistributedHttpSessionManager
  +    getManager()
  +  {
  +    return _manager;
  +  }
  +
  +  //----------------------------------------
  +  // SessionManager API
   
     public void
       access()
  
  
  
  1.2       +50 -21    
contrib/jetty/src/main/org/jboss/jetty/session/DistributedHttpSessionManager.java
  
  Index: DistributedHttpSessionManager.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/contrib/jetty/src/main/org/jboss/jetty/session/DistributedHttpSessionManager.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DistributedHttpSessionManager.java        2002/01/13 13:26:45     1.1
  +++ DistributedHttpSessionManager.java        2002/01/13 21:30:14     1.2
  @@ -5,7 +5,7 @@
    * See terms of license at gnu.org.
    */
   
  -// $Id: DistributedHttpSessionManager.java,v 1.1 2002/01/13 13:26:45 jules_gosnell 
Exp $
  +// $Id: DistributedHttpSessionManager.java,v 1.2 2002/01/13 21:30:14 jules_gosnell 
Exp $
   
   // TODO
   
  @@ -41,18 +41,45 @@
   
   //------------------------------------------------------------------------------
   
  +class MyTimeOutNotifier
  +  implements AbstractTimeOutManager.TimeOutNotifier
  +{
  +  public void
  +    timeOut(Object object)
  +  {
  +    DistributedHttpSession session=(DistributedHttpSession)object;
  +    //      _log.info("session ("+session.getId()+") timed out - cleaning up");
  +    session.getManager().destroyHttpSession(session);
  +  }
  +}
  +
  +class MyTimeOutTester
  +  implements AbstractTimeOutManager.TimeOutTester
  +{
  +  public long
  +    timeRemaining(Object object, long now, long maxInactiveInterval)
  +  {
  +    DistributedHttpSession session=(DistributedHttpSession)object;
  +    return session.getLastAccessedTime()+ maxInactiveInterval- now;
  +  }
  +}
  +
  +//------------------------------------------------------------------------------
   /**
    *
  - * @version $Id: DistributedHttpSessionManager.java,v 1.1 2002/01/13 13:26:45 
jules_gosnell Exp $
  + * @version $Id: DistributedHttpSessionManager.java,v 1.2 2002/01/13 21:30:14 
jules_gosnell Exp $
    * @author [EMAIL PROTECTED]
    */
  +//----------------------------------------
   
   public class DistributedHttpSessionManager
     implements org.mortbay.jetty.servlet.SessionManager
   {
     static AbstractStore             _store                     =new 
EJBDistributedStore(); // hardwired for the moment - TODO
  +  static AbstractTimeOutManager    _scavenger                 =new 
NaiveTimeOutManager(5*1000, new MyTimeOutNotifier(), new MyTimeOutTester());
  +
  +  static { _scavenger.start(); }
   
  -  final AbstractTimeOutManager     _scavenger                 =new 
NaiveTimeOutManager(5*1000, new MyTimeOutNotifier());
     final Logger                     _log;
     final JBossWebApplicationContext _context;
     final ServletHandler             _handler;
  @@ -61,23 +88,11 @@
     final Map                        _sessions                  =new HashMap();
     final boolean                    _isDistributed             =true;
     volatile boolean                 _isStarted                 =false; // TODO
  -  volatile int                     _dftMaxIdleSecs            =-1; // negative 
means never timeout...
  +  volatile int                     _dftMaxIdleSecs            =30; // negative 
means never timeout...
   
     //----------------------------------------
   
  -  class MyTimeOutNotifier
  -    implements AbstractTimeOutManager.TimeOutNotifier
  -  {
  -    public void
  -      timeOut(Object object)
  -    {
  -      destroyHttpSession((DistributedHttpSession)object);
  -    }
  -  }
  -
  -  //----------------------------------------
   
  -
     public
       DistributedHttpSessionManager(JBossWebApplicationContext context)
     {
  @@ -95,6 +110,8 @@
       String id=getStore().nextId();
       DistributedHttpSession session = new DistributedHttpSession(this, id, 
_dftMaxIdleSecs);
   
  +    //    _log.info("creating DistributedHttpSession: "+session.getId()+" : 
"+_dftMaxIdleSecs);
  +
       putSession(id,session);
       notifySessionCreated(session);
       getScavenger().register(session, System.currentTimeMillis(), 
_dftMaxIdleSecs*1000);
  @@ -116,7 +133,10 @@
     {
       getScavenger().deregister(session);
       removeSession(session);
  -    session.passivate();
  +    if (_store!=null)
  +      session.passivate();
  +
  +    _log.info("passivated DistributedHttpSession: "+session.getId());
     }
   
     public HttpSession
  @@ -130,10 +150,16 @@
       // 2. check distributed store
       if (session==null && _store!=null)
       {
  -      session=new DistributedHttpSession(this, id, _store.get(id));
  -      putSession(id,session);
  -      notifySessionCreated(session);
  -      getScavenger().register(session, System.currentTimeMillis(), 
session.getMaxInactiveInterval()*1000);
  +      AbstractHttpSessionData data=_store.get(id);
  +      if (data!=null)
  +      {
  +     session=new DistributedHttpSession(this, id, data);
  +     putSession(id,session);
  +     notifySessionCreated(session);
  +     getScavenger().register(session, System.currentTimeMillis(), 
session.getMaxInactiveInterval()*1000);
  +
  +     _log.info("activated DistributedHttpSession: "+id);
  +      }
       }
   
       return session;
  @@ -173,12 +199,15 @@
       throws Exception
     {
       _isStarted=true;
  +    //    _scavenger.start();
  +
       // sessions are activated lazily...
     }
   
     public void
       stop()                   // TODO
     {
  +    //    _scavenger.stop();
       _isStarted=false;                // TODO
   
       // tidy up all sessions...
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to