Author: costin
Date: Fri Aug 29 21:17:45 2008
New Revision: 690452

URL: http://svn.apache.org/viewvc?rev=690452&view=rev
Log:
Merged from main branch.


Modified:
    tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/coyote/ActionCode.java
    tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/coyote/Constants.java
    tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/coyote/Request.java
    
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/juli/ClassLoaderLogManager.java
    tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/juli/FileHandler.java
    
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/buf/B2CConverter.java
    
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/buf/ByteChunk.java
    
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/buf/CharChunk.java
    
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/buf/MessageBytes.java
    
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/http/MimeHeaders.java
    
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/http/ServerCookie.java
    
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/modeler/ManagedBean.java

Modified: 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/coyote/ActionCode.java
URL: 
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/coyote/ActionCode.java?rev=690452&r1=690451&r2=690452&view=diff
==============================================================================
--- tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/coyote/ActionCode.java 
(original)
+++ tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/coyote/ActionCode.java 
Fri Aug 29 21:17:45 2008
@@ -151,7 +151,16 @@
      */
     public static final ActionCode ACTION_AVAILABLE = new ActionCode(23);
 
+    /**
+     * Callback for an asynchronous close of the Comet event
+     */
+    public static final ActionCode ACTION_COMET_CLOSE = new ActionCode(24);
 
+    /**
+     * Callback for setting the timeout asynchronously
+     */
+    public static final ActionCode ACTION_COMET_SETTIMEOUT = new 
ActionCode(25);
+    
     // ----------------------------------------------------------- Constructors
     int code;
 

Modified: 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/coyote/Constants.java
URL: 
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/coyote/Constants.java?rev=690452&r1=690451&r2=690452&view=diff
==============================================================================
--- tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/coyote/Constants.java 
(original)
+++ tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/coyote/Constants.java 
Fri Aug 29 21:17:45 2008
@@ -60,5 +60,12 @@
         (System.getSecurityManager() != null);
 
 
+    /**
+     * If true, custom HTTP status messages will be used in headers.
+     */
+    public static final boolean USE_CUSTOM_STATUS_MSG_IN_HEADER =
+        Boolean.valueOf(System.getProperty(
+                "org.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER",
+                "false")).booleanValue(); 
 
 }

Modified: 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/coyote/Request.java
URL: 
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/coyote/Request.java?rev=690452&r1=690451&r2=690452&view=diff
==============================================================================
--- tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/coyote/Request.java 
(original)
+++ tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/coyote/Request.java Fri 
Aug 29 21:17:45 2008
@@ -23,10 +23,11 @@
 import org.apache.tomcat.util.buf.ByteChunk;
 import org.apache.tomcat.util.buf.MessageBytes;
 import org.apache.tomcat.util.buf.UDecoder;
-import org.apache.tomcat.util.http.ContentType;
-import org.apache.tomcat.util.http.Cookies;
+
 import org.apache.tomcat.util.http.MimeHeaders;
 import org.apache.tomcat.util.http.Parameters;
