home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / Notes.jar / lotus / domino / AgentLauncher.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-11-15  |  3.1 KB  |  84 lines

  1. package lotus.domino;
  2.  
  3. import lotus.notes.AgentThreadGroup;
  4. import lotus.notes.JavaString;
  5.  
  6. public final class AgentLauncher implements Runnable {
  7.    private AgentBase m_agent;
  8.    private AgentInfo m_ai;
  9.    private Session m_session;
  10.  
  11.    protected AgentLauncher(AgentInfo var1) {
  12.       this.m_ai = var1;
  13.    }
  14.  
  15.    public void run() {
  16.       AgentThreadGroup var1 = (AgentThreadGroup)Thread.currentThread().getThreadGroup();
  17.       ThreadGroup var2 = var1.getUserThreadGroup();
  18.  
  19.       try {
  20.          if (this.m_ai.getRunContext() == 0) {
  21.             this.m_session = lotus.domino.local.Session.createSession();
  22.          } else {
  23.             this.m_session = lotus.domino.local.Session.createSession(this.m_ai.getRunContext());
  24.          }
  25.  
  26.          this.m_ai.setSession(this.m_session);
  27.          this.m_agent = (AgentBase)this.m_ai.newInstance();
  28.          this.m_agent.startup(this.m_ai);
  29.          this.m_agent.join();
  30.          return;
  31.       } catch (InstantiationException var36) {
  32.          System.err.println(JavaString.getFormattedString("error_instantiating", this.m_ai.getAgentClass().getName()));
  33.          ((Throwable)var36).printStackTrace(System.err);
  34.       } catch (IllegalAccessException var37) {
  35.          System.err.println(JavaString.getFormattedString("illegal_access", this.m_ai.getAgentClass().getName()));
  36.          ((Throwable)var37).printStackTrace(System.err);
  37.          return;
  38.       } catch (ClassCastException var38) {
  39.          System.err.println(this.m_ai.getAgentClass().getName() + " " + JavaString.getFormattedString("not_derived", "AgentBase"));
  40.          ((Throwable)var38).printStackTrace(System.err);
  41.          return;
  42.       } catch (InterruptedException var39) {
  43.          return;
  44.       } catch (NotesException var40) {
  45.          System.err.println(JavaString.resource.getString("session_create_error"));
  46.          ((Throwable)var40).printStackTrace();
  47.          return;
  48.       } finally {
  49.          var2.stop();
  50.  
  51.          for(; var1.getActiveNotesThreadCount() > 1; var2.stop()) {
  52.             try {
  53.                Thread.sleep(250L);
  54.             } catch (InterruptedException var35) {
  55.             }
  56.          }
  57.  
  58.          if (var2.activeCount() > 0) {
  59.             try {
  60.                Thread.sleep(250L);
  61.             } catch (InterruptedException var34) {
  62.             }
  63.          }
  64.  
  65.          try {
  66.             var2.destroy();
  67.          } catch (IllegalThreadStateException var33) {
  68.             System.err.println(JavaString.resource.getString("thread_cleanup_error"));
  69.          }
  70.  
  71.          if (this.m_session != null) {
  72.             try {
  73.                ((lotus.domino.local.Session)this.m_session).endAgentContext();
  74.             } catch (Exception var32) {
  75.             }
  76.          }
  77.  
  78.          this.m_session = null;
  79.          this.m_ai.setSession((Session)null);
  80.       }
  81.  
  82.    }
  83. }
  84.