You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-cvs@jakarta.apache.org by ce...@apache.org on 2002/07/05 13:11:43 UTC

cvs commit: jakarta-log4j/tests/src/java/org/apache/log4j AsyncAppenderTestCase.java VectorAppender.java

ceki        2002/07/05 04:11:43

  Modified:    src/java/org/apache/log4j Tag: v1_2-branch
                        AsyncAppender.java
               tests/src/java/org/apache/log4j Tag: v1_2-branch
                        AsyncAppenderTestCase.java VectorAppender.java
  Log:
  - AyncAppener now closes its embedded appenders when
    AsyncAppender.close() is called.
  
  - New test cases in AsyncAppenderTestCase.java
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.30.2.3  +5 -2      jakarta-log4j/src/java/org/apache/log4j/AsyncAppender.java
  
  Index: AsyncAppender.java
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/AsyncAppender.java,v
  retrieving revision 1.30.2.2
  retrieving revision 1.30.2.3
  diff -u -r1.30.2.2 -r1.30.2.3
  --- AsyncAppender.java	4 Jul 2002 13:03:13 -0000	1.30.2.2
  +++ AsyncAppender.java	5 Jul 2002 11:11:42 -0000	1.30.2.3
  @@ -53,7 +53,7 @@
   
     boolean interruptedWarningMessage = false;
   
  -  public yncAppender() {
  +  public AsyncAppender() {
       // Note: The dispatcher code assumes that the aai is set once and
       // for all.
       aai = new AppenderAttachableImpl();
  @@ -286,7 +286,7 @@
   	  // Exit loop if interrupted but only if the the buffer is empty.
   	  if(interrupted) {
   	    //cat.info("Exiting.");
  -	    return;
  +	    break;
   	  }
   	  try {
   	    //LogLog.debug("Waiting for new event to dispatch.");
  @@ -311,5 +311,8 @@
   	}
         }
       } // while
  +    
  +    // close and remove all appenders
  +    aai.removeAllAppenders();
     }
   }
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1   +51 -1     jakarta-log4j/tests/src/java/org/apache/log4j/AsyncAppenderTestCase.java
  
  Index: AsyncAppenderTestCase.java
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/tests/src/java/org/apache/log4j/AsyncAppenderTestCase.java,v
  retrieving revision 1.1
  retrieving revision 1.1.2.1
  diff -u -r1.1 -r1.1.2.1
  --- AsyncAppenderTestCase.java	9 May 2002 17:44:54 -0000	1.1
  +++ AsyncAppenderTestCase.java	5 Jul 2002 11:11:43 -0000	1.1.2.1
  @@ -28,14 +28,17 @@
     public void setUp() {
     }
   
  -  public void tearDown() {  
  +  public void tearDown() {
  +    LogManager.shutdown();
     }
   
  +  // this test checks whether it is possible to write to a closed AsyncAppender
     public void closeTest() throws Exception {    
       Logger root = Logger.getRootLogger();
       Layout layout = new SimpleLayout();
       VectorAppender vectorAppender = new VectorAppender();
       AsyncAppender asyncAppender = new AsyncAppender();
  +    asyncAppender.setName("async-CloseTest");
       asyncAppender.addAppender(vectorAppender);
       root.addAppender(asyncAppender); 
   
  @@ -45,13 +48,60 @@
       
       Vector v = vectorAppender.getVector();
       assertEquals(v.size(), 1);
  +  }
  +
  +  // this test checks whether appenders embedded within an AsyncAppender are also 
  +  // closed 
  +  public void test2() {
  +    Logger root = Logger.getRootLogger();
  +    Layout layout = new SimpleLayout();
  +    VectorAppender vectorAppender = new VectorAppender();
  +    AsyncAppender asyncAppender = new AsyncAppender();
  +    asyncAppender.setName("async-test2");
  +    asyncAppender.addAppender(vectorAppender);
  +    root.addAppender(asyncAppender); 
  +
  +    root.debug("m1");
  +    asyncAppender.close();
  +    root.debug("m2");
       
  +    Vector v = vectorAppender.getVector();
  +    assertEquals(v.size(), 1);
  +    assertTrue(vectorAppender.isClosed());
  +  }
  +
  +  // this test checks whether appenders embedded within an AsyncAppender are also 
  +  // closed 
  +  public void test3() {
  +    int LEN = 200;
  +    Logger root = Logger.getRootLogger();
  +    Layout layout = new SimpleLayout();
  +    VectorAppender vectorAppender = new VectorAppender();
  +    AsyncAppender asyncAppender = new AsyncAppender();
  +    asyncAppender.setName("async-test3");
  +    asyncAppender.addAppender(vectorAppender);
  +    root.addAppender(asyncAppender); 
   
  +    for(int i = 0; i < LEN; i++) {
  +      root.debug("message"+i);
  +    }
  +    
  +    System.out.println("Done loop.");
  +    System.out.flush();
  +    asyncAppender.close();
  +    root.debug("m2");
  +    
  +    Vector v = vectorAppender.getVector();
  +    assertEquals(v.size(), LEN);
  +    assertTrue(vectorAppender.isClosed());
     }
   
  +
     public static Test suite() {
       TestSuite suite = new TestSuite();
       suite.addTest(new AsyncAppenderTestCase("closeTest"));
  +    suite.addTest(new AsyncAppenderTestCase("test2"));
  +    suite.addTest(new AsyncAppenderTestCase("test3"));
       return suite;
     }
   
  
  
  
  1.1.2.2   +7 -3      jakarta-log4j/tests/src/java/org/apache/log4j/VectorAppender.java
  
  Index: VectorAppender.java
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/tests/src/java/org/apache/log4j/VectorAppender.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- VectorAppender.java	5 Jul 2002 08:44:20 -0000	1.1.2.1
  +++ VectorAppender.java	5 Jul 2002 11:11:43 -0000	1.1.2.2
  @@ -42,6 +42,11 @@
     */
     public void append(LoggingEvent event) {
       System.out.println("---Vector appender called with message ["+event.getRenderedMessage()+"].");
  +    System.out.flush();
  +    try {
  +      Thread.currentThread().sleep(100);
  +    } catch(Exception e) {
  +    }
       vector.addElement(event);
      }
   
  @@ -49,8 +54,7 @@
       return vector;
     }
   
  -  public synchronized
  -  void close() {
  +  public synchronized void close() {
       if(this.closed)
         return;
       this.closed = true;
  @@ -58,7 +62,7 @@
   
   
     public boolean isClosed() {
  -    return this.closed;
  +    return closed;
     }
   
     public boolean requiresLayout() {
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>