+import org.apache.tomcat.util.http.ContentType;
+import org.apache.tomcat.util.http.Cookies;
 
 /**
  * This is a low-level, efficient representation of a server request. Most 

Modified: 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/juli/ClassLoaderLogManager.java
URL: 
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/juli/ClassLoaderLogManager.java?rev=690452&r1=690451&r2=690452&view=diff
==============================================================================
--- 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/juli/ClassLoaderLogManager.java
 (original)
+++ 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/juli/ClassLoaderLogManager.java
 Fri Aug 29 21:17:45 2008
@@ -22,6 +22,7 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URLClassLoader;
+import java.security.AccessControlException;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
 import java.util.Collections;
@@ -134,9 +135,9 @@
                 Handler handler = null;
                 ClassLoader current = classLoader;
                 while (current != null) {
-                    info = (ClassLoaderLogInfo) 
classLoaderLoggers.get(current);
+                    info = classLoaderLoggers.get(current);
                     if (info != null) {
-                        handler = (Handler) info.handlers.get(handlerName);
+                        handler = info.handlers.get(handlerName);
                         if (handler != null) {
                             break;
                         }
@@ -173,7 +174,7 @@
     public synchronized Logger getLogger(final String name) {
         ClassLoader classLoader = Thread.currentThread()
                 .getContextClassLoader();
-        return (Logger) getClassLoaderInfo(classLoader).loggers.get(name);
+        return getClassLoaderInfo(classLoader).loggers.get(name);
     }
     
     
@@ -197,7 +198,7 @@
     public String getProperty(String name) {
         ClassLoader classLoader = Thread.currentThread()
             .getContextClassLoader();
-        String prefix = (String) this.prefix.get();
+        String prefix = this.prefix.get();
         if (prefix != null) {
             name = prefix + name;
         }
@@ -209,7 +210,7 @@
         if ((result == null) && (info.props.isEmpty())) {
             ClassLoader current = classLoader.getParent();
             while (current != null) {
-                info = (ClassLoaderLogInfo) classLoaderLoggers.get(current);
+                info = classLoaderLoggers.get(current);
                 if (info != null) {
                     result = info.props.getProperty(name);
                     if ((result != null) || (!info.props.isEmpty())) {
@@ -264,8 +265,7 @@
         if (classLoader == null) {
             classLoader = ClassLoader.getSystemClassLoader();
         }
-        ClassLoaderLogInfo info = (ClassLoaderLogInfo) classLoaderLoggers
-                .get(classLoader);
+        ClassLoaderLogInfo info = classLoaderLoggers.get(classLoader);
         if (info == null) {
             final ClassLoader classLoaderParam = classLoader;
             AccessController.doPrivileged(new PrivilegedAction() {
@@ -278,7 +278,7 @@
                     return null;
                 }
             });
-            info = (ClassLoaderLogInfo) classLoaderLoggers.get(classLoader);
+            info = classLoaderLoggers.get(classLoader);
         }
         return info;
     }
@@ -296,9 +296,14 @@
         InputStream is = null;
         // Special case for URL classloaders which are used in containers: 
         // only look in the local repositories to avoid redefining loggers 20 
times
-        if ((classLoader instanceof URLClassLoader) 
-                && (((URLClassLoader) 
classLoader).findResource("logging.properties") != null)) {
-            is = classLoader.getResourceAsStream("logging.properties");
+        try {
+            if ((classLoader instanceof URLClassLoader) 
+                    && (((URLClassLoader) 
classLoader).findResource("logging.properties") != null)) {
+                is = classLoader.getResourceAsStream("logging.properties");
+            }
+        } catch (AccessControlException ace) {
+            // No permission to configure logging in context
+            // Ignore and carry on
         }
         if ((is == null) && (classLoader == 
ClassLoader.getSystemClassLoader())) {
             String configFileStr = 
System.getProperty("java.util.logging.config.file");
@@ -356,8 +361,7 @@
     protected void readConfiguration(InputStream is, ClassLoader classLoader)
         throws IOException {
         
-        ClassLoaderLogInfo info = 
-            (ClassLoaderLogInfo) classLoaderLoggers.get(classLoader);
+        ClassLoaderLogInfo info = classLoaderLoggers.get(classLoader);
         
         try {
             info.props.load(is);
@@ -497,8 +501,7 @@
                     nextName = name.substring(0, dotIndex);
                     name = name.substring(dotIndex + 1);
                 }
-                LogNode childNode = (LogNode) currentNode.children
-                        .get(nextName);
+                LogNode childNode = currentNode.children.get(nextName);
                 if (childNode == null) {
                     childNode = new LogNode(currentNode);
                     currentNode.children.put(nextName, childNode);

Modified: 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/juli/FileHandler.java
URL: 
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/juli/FileHandler.java?rev=690452&r1=690451&r2=690452&view=diff
==============================================================================
--- tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/juli/FileHandler.java 
(original)
+++ tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/juli/FileHandler.java 
Fri Aug 29 21:17:45 2008
@@ -36,7 +36,7 @@
  * named {prefix}.{date}.{suffix} in a configured directory, with an
  * optional preceding timestamp.
  *
- * @version $Revision: 483782 $ $Date: 2006-12-07 18:24:30 -0800 (Thu, 07 Dec 
2006) $
+ * @version $Revision: 666232 $ $Date: 2008-06-10 10:43:28 -0700 (Tue, 10 Jun 
2008) $
  */
 
 public class FileHandler
