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

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