tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cos...@locus.apache.org
Subject cvs commit: jakarta-tomcat/src/share/org/apache/tomcat/util/depend DependManager.java
Date Fri, 01 Dec 2000 23:15:24 GMT
costin      00/12/01 15:15:23

  Modified:    src/share/org/apache/tomcat/util/depend DependManager.java
  Log:
  Checked in "debug" version of DependManager. It seems the workaround
  works fine ( i.e. call the method from another method, ignore the result
  that is bogus and return the real value )
  
  Revision  Changes    Path
  1.2       +27 -6     jakarta-tomcat/src/share/org/apache/tomcat/util/depend/DependManager.java
  
  Index: DependManager.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/util/depend/DependManager.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DependManager.java	2000/08/14 18:40:35	1.1
  +++ DependManager.java	2000/12/01 23:15:22	1.2
  @@ -83,7 +83,7 @@
       long checkTime=0;
       int checkCount=0;
   
  -    boolean expired=false;
  +    private boolean expired=false;
       
       public DependManager() {
       }
  @@ -100,22 +100,37 @@
       public long getCheckCount() {
   	return checkCount;
       }
  -    
  -    // Not synchronized - we do that inside
  +
       public boolean shouldReload() {
  +	boolean b=shouldReload1();
  +	if( b!=expired)
  +	    log("BUG ( VM or Tomcat? ) shouldReload returns expired=" + b +
  +		" and the real value is " + expired);
  +	return expired;
  +    }
  +
  +    // Not synchronized - we do that inside
  +    public boolean shouldReload1() {
   	// somebody else is checking, so we don't know yet.
   	// assume we're fine - reduce the need for sync
  +	if( debug > 0 && expired )
  +	    log( "ShouldReload1 E=" + expired + " C=" + checking);
   	if( checking ) return expired;
   
   	synchronized(this) {
   	    try {
   		// someone else got here and did it before me
  +		if( debug>0 && expired )
  +		    log( "ShouldReload2 E=" + expired + " C=" + checking);
   		if( checking ) return expired;
   			
   		// did a check in the last N seconds
   		long startCheck=System.currentTimeMillis();
  -		if( startCheck - lastCheck < delay )
  +		if( startCheck - lastCheck < delay ) {
  +		    if( debug > 0 && expired )
  +			log( "ShouldReload3 E=" + expired + " C=" + checking);
   		    return expired;
  +		}
   		
   		checking=true;
   
  @@ -127,7 +142,11 @@
   		    File f=d.getOrigin();
   		    if( lm < f.lastModified() ) {
   			// something got modified
  +			//			if( debug>0 )
  +			if( debug > 0)
  +			    log("Found expired4 file " + f.getName());
   			expired=true;
  +			// at least one file is expired
   		    }
   		}
   		checkTime += lastCheck-startCheck;
  @@ -136,6 +155,8 @@
   	    } finally {
   		checking=false;
   	    }
  +	    if( debug > 0 && expired )
  +		log( "ShouldReload5 E=" + expired + " C=" + checking);
   	    return expired;
   	}
       }
  @@ -149,10 +170,10 @@
   	deps[depsCount++]= dep ;
   	if( debug>2) log( "Added " + dep.getOrigin() + " " + dep.getTarget());
       }
  -    
  +
       // -------------------- Private 
   
  -    private static final int debug=0;
  +    private static final int debug=10;
       
       void log( String s ) {
   	System.out.println("DependManager: " + s );
  
  
  

Mime
View raw message