@@ -133,8 +133,12 @@
         }
         
         try {
-            writer.write(result);
-            writer.flush();
+            if (writer!=null) {
+                writer.write(result);
+                writer.flush();
+            } else {
+                reportError("FileHandler is closed or not yet initialized, 
unable to log ["+result+"]", null, ErrorManager.WRITE_FAILURE);
+            }
         } catch (Exception e) {
             reportError(null, e, ErrorManager.WRITE_FAILURE);
             return;

Modified: 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/buf/B2CConverter.java
URL: 
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/buf/B2CConverter.java?rev=690452&r1=690451&r2=690452&view=diff
==============================================================================
--- 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/buf/B2CConverter.java
 (original)
+++ 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/buf/B2CConverter.java
 Fri Aug 29 21:17:45 2008
@@ -50,10 +50,10 @@
     /** Create a converter, with bytes going to a byte buffer
      */
     public B2CConverter(String encoding)
-       throws IOException
+        throws IOException
     {
-       this.encoding=encoding;
-       reset();
+        this.encoding=encoding;
+        reset();
     }
 
     
@@ -61,7 +61,7 @@
      *  The encoding remain in effect, the internal buffers remain allocated.
      */
     public  void recycle() {
-       conv.recycle();
+        conv.recycle();
     }
 
     static final int BUFFER_SIZE=8192;
@@ -71,56 +71,50 @@
      * @deprecated
      */
     public  void convert( ByteChunk bb, CharChunk cb )
-       throws IOException
+        throws IOException
     {
-       // Set the ByteChunk as input to the Intermediate reader
-       convert(bb, cb, cb.getBuffer().length - cb.getEnd());
+        // Set the ByteChunk as input to the Intermediate reader
+        convert(bb, cb, cb.getBuffer().length - cb.getEnd());
     }
 
+
     public void convert( ByteChunk bb, CharChunk cb, int limit) 
         throws IOException
     {
         iis.setByteChunk( bb );
-        convert(cb, limit);
-    }
-
-    private void convert(CharChunk cb, int limit)
-       throws IOException
-    {
-       try {
-           // read from the reader
-            int count = 0;
-           while( limit > 0 ) { // conv.ready() ) {
+        try {
+            // read from the reader
+            int bbLengthBeforeRead = 0;
+            while( limit > 0 ) { // conv.ready() ) {
                 int size = limit < BUFFER_SIZE ? limit : BUFFER_SIZE;
-               int cnt=conv.read( result, 0, size );
-               if( cnt <= 0 ) {
-                   // End of stream ! - we may be in a bad state
-                   if( debug>0)
-                       log( "EOF" );
-                   //              reset();
-                   return;
-               }
-               if( debug > 1 )
-                   log("Converted: " + new String( result, 0, cnt ));
-
-               // XXX go directly
-               cb.append( result, 0, cnt );
-                limit -= cnt;
-           }
-       } catch( IOException ex) {
-           if( debug>0)
-               log( "Reseting the converter " + ex.toString() );
-           reset();
-           throw ex;
-       }
+                bbLengthBeforeRead = bb.getLength();
+                int cnt=conv.read( result, 0, size );
+                if( cnt <= 0 ) {
+                    // End of stream ! - we may be in a bad state
+                    if( debug>0)
+                        log( "EOF" );
+                    return;
+                }
+                if( debug > 1 )
+                    log("Converted: " + new String( result, 0, cnt ));
+                cb.append( result, 0, cnt );
+                limit = limit - (bbLengthBeforeRead - bb.getLength());
+            }
+        } catch( IOException ex) {
+            if( debug>0)
+                log( "Reseting the converter " + ex.toString() );
+            reset();
+            throw ex;
+        }
     }
 
+
     public void reset()
-       throws IOException
+        throws IOException
     {
-       // destroy the reader/iis
-       iis=new IntermediateInputStream();
-       conv=new ReadConvertor( iis, encoding );
+        // destroy the reader/iis
+        iis=new IntermediateInputStream();
+        conv=new ReadConvertor( iis, encoding );
     }
 
     private final int debug=0;
@@ -141,45 +135,45 @@
 
 
     private  static String decodeString(ByteChunk mb, String enc)
-       throws IOException
+        throws IOException
     {
-       byte buff=mb.getBuffer();
-       int start=mb.getStart();
-       int end=mb.getEnd();
-       if( useNewString ) {
-           if( enc==null) enc="UTF8";
-           return new String( buff, start, end-start, enc );
-       }
-       B2CConverter b2c=null;
-       if( useSpecialDecoders &&
-           (enc==null || "UTF8".equalsIgnoreCase(enc))) {
-           if( utfD==null ) utfD=new UTF8Decoder();
-           b2c=utfD;
-       }
-       if(decoders == null ) decoders=new Hashtable();
-       if( enc==null ) enc="UTF8";
-       b2c=(B2CConverter)decoders.get( enc );
-       if( b2c==null ) {
-           if( useSpecialDecoders ) {
-               if( "UTF8".equalsIgnoreCase( enc ) ) {
-                   b2c=new UTF8Decoder();
-               }
-           }
-           if( b2c==null )
-               b2c=new B2CConverter( enc );
-           decoders.put( enc, b2c );
-       }
-       if( conversionBuf==null ) conversionBuf=new CharChunk(1024);
-
-       try {
-           conversionBuf.recycle();
-           b2c.convert( this, conversionBuf );
-           //System.out.println("XXX 1 " + conversionBuf );
-           return conversionBuf.toString();
-       } catch( IOException ex ) {
-           ex.printStackTrace();
-           return null;
-       }
+        byte buff=mb.getBuffer();
+        int start=mb.getStart();
+        int end=mb.getEnd();
+        if( useNewString ) {
+            if( enc==null) enc="UTF8";
+            return new String( buff, start, end-start, enc );
+        }
+        B2CConverter b2c=null;
+        if( useSpecialDecoders &&
+            (enc==null || "UTF8".equalsIgnoreCase(enc))) {
+            if( utfD==null ) utfD=new UTF8Decoder();
+            b2c=utfD;
+        }
+        if(decoders == null ) decoders=new Hashtable();
+        if( enc==null ) enc="UTF8";
+        b2c=(B2CConverter)decoders.get( enc );
+        if( b2c==null ) {
+            if( useSpecialDecoders ) {
+                if( "UTF8".equalsIgnoreCase( enc ) ) {
+                    b2c=new UTF8Decoder();
+                }
+            }
+            if( b2c==null )
+                b2c=new B2CConverter( enc );
+            decoders.put( enc, b2c );
+        }
+        if( conversionBuf==null ) conversionBuf=new CharChunk(1024);
+
+        try {
+            conversionBuf.recycle();
+            b2c.convert( this, conversionBuf );
+            //System.out.println("XXX 1 " + conversionBuf );
+            return conversionBuf.toString();
+        } catch( IOException ex ) {
+            ex.printStackTrace();
+            return null;
+        }
     }
 
     */
@@ -193,37 +187,40 @@
  * 
  */
 final class  ReadConvertor extends InputStreamReader {
-    // stream with flush() and close(). overriden.
-    private IntermediateInputStream iis;
-    
-    // Has a private, internal byte[8192]
     
     /** Create a converter.
      */
     public ReadConvertor( IntermediateInputStream in, String enc )
-       throws UnsupportedEncodingException
+        throws UnsupportedEncodingException
     {
-       super( in, enc );
-       iis=in;
+        super( in, enc );
     }
     
     /** Overriden - will do nothing but reset internal state.
      */
     public  final void close() throws IOException {
-       // NOTHING
-       // Calling super.close() would reset out and cb.
+        // NOTHING
+        // Calling super.close() would reset out and cb.
     }
     
     public  final int read(char cbuf[], int off, int len)
-       throws IOException
+        throws IOException
     {
-       // will do the conversion and call write on the output stream
-       return super.read( cbuf, off, len );
+        // will do the conversion and call write on the output stream
+        return super.read( cbuf, off, len );
     }
     
     /** Reset the buffer
      */
     public  final void recycle() {
+        try {
+            // Must clear super's buffer.
+            while (ready()) {
+                // InputStreamReader#skip(long) will allocate buffer to skip.
+                read();
+            }
+        } catch(IOException ioe){
+        }
     }
 }
 
@@ -241,16 +238,16 @@
     }
     
     public  final void close() throws IOException {
-       // shouldn't be called - we filter it out in writer
-       throw new IOException("close() called - shouldn't happen ");
+        // shouldn't be called - we filter it out in writer
+        throw new IOException("close() called - shouldn't happen ");
     }
     
     public  final  int read(byte cbuf[], int off, int len) throws IOException {
-       return bc.substract(cbuf, off, len);
+        return bc.substract(cbuf, off, len);
     }
     
     public  final int read() throws IOException {
-       return bc.substract();
+        return bc.substract();
     }
 
     // -------------------- Internal methods --------------------

Modified: 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/buf/ByteChunk.java
URL: 
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/buf/ByteChunk.java?rev=690452&r1=690451&r2=690452&view=diff
==============================================================================
--- 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/buf/ByteChunk.java
 (original)
+++ 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/buf/ByteChunk.java
 Fri Aug 29 21:17:45 2008
@@ -20,7 +20,6 @@
 import java.io.IOException;
 import java.io.Serializable;
 import java.nio.ByteBuffer;
-import java.util.concurrent.atomic.AtomicLong;
 
 /*
  * In a server it is very important to be able to operate on
@@ -97,10 +96,7 @@
        8859_1, and this object is used mostly for servlets. 
     */
     public static final String DEFAULT_CHARACTER_ENCODING="ISO-8859-1";
-    
-    // Statistics: how many ByteChunks have we allocated 
-    public static AtomicLong allocatedByteChunks = new AtomicLong();
-    
+        
     // byte[]
     private byte[] buff;
 
@@ -125,12 +121,10 @@
      * Creates a new, uninitialized ByteChunk object.
      */
     public ByteChunk() {
-        BufferInfo.get().totalBChunks.incrementAndGet();
     }
 
     public ByteChunk( int initial ) {
-        BufferInfo.get().totalBChunks.incrementAndGet();
-        allocate( initial, -1 );
+       allocate( initial, -1 );
     }
 
     //--------------------
@@ -144,7 +138,8 @@
     
     /** 
      * Return a ByteBuffer wrapping the ByteChunk.
-     * The buffer position/limit are set for read.
+     * The buffer position/limit are set for reading out 
+     * of the buffer, or for sending the buffer to a channel. 
      * 
      * Reads from the ByteBuffer will not be reflected in the ByteChunk.
      * 
@@ -161,7 +156,8 @@
     
     /** 
      * Return a ByteBuffer wrapping the ByteChunk.
-     * The buffer position/limit are set for read.
+     * The buffer position/limit are set for write into
+     * the buffer, or for reading from a channel.
      * 
      * Writes to the ByteBuffer will not be reflected in the ByteChunk until
      * you call updateWriteByteBuffer()
@@ -212,8 +208,6 @@
        isOutput=true;
        if( buff==null || buff.length < initial ) {
            buff=new byte[initial];
-            BufferInfo.get().allocatedBChunksBytes.addAndGet(initial);
-            BufferInfo.get().allocatedBChunks.addAndGet(1);
        }    
        this.limit=limit;
        start=0;
@@ -540,8 +534,6 @@
        if( buff==null ) {
            if( desiredSize < 256 ) desiredSize=256; // take a minimum
            buff=new byte[desiredSize];
-            BufferInfo.get().allocatedBChunksBytes.addAndGet(desiredSize);
-            BufferInfo.get().allocatedBChunksLazy.addAndGet(1);
        }
        
        // limit < buf.length ( the buffer is already big )
@@ -561,7 +553,7 @@
                newSize > limit ) newSize=limit;
            tmp=new byte[newSize];
        }
-        BufferInfo.get().growBChunks.addAndGet(newSize - buff.length);
+       
        System.arraycopy(buff, start, tmp, 0, end-start);
        buff = tmp;
        tmp = null;
@@ -945,8 +937,7 @@
 
 
     /**
-     * Convert specified String to a byte array. This ONLY WORKS for ascii, 
UTF 
-     * chars will be truncated.
+     * Convert specified String to a byte array. This ONLY WORKS for ascii, 
UTF chars will be truncated.
      * 
      * @param value to convert to byte array
      * @return the byte array value
@@ -968,13 +959,29 @@
 
     // --------- To make it easier to use - same-name methods with ByteBuffer
     public char charAt(int index) {
-      if (start + index > end) {
-        throw new ArrayIndexOutOfBoundsException(start + " " + 
-            index + " " + end);
-      }
-      return (char) buff[start + index];
+        if (start + index > end) {
+            throw new ArrayIndexOutOfBoundsException(start + " " + 
+                index + " " + end);
+          }
+          return (char) buff[start + index];
     }
 
+    public byte byteAt(int index) {
+        return buff[start + index];
+    }
+    
+    public int capacity() {
+        return buff.length;
+    }
+    
+    public void setCapacity(int max) {
+        if (max <= buff.length) {
+            // Ignore - could throw ex, or shrink
+        } else {
+            makeSpace(max - buff.length);
+        }
+    }
+    
     public int length() {
       return end - start;
     }

Modified: 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/buf/CharChunk.java
URL: 
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/buf/CharChunk.java?rev=690452&r1=690451&r2=690452&view=diff
==============================================================================
--- 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/buf/CharChunk.java
 (original)
+++ 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/buf/CharChunk.java
 Fri Aug 29 21:17:45 2008
@@ -79,12 +79,10 @@
      * Creates a new, uninitialized CharChunk object.
      */
     public CharChunk() {
-      BufferInfo.get().totalCChunks.incrementAndGet();
     }
 
     public CharChunk(int size) {
-      BufferInfo.get().totalCChunks.incrementAndGet();
-      allocate( size, -1 );
+        allocate( size, -1 );
     }
 
     // --------------------
@@ -122,8 +120,6 @@
        isOutput=true;
        if( buff==null || buff.length < initial ) {
            buff=new char[initial];
-            BufferInfo.get().allocatedCChunksBytes.addAndGet(initial);
-            BufferInfo.get().allocatedCChunks.addAndGet(1);        
        }
        this.limit=limit;
        start=0;
@@ -464,8 +460,6 @@
        if( buff==null ) {
            if( desiredSize < 256 ) desiredSize=256; // take a minimum
            buff=new char[desiredSize];
-            BufferInfo.get().allocatedCChunksBytes.addAndGet(desiredSize);
-            BufferInfo.get().allocatedCChunksLazy.addAndGet(1);            
        }
 
        // limit < buf.length ( the buffer is already big )
@@ -485,7 +479,6 @@
                newSize > limit ) newSize=limit;
            tmp=new char[newSize];
        }
