================================================================================
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
================================================================================

$Id$

                         =================================
                         Apache Tomcat 5.5 Patch Proposals
                         =================================

PATCHES ACCEPTED TO BACKPORT FROM TRUNK/OTHER:
  [ start all new proposals below, under PATCHES PROPOSED. ]


PATCHES PROPOSED TO BACKPORT:
  [ New proposals should be added at the end of the list ]

* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=52384
  Do not fail in Parameter parsing when debug logging is enabled.
  Also do not flag extra '&' as errors.
  http://svn.apache.org/viewvc?rev=1224659&view=rev
  +1: kkolinko, rjung
  -1:

* Reduce log level for the message about hitting maxParameterCount limit
  from WARN to INFO.
  in /connectors/util/java/org/apache/tomcat/util/http/Parameters.java line 243:
  - log.warn(sm.getString("parameters.maxCountFail",
  + log.info(sm.getString("parameters.maxCountFail",
  (backport of http://svn.apache.org/viewvc?rev=1224665&view=rev)
  +1: kkolinko, rjung, jim (w/ ">" change)
  -1:
  rjung: Why do we compare "parameterCount >= limit" in line 241?
         Shouldn't it be ">"?
  kkolinko: I agree, it must be changed to "> limit".