-       BufferInfo.get().growBChunks.addAndGet(newSize - buff.length);
        System.arraycopy(buff, start, tmp, start, end-start);
        buff = tmp;
        tmp = null;

Modified: 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/buf/MessageBytes.java
URL: 
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/buf/MessageBytes.java?rev=690452&r1=690451&r2=690452&view=diff
==============================================================================
--- 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/buf/MessageBytes.java
 (original)
+++ 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/buf/MessageBytes.java
 Fri Aug 29 21:17:45 2008
@@ -137,13 +137,13 @@
      * @param len the length of the bytes
      */
     public void setBytes(byte[] b, int off, int len) {
-      byteC.setBytes( b, off, len );
-      type=T_BYTES;
-      hasStrValue=false;
-      hasHashCode=false;
-      hasIntValue=false;
-      hasLongValue=false;
-      hasDateValue=false; 
+        byteC.setBytes( b, off, len );
+        type=T_BYTES;
+        hasStrValue=false;
+        hasHashCode=false;
+        hasIntValue=false;
+        hasLongValue=false;
+        hasDateValue=false; 
     }
 
     /** Set the encoding. If the object was constructed from bytes[]. any

Modified: 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/http/MimeHeaders.java
URL: 
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/http/MimeHeaders.java?rev=690452&r1=690451&r2=690452&view=diff
==============================================================================
--- 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/http/MimeHeaders.java
 (original)
+++ 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/http/MimeHeaders.java
 Fri Aug 29 21:17:45 2008
@@ -364,7 +364,7 @@
     String next;
     MimeHeaders headers;
 
-    NamesEnumerator(MimeHeaders headers) {
+    public NamesEnumerator(MimeHeaders headers) {
         this.headers=headers;
         pos=0;
         size = headers.size();

Modified: 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/http/ServerCookie.java
URL: 
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/http/ServerCookie.java?rev=690452&r1=690451&r2=690452&view=diff
==============================================================================
--- 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/http/ServerCookie.java
 (original)
+++ 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/http/ServerCookie.java
 Fri Aug 29 21:17:45 2008
@@ -135,6 +135,7 @@
     
     private static final String tspecials = ",; ";
     private static final String tspecials2 = "()<>@,;:\\\"/[]?={} \t";
+    private static final String tspecials2NoSlash = "()<>@,;:\\\"[]?={} \t";
 
     /*
      * Tests a string and returns true if the string counts as a
@@ -146,6 +147,11 @@
      *              token; <code>false</code> if it is not
      */
     public static boolean isToken(String value) {
+        return isToken(value,null);
+    }
+    
+    public static boolean isToken(String value, String literals) {
+        String tspecials = (literals==null?ServerCookie.tspecials:literals);
         if( value==null) return true;
         int len = value.length();
 
@@ -172,8 +178,12 @@
         return false;
     }
 
-
     public static boolean isToken2(String value) {
+        return isToken2(value,null);
+    }
+
+    public static boolean isToken2(String value, String literals) {
+        String tspecials2 = (literals==null?ServerCookie.tspecials2:literals);
         if( value==null) return true;
         int len = value.length();
 
@@ -255,7 +265,7 @@
         buf.append("=");
         // Servlet implementation does not check anything else
         
-        version = maybeQuote2(version, buf, value);
+        version = maybeQuote2(version, buf, value,true);
 
         // Add version 1 specific information
         if (version == 1) {
@@ -299,7 +309,11 @@
         // Path=path
         if (path!=null) {
             buf.append ("; Path=");
-            maybeQuote2(version, buf, path);
+            if (version==0) {
+                maybeQuote2(version, buf, path);
+            } else {
+                maybeQuote2(version, buf, path, 
ServerCookie.tspecials2NoSlash, false);
+            }
         }
 
         // Secure
@@ -337,6 +351,14 @@
      * @param value
      */
     public static int maybeQuote2 (int version, StringBuffer buf, String 
value) {
+        return maybeQuote2(version,buf,value,false);
+    }
+
+    public static int maybeQuote2 (int version, StringBuffer buf, String 
value, boolean allowVersionSwitch) {
+        return maybeQuote2(version,buf,value,null,allowVersionSwitch);
+    }
+
+    public static int maybeQuote2 (int version, StringBuffer buf, String 
value, String literals, boolean allowVersionSwitch) {
         if (value==null || value.length()==0) {
             buf.append("\"\"");
         }else if (containsCTL(value,version)) 
@@ -345,16 +367,16 @@
             buf.append('"');
             buf.append(escapeDoubleQuotes(value,1,value.length()-1));
             buf.append('"');
-        } else if ((!STRICT_SERVLET_COMPLIANCE) && version==0 && 
!isToken2(value)) {
+        } else if (allowVersionSwitch && (!STRICT_SERVLET_COMPLIANCE) && 
version==0 && !isToken2(value, literals)) {
             buf.append('"');
             buf.append(escapeDoubleQuotes(value,0,value.length()));
             buf.append('"');
             version = 1;
-        } else if (version==0 && !isToken(value)) {
+        } else if (version==0 && !isToken(value,literals)) {
             buf.append('"');
             buf.append(escapeDoubleQuotes(value,0,value.length()));
             buf.append('"');
-        } else if (version==1 && !isToken2(value)) {
+        } else if (version==1 && !isToken2(value,literals)) {
             buf.append('"');
             buf.append(escapeDoubleQuotes(value,0,value.length()));
             buf.append('"');

Modified: 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/modeler/ManagedBean.java
URL: 
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/modeler/ManagedBean.java?rev=690452&r1=690451&r2=690452&view=diff
==============================================================================
--- 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/modeler/ManagedBean.java
 (original)
+++ 
tomcat/sandbox/tomcat-lite/tomcat-coyote/org/apache/tomcat/util/modeler/ManagedBean.java
 Fri Aug 29 21:17:45 2008
@@ -43,7 +43,7 @@
  * descriptor.</p>
  *
  * @author Craig R. McClanahan
- * @version $Revision: 610929 $ $Date: 2008-01-10 13:04:31 -0800 (Thu, 10 Jan 
2008) $
+ * @version $Revision: 607483 $ $Date: 2007-12-29 14:45:21 -0800 (Sat, 29 Dec 
2007) $
  */
 
 public class ManagedBean implements java.io.Serializable



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to