List:Commits« Previous MessageNext Message »
From:paul Date:March 17 2006 4:44am
Subject:svn commit - mysqldoc@docsrva: r1610 - in trunk: . refman-common
View as plain text  
Author: paul
Date: 2006-03-17 05:43:29 +0100 (Fri, 17 Mar 2006)
New Revision: 1610

Log:
 r8745@frost:  paul | 2006-03-16 22:41:00 -0600
 Add markup.


Modified:
   trunk/
   trunk/refman-common/news-connector-j.xml
   trunk/refman-common/titles.en.ent


Property changes on: trunk
___________________________________________________________________
Name: svk:merge
   - b5ec3a16-e900-0410-9ad2-d183a3acac99:/mysqldoc-local/mysqldoc/trunk:8738
bf112a9c-6c03-0410-a055-ad865cd57414:/mysqldoc-local/mysqldoc/trunk:3931
   + b5ec3a16-e900-0410-9ad2-d183a3acac99:/mysqldoc-local/mysqldoc/trunk:8745
bf112a9c-6c03-0410-a055-ad865cd57414:/mysqldoc-local/mysqldoc/trunk:3931

Modified: trunk/refman-common/news-connector-j.xml
===================================================================
--- trunk/refman-common/news-connector-j.xml	2006-03-16 21:39:48 UTC (rev 1609)
+++ trunk/refman-common/news-connector-j.xml	2006-03-17 04:43:29 UTC (rev 1610)
@@ -19,139 +19,144 @@
 
       <listitem>
         <para>
-          XADataSource implemented (ported from 3.2 branch which won't
-          be released as a product). Use
-          "com.mysql.jdbc.jdbc2.optional.MysqlXADataSource" as your
-          datasource class name in your application server to utilize XA
-          transactions in MySQL-5.0.10 and newer.
+          <literal>XADataSource</literal> implemented (ported from 3.2
+          branch which won't be released as a product). Use
+          <literal>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</literal>
+          as your datasource class name in your application server to
+          utilize XA transactions in MySQL-5.0.10 and newer.
         </para>
       </listitem>
 
       <listitem>
         <para>
-          PreparedStatement.setString() didn't work correctly when
-          sql_mode on server contained NO_BACKSLASH_ESCAPES, and no
-          characters that needed escaping were present in the string.
+          <literal>PreparedStatement.setString()</literal> didn't work
+          correctly when <literal>sql_mode</literal> on server contained
+          <literal>NO_BACKSLASH_ESCAPES</literal> and no characters that
+          needed escaping were present in the string.
         </para>
       </listitem>
 
       <listitem>
         <para>
-          Attempt detection of the MySQL type "BINARY" (it's an alias,
-          so this isn't always reliable), and use the
-          java.sql.Types.BINARY type mapping for it.
+          Attempt detection of the MySQL type <literal>BINARY</literal>
+          (it's an alias, so this isn't always reliable), and use the
+          <literal>java.sql.Types.BINARY</literal> type mapping for it.
         </para>
       </listitem>
 
       <listitem>
         <para>
-          Moved -bin-g.jar file into separate "debug" subdirectory to
-          avoid confusion.
+          Moved <filename>-bin-g.jar</filename> file into separate
+          <filename>debug</filename> subdirectory to avoid confusion.
         </para>
       </listitem>
 
       <listitem>
         <para>
-          Don't allow .setAutoCommit(true), or .commit() or .rollback()
-          on an XA-managed connection as-per the JDBC specification.
+          Don't allow <literal>.setAutoCommit(true)</literal>, or
+          <literal>.commit()</literal> or <literal>.rollback()</literal>
+          on an XA-managed connection as per the JDBC specification.
         </para>
       </listitem>
 
       <listitem>
         <para>
-          If the connection "useTimezone" is set to "true", then also
-          respect timezone conversions in escape-processed string
-          literals (e.g. "{ts ...}" and "{t ...}").
+          If the connection <literal>useTimezone</literal> is set to
+          <literal>true</literal>, then also respect time zone
+          conversions in escape-processed string literals (e.g.
+          <literal>"{ts ...}"</literal> and <literal>"{t
+          ...}"</literal>).
         </para>
       </listitem>
 
       <listitem>
         <para>
-          Return original column name for RSMD.getColumnName() if the
-          column was aliased, alias name for .getColumnLabel() (if
-          aliased), and original table name for .getTableName(). Note
-          this only works for MySQL-4.1 and newer, as older servers
-          don't make this information available to clients.
+          Return original column name for
+          <literal>RSMD.getColumnName()</literal> if the column was
+          aliased, alias name for <literal>.getColumnLabel()</literal>
+          (if aliased), and original table name for
+          <literal>.getTableName()</literal>. Note this only works for
+          MySQL-4.1 and newer, as older servers don't make this
+          information available to clients.
         </para>
       </listitem>
 
       <listitem>
         <para>
-          Setting "useJDBCCompliantTimezoneShift=true" (it's not the
-          default) causes the driver to use GMT for _all_
-          TIMESTAMP/DATETIME timezones, and the current VM timezone for
-          any other type that refers to timezones. This feature can not
-          be used when "useTimezone=true" to convert between server and
-          client timezones.
+          Setting <literal>useJDBCCompliantTimezoneShift=true</literal>
+          (it's not the default) causes the driver to use GMT for
+          <emphasis>all</emphasis>
+          <literal>TIMESTAMP</literal>/<literal>DATETIME</literal> time
+          zones, and the current VM time zone for any other type that
+          refers to time zones. This feature can not be used when
+          <literal>useTimezone=true</literal> to convert between server
+          and client time zones.
         </para>
       </listitem>
 
       <listitem>
         <para>
           Add one level of indirection of internal representation of
-          CallableStatement parameter metadata to avoid class not found
-          issues on JDK-1.3 for ParameterMetadata interface (which
-          doesn't exist prior to JDBC-3.0).
+          <literal>CallableStatement</literal> parameter metadata to
+          avoid class not found issues on JDK-1.3 for
+          <literal>ParameterMetadata</literal> interface (which doesn't
+          exist prior to JDBC-3.0).
         </para>
       </listitem>
 
       <listitem>
         <para>
-          Added unit tests for XADatasource, as well as friendlier
-          exceptions for XA failures compared to the "stock" XAException
-          (which has no messages).
+          Added unit tests for <literal>XADatasource</literal>, as well
+          as friendlier exceptions for XA failures compared to the
+          "stock" <literal>XAException</literal> (which has no
+          messages).
         </para>
       </listitem>
 
       <listitem>
         <para>
-          Fixed BUG#14279 - Idle timeouts cause XAConnections to whine
-          about rolling themselves back
+          Idle timeouts cause <literal>XAConnections</literal> to whine
+          about rolling themselves back. (Bug #14729)
         </para>
       </listitem>
 
       <listitem>
         <para>
           Added support for Connector/MXJ integration via url
-          subprotocol "jdbc:mysql:mxj://....".
+          subprotocol <literal>jdbc:mysql:mxj://...</literal>.
         </para>
       </listitem>
 
       <listitem>
         <para>
-          Moved all SQLException constructor usage to a factory in
-          SQLError (ground-work for JDBC-4.0 SQLState-based exception
-          classes).
+          Moved all <literal>SQLException</literal> constructor usage to
+          a factory in <literal>SQLError</literal> (ground-work for
+          JDBC-4.0 <literal>SQLState</literal>-based exception classes).
         </para>
       </listitem>
 
       <listitem>
         <para>
-          Removed Java5-specific calls to BigDecimal constructor (when
-          result set value is '', (int)0 was being used as an argument
-          in-directly via method return value. This signature doesn't
+          Removed Java5-specific calls to <literal>BigDecimal</literal>
+          constructor (when result set value is <literal>''</literal>,
+          <literal>(int)0</literal> was being used as an argument
+          indirectly via method return value. This signature doesn't
           exist prior to Java5.)
         </para>
       </listitem>
 
       <listitem>
         <para>
-          Moved all SQLException creation to a factory method in
-          SQLError, groundwork for JDBC-4.0 SQLState class-based
-          exceptions.
-        </para>
-      </listitem>
-
-      <listitem>
-        <para>
           Added service-provider entry to
-          META-INF/services/java.sql.Driver for JDBC-4.0 support.
+          <filename>META-INF/services/java.sql.Driver</filename> for
+          JDBC-4.0 support.
         </para>
       </listitem>
 
       <listitem>
         <para>
-          Return "[VAR]BINARY" for RSMD.getColumnTypeName() when that is
+          Return "[VAR]BINARY" for
+          <literal>RSMD.getColumnTypeName()</literal> when that is
           actually the type, and it can be distinguished (MySQL-4.1 and
           newer).
         </para>
@@ -160,35 +165,38 @@
       <listitem>
         <para>
           When fix for BUG#14562 was merged from 3.1.12, added
-          functionality for CallableStatement's parameter metadata to
-          return correct information for .getParameterClassName().
+          functionality for <literal>CallableStatement</literal>'s
+          parameter metadata to return correct information for
+          <literal>.getParameterClassName()</literal>.
         </para>
       </listitem>
 
       <listitem>
         <para>
-          Fuller synchronization of Connection to avoid deadlocks when
-          using multithreaded frameworks that multithread a single
-          connection (usually not recommended, but the JDBC spec allows
-          it anyways), part of fix to BUG#14972).
+          Fuller synchronization of <literal>Connection</literal> to
+          avoid deadlocks when using multithreaded frameworks that
+          multithread a single connection (usually not recommended, but
+          the JDBC spec allows it anyways), part of fix to BUG#14972).
         </para>
       </listitem>
 
       <listitem>
         <para>
-          Implementation of Statement.cancel() and
-          Statement.setQueryTimeout(). Both require MySQL-5.0.0 or newer
-          server, require a separate connection to issue the "KILL
-          QUERY" command, and in the case of setQueryTimeout() creates
-          an additional thread to handle the timeout functionality.
+          Implementation of <literal>Statement.cancel()</literal> and
+          <literal>Statement.setQueryTimeout()</literal>. Both require
+          MySQL-5.0.0 or newer server, require a separate connection to
+          issue the <literal>KILL QUERY</literal> statement, and in the
+          case of <literal>setQueryTimeout()</literal> creates an
+          additional thread to handle the timeout functionality.
         </para>
 
         <para>
-          Note: Failures to cancel the statement for setQueryTimeout()
-          may manifest themselves as RuntimeExceptions rather than
-          failing silently, as there is currently no way to unblock the
-          thread that is executing the query being cancelled due to
-          timeout expiration and have it throw the exception instead.
+          Note: Failures to cancel the statement for
+          <literal>setQueryTimeout()</literal> may manifest themselves
+          as <literal>RuntimeExceptions</literal> rather than failing
+          silently, as there is currently no way to unblock the thread
+          that is executing the query being cancelled due to timeout
+          expiration and have it throw the exception instead.
         </para>
       </listitem>
 
@@ -204,50 +212,52 @@
 
       <listitem>
         <para>
-          Fixed BUG#15464 - INOUT parameter does not store IN value.
+          <literal>INOUT</literal> parameter does not store
+          <literal>IN</literal> value. (Bug #15464)
         </para>
       </listitem>
 
       <listitem>
         <para>
-          Fixed BUG#14609 - Exception thrown for new decimal type when
-          using updatable result sets.
+          Exception thrown for new decimal type when using updatable
+          result sets. (Bug #14609)
         </para>
       </listitem>
 
       <listitem>
         <para>
-          Fixed BUG#15544, no "dos" character set in MySQL > 4.1.0
+          No "dos" character set in MySQL &gt; 4.1.0. (Bug #15544)
         </para>
       </listitem>
 
       <listitem>
         <para>
-          Fixed BUG#15383 - PreparedStatement.setObject() serializes
-          BigInteger as object, rather than sending as numeric value
-          (and is thus not complementary to .getObject() on an UNSIGNED
-          LONG type).
+          <literal>PreparedStatement.setObject()</literal> serializes
+          <literal>BigInteger</literal> as object, rather than sending
+          as numeric value (and is thus not complementary to
+          <literal>.getObject()</literal> on an <literal>UNSIGNED
+          LONG</literal> type). (Bug #15383)
         </para>
       </listitem>
 
       <listitem>
         <para>
-          Fixed BUG#11874 - ResultSet.getShort() for UNSIGNED TINYINT
-          returned wrong values.
+          <literal>ResultSet.getShort()</literal> for <literal>UNSIGNED
+          TINYINT</literal> returned wrong values. (Bug #11874)
         </para>
       </listitem>
 
       <listitem>
         <para>
-          Fixed BUG#15676 - lib-nodist directory missing from package
-          breaks out-of-box build
+          <filename>lib-nodist</filename> directory missing from package
+          breaks out-of-box build. (Bug #15676)
         </para>
       </listitem>
 
       <listitem>
         <para>
-          Fixed BUG#15854 - DBMD.getColumns() returns wrong type for
-          BIT.
+          <literal>DBMD.getColumns()</literal> returns wrong type for
+          <literal>BIT</literal>. (Bug #15854)
         </para>
       </listitem>
 
@@ -929,1039 +939,2227 @@
 
     <title>&title-cj-news-3-1-9;</title>
 
-<programlisting>
-    - Overhaul of character set configuration, everything now
-      lives in a properties file.
-  
-    - Driver now correctly uses CP932 if available on the server
-      for Windows-31J, CP932 and MS932 java encoding names, 
-      otherwise it resorts to SJIS, which is only a close 
-      approximation. Currently only MySQL-5.0.3 and newer (and
-      MySQL-4.1.12 or .13, depending on when the character set
-      gets backported) can reliably support any variant of CP932.
+    <itemizedlist>
 
-    - Fixed BUG#9064 - com.mysql.jdbc.PreparedStatement.ParseInfo 
-      does unnecessary call to toCharArray().
+      <listitem>
+        <para>
+          Overhaul of character set configuration, everything now lives
+          in a properties file.
+        </para>
+      </listitem>
 
-    - Fixed Bug#10144 - Memory leak in ServerPreparedStatement if 
-      serverPrepare() fails.
- 
-    - Actually write manifest file to correct place so it ends up
-      in the binary jar file.
+      <listitem>
+        <para>
+          Driver now correctly uses CP932 if available on the server for
+          Windows-31J, CP932 and MS932 java encoding names, otherwise it
+          resorts to SJIS, which is only a close approximation.
+          Currently only MySQL-5.0.3 and newer (and MySQL-4.1.12 or .13,
+          depending on when the character set gets backported) can
+          reliably support any variant of CP932.
+        </para>
+      </listitem>
 
-    - Added "createDatabaseIfNotExist" property (default is "false"),
-      which will cause the driver to ask the server to create the 
-      database specified in the URL if it doesn't exist. You must have
-      the appropriate privileges for database creation for this to
-      work.
+      <listitem>
+        <para>
+          Fixed BUG#9064 - com.mysql.jdbc.PreparedStatement.ParseInfo
+          does unnecessary call to toCharArray().
+        </para>
+      </listitem>
 
-    - Fixed BUG#10156 - Unsigned SMALLINT treated as signed for ResultSet.getInt(),
-      fixed all cases for UNSIGNED integer values and server-side prepared statements,
-      as well as ResultSet.getObject() for UNSIGNED TINYINT.
- 
-    - Fixed BUG#10155, double quotes not recognized when parsing 
-      client-side prepared statements.
-  
-    - Made enableStreamingResults() visible on 
-      com.mysql.jdbc.jdbc2.optional.StatementWrapper.
-  
-    - Made ServerPreparedStatement.asSql() work correctly so auto-explain
-      functionality would work with server-side prepared statements.
-  
-    - Made JDBC2-compliant wrappers public in order to allow access to
-      vendor extensions.
-  
-    - Cleaned up logging of profiler events, moved code to dump a profiler
-      event as a string to com.mysql.jdbc.log.LogUtils so that third
-      parties can use it.
-  
-    - DatabaseMetaData.supportsMultipleOpenResults() now returns true. The
-      driver has supported this for some time, DBMD just missed that fact.
-  
-    - Fixed BUG#10310 - Driver doesn't support {?=CALL(...)} for calling
-      stored functions. This involved adding support for function retrieval
-      to DatabaseMetaData.getProcedures() and getProcedureColumns() as well.
-      
-    - Fixed BUG#10485, SQLException thrown when retrieving YEAR(2) 
-      with ResultSet.getString(). The driver will now always treat YEAR types
-      as java.sql.Dates and return the correct values for getString(). 
-      Alternatively, the "yearIsDateType" connection property can be set to
-      "false" and the values will be treated as SHORTs.
-  
-    - The datatype returned for TINYINT(1) columns when "tinyInt1isBit=true" 
-      (the default) can be switched between Types.BOOLEAN and Types.BIT
-      using the new configuration property "transformedBitIsBoolean", which
-      defaults to "false". If set to "false" (the default), 
-      DatabaseMetaData.getColumns() and ResultSetMetaData.getColumnType() 
-      will return Types.BOOLEAN for TINYINT(1) columns. If "true", 
-      Types.BOOLEAN will be returned instead. Irregardless of this configuration
-      property, if "tinyInt1isBit" is enabled, columns with the type TINYINT(1)
-      will be returned as java.lang.Boolean instances from 
-      ResultSet.getObject(..), and ResultSetMetaData.getColumnClassName()
-      will return "java.lang.Boolean".
+      <listitem>
+        <para>
+          Fixed Bug#10144 - Memory leak in ServerPreparedStatement if
+          serverPrepare() fails.
+        </para>
+      </listitem>
 
-    - Fixed BUG#10496 - SQLException is thrown when using property 
-      "characterSetResults" with cp932 or eucjpms.
-      
-    - Reorganized directory layout, sources now in "src" folder,
-      don't pollute parent directory when building, now output goes
-      to "./build", distribution goes to "./dist".
-      
-    - Added support/bug hunting feature that generates .sql test
-      scripts to STDERR when "autoGenerateTestcaseScript" is set
-      to "true".
-      
-    - Fixed BUG#10850 - 0-length streams not sent to server when
-      using server-side prepared statements.
-    
-    - Setting "cachePrepStmts=true" now causes the Connection to also 
-      cache the check the driver performs to determine if a prepared 
-      statement can be server-side or not, as well as caches server-side
-      prepared statements for the lifetime of a connection. As before,
-      the "prepStmtCacheSize" parameter controls the size of these
-      caches.
-      
-    - Try to handle OutOfMemoryErrors more gracefully. Although not
-      much can be done, they will in most cases close the connection
-      they happened on so that further operations don't run into 
-      a connection in some unknown state. When an OOM has happened, 
-      any further operations on the connection will fail with a 
-      "Connection closed" exception that will also list the OOM exception
-      as the reason for the implicit connection close event.
-      
-    - Don't send COM_RESET_STMT for each execution of a server-side
-      prepared statement if it isn't required.
-      
-    - Driver detects if you're running MySQL-5.0.7 or later, and does
-      not scan for "LIMIT ?[,?]" in statements being prepared, as the
-      server supports those types of queries now.
-      
-    - Fixed BUG#11115, Varbinary data corrupted when using server-side
-      prepared statements and ResultSet.getBytes().
-      
-    - Connection.setCatalog() is now aware of the "useLocalSessionState"
-      configuration property, which when set to true will prevent
-      the driver from sending "USE ..." to the server if the requested
-      catalog is the same as the current catalog.
-      
-    - Added the following configuration bundles, use one or many via
-      the "useConfigs" configuration property:
-    
-        * maxPerformance -- maximum performance without being reckless
-        * solarisMaxPerformance -- maximum performance for Solaris,
-                                   avoids syscalls where it can
-        * 3-0-Compat -- Compatibility with Connector/J 3.0.x functionality
-        
-    - Added "maintainTimeStats" configuration property (defaults to "true"),
-      which tells the driver whether or not to keep track of the last query time
-      and the last successful packet sent to the server's time. If set to
-      false, removes two syscalls per query.
-    
-    - Fixed BUG#11259, autoReconnect ping causes exception on connection 
-      startup.
-      
-    - Fixed BUG#11360 Connector/J dumping query into SQLException twice
-    
-    - Fixed PreparedStatement.setClob() not accepting null as a parameter.
-    
-    - Fixed BUG#11411 - Production package doesn't include JBoss integration 
-      classes.
-      
-    - Removed nonsensical "costly type conversion" warnings when using 
-      usage advisor.
-</programlisting>
+      <listitem>
+        <para>
+          Actually write manifest file to correct place so it ends up in
+          the binary jar file.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Added "createDatabaseIfNotExist" property (default is
+          "false"), which will cause the driver to ask the server to
+          create the database specified in the URL if it doesn't exist.
+          You must have the appropriate privileges for database creation
+          for this to work.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Fixed BUG#10156 - Unsigned SMALLINT treated as signed for
+          ResultSet.getInt(), fixed all cases for UNSIGNED integer
+          values and server-side prepared statements, as well as
+          ResultSet.getObject() for UNSIGNED TINYINT.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Fixed BUG#10155, double quotes not recognized when parsing
+          client-side prepared statements.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Made enableStreamingResults() visible on
+          com.mysql.jdbc.jdbc2.optional.StatementWrapper.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Made ServerPreparedStatement.asSql() work correctly so
+          auto-explain functionality would work with server-side
+          prepared statements.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Made JDBC2-compliant wrappers public in order to allow access
+          to vendor extensions.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Cleaned up logging of profiler events, moved code to dump a
+          profiler event as a string to com.mysql.jdbc.log.LogUtils so
+          that third parties can use it.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          DatabaseMetaData.supportsMultipleOpenResults() now returns
+          true. The driver has supported this for some time, DBMD just
+          missed that fact.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Fixed BUG#10310 - Driver doesn't support {?=CALL(...)} for
+          calling stored functions. This involved adding support for
+          function retrieval to DatabaseMetaData.getProcedures() and
+          getProcedureColumns() as well.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Fixed BUG#10485, SQLException thrown when retrieving YEAR(2)
+          with ResultSet.getString(). The driver will now always treat
+          YEAR types as java.sql.Dates and return the correct values for
+          getString(). Alternatively, the "yearIsDateType" connection
+          property can be set to "false" and the values will be treated
+          as SHORTs.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          The datatype returned for TINYINT(1) columns when
+          "tinyInt1isBit=true" (the default) can be switched between
+          Types.BOOLEAN and Types.BIT using the new configuration
+          property "transformedBitIsBoolean", which defaults to "false".
+          If set to "false" (the default), DatabaseMetaData.getColumns()
+          and ResultSetMetaData.getColumnType() will return
+          Types.BOOLEAN for TINYINT(1) columns. If "true", Types.BOOLEAN
+          will be returned instead. Irregardless of this configuration
+          property, if "tinyInt1isBit" is enabled, columns with the type
+          TINYINT(1) will be returned as java.lang.Boolean instances
+          from ResultSet.getObject(..), and
+          ResultSetMetaData.getColumnClassName() will return
+          "java.lang.Boolean".
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Fixed BUG#10496 - SQLException is thrown when using property
+          "characterSetResults" with cp932 or eucjpms.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Reorganized directory layout, sources now in "src" folder,
+          don't pollute parent directory when building, now output goes
+          to "./build", distribution goes to "./dist".
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Added support/bug hunting feature that generates .sql test
+          scripts to STDERR when "autoGenerateTestcaseScript" is set to
+          "true".
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Fixed BUG#10850 - 0-length streams not sent to server when
+          using server-side prepared statements.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Setting "cachePrepStmts=true" now causes the Connection to
+          also cache the check the driver performs to determine if a
+          prepared statement can be server-side or not, as well as
+          caches server-side prepared statements for the lifetime of a
+          connection. As before, the "prepStmtCacheSize" parameter
+          controls the size of these caches.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Try to handle OutOfMemoryErrors more gracefully. Although not
+          much can be done, they will in most cases close the connection
+          they happened on so that further operations don't run into a
+          connection in some unknown state. When an OOM has happened,
+          any further operations on the connection will fail with a
+          "Connection closed" exception that will also list the OOM
+          exception as the reason for the implicit connection close
+          event.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Don't send COM_RESET_STMT for each execution of a server-side
+          prepared statement if it isn't required.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Driver detects if you're running MySQL-5.0.7 or later, and
+          does not scan for "LIMIT ?[,?]" in statements being prepared,
+          as the server supports those types of queries now.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Fixed BUG#11115, Varbinary data corrupted when using
+          server-side prepared statements and ResultSet.getBytes().
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Connection.setCatalog() is now aware of the
+          "useLocalSessionState" configuration property, which when set
+          to true will prevent the driver from sending "USE ..." to the
+          server if the requested catalog is the same as the current
+          catalog.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Added the following configuration bundles, use one or many via
+          the "useConfigs" configuration property:
+        </para>
+
+        <itemizedlist>
+
+          <listitem>
+            <para>
+              maxPerformance -- maximum performance without being
+              reckless
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              solarisMaxPerformance -- maximum performance for Solaris,
+              avoids syscalls where it can
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              3-0-Compat -- Compatibility with Connector/J 3.0.x
+              functionality
+            </para>
+          </listitem>
+
+        </itemizedlist>
+      </listitem>
+
+      <listitem>
+        <para>
+          Added "maintainTimeStats" configuration property (defaults to
+          "true"), which tells the driver whether or not to keep track
+          of the last query time and the last successful packet sent to
+          the server's time. If set to false, removes two syscalls per
+          query.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Fixed BUG#11259, autoReconnect ping causes exception on
+          connection startup.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Fixed BUG#11360 Connector/J dumping query into SQLException
+          twice
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Fixed PreparedStatement.setClob() not accepting null as a
+          parameter.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Fixed BUG#11411 - Production package doesn't include JBoss
+          integration classes.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Removed nonsensical "costly type conversion" warnings when
+          using usage advisor.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-3-1-8">
 
     <title>&title-cj-news-3-1-8;</title>
 
-<programlisting>
-    - Fixed DatabaseMetaData.getTables() returning views when they were
-      not asked for as one of the requested table types.
+    <itemizedlist>
 
-    - Added support for new precision-math DECIMAL type in MySQL &gt;= 5.0.3.
+      <listitem>
+        <para>
+          Fixed DatabaseMetaData.getTables() returning views when they
+          were not asked for as one of the requested table types.
+        </para>
+      </listitem>
 
-    - Fixed ResultSet.getTime() on a NULL value for server-side prepared
-      statements throws NPE.
+      <listitem>
+        <para>
+          Added support for new precision-math DECIMAL type in MySQL
+          &gt;= 5.0.3.
+        </para>
+      </listitem>
 
-    - Made Connection.ping() a public method.
+      <listitem>
+        <para>
+          Fixed ResultSet.getTime() on a NULL value for server-side
+          prepared statements throws NPE.
+        </para>
+      </listitem>
 
-    - Fixed Bug#8868, DATE_FORMAT() queries returned as BLOBs from getObject().
+      <listitem>
+        <para>
+          Made Connection.ping() a public method.
+        </para>
+      </listitem>
 
-    - ServerPreparedStatements now correctly 'stream' BLOB/CLOB data to the
-      server. You can configure the threshold chunk size using the
-      JDBC URL property 'blobSendChunkSize' (the default is one megabyte).
+      <listitem>
+        <para>
+          Fixed Bug#8868, DATE_FORMAT() queries returned as BLOBs from
+          getObject().
+        </para>
+      </listitem>
 
-    - BlobFromLocator now uses correct identifier quoting when generating
-      prepared statements.
+      <listitem>
+        <para>
+          ServerPreparedStatements now correctly 'stream' BLOB/CLOB data
+          to the server. You can configure the threshold chunk size
+          using the JDBC URL property 'blobSendChunkSize' (the default
+          is one megabyte).
+        </para>
+      </listitem>
 
-    - Server-side session variables can be preset at connection time by
-      passing them as a comma-delimited list for the connection property
-      'sessionVariables'.
+      <listitem>
+        <para>
+          BlobFromLocator now uses correct identifier quoting when
+          generating prepared statements.
+        </para>
+      </listitem>
 
-    - Fixed regression in ping() for users using autoReconnect=true.
+      <listitem>
+        <para>
+          Server-side session variables can be preset at connection time
+          by passing them as a comma-delimited list for the connection
+          property 'sessionVariables'.
+        </para>
+      </listitem>
 
-    - Fixed BUG#9040 - PreparedStatement.addBatch() doesn't work with server-side
-      prepared statements and streaming BINARY data.
+      <listitem>
+        <para>
+          Fixed regression in ping() for users using autoReconnect=true.
+        </para>
+      </listitem>
 
-    - Fixed BUG#8800 - DBMD.supportsMixedCase*Identifiers() returns wrong
-      value on servers running on case-sensitive filesystems.
+      <listitem>
+        <para>
+          Fixed BUG#9040 - PreparedStatement.addBatch() doesn't work
+          with server-side prepared statements and streaming BINARY
+          data.
+        </para>
+      </listitem>
 
-    - Fixed BUG#9206, can not use 'UTF-8' for characterSetResults
-      configuration property.
+      <listitem>
+        <para>
+          Fixed BUG#8800 - DBMD.supportsMixedCase*Identifiers() returns
+          wrong value on servers running on case-sensitive filesystems.
+        </para>
+      </listitem>
 
-    - Fixed BUG#9236, a continuation of BUG#8868, where functions used in queries
-      that should return non-string types when resolved by temporary tables suddenly
-      become opaque binary strings (work-around for server limitation). Also fixed
-      fields with type of CHAR(n) CHARACTER SET BINARY to return correct/matching
-      classes for RSMD.getColumnClassName() and ResultSet.getObject().
+      <listitem>
+        <para>
+          Fixed BUG#9206, can not use 'UTF-8' for characterSetResults
+          configuration property.
+        </para>
+      </listitem>
 
-    - Fixed BUG#8792 - DBMD.supportsResultSetConcurrency() not returning
-      true for forward-only/read-only result sets (we obviously support this).
+      <listitem>
+        <para>
+          Fixed BUG#9236, a continuation of BUG#8868, where functions
+          used in queries that should return non-string types when
+          resolved by temporary tables suddenly become opaque binary
+          strings (work-around for server limitation). Also fixed fields
+          with type of CHAR(n) CHARACTER SET BINARY to return
+          correct/matching classes for RSMD.getColumnClassName() and
+          ResultSet.getObject().
+        </para>
+      </listitem>
 
-    - Fixed BUG#8803, 'DATA_TYPE' column from DBMD.getBestRowIdentifier()
-      causes ArrayIndexOutOfBoundsException when accessed (and in fact, didn't
-      return any value).
+      <listitem>
+        <para>
+          Fixed BUG#8792 - DBMD.supportsResultSetConcurrency() not
+          returning true for forward-only/read-only result sets (we
+          obviously support this).
+        </para>
+      </listitem>
 
-    - Check for empty strings ('') when converting char/varchar column data to numbers,
-      throw exception if 'emptyStringsConvertToZero' configuration property is set
-      to 'false' (for backward-compatibility with 3.0, it is now set to 'true'
-      by default, but will most likely default to 'false' in 3.2).
+      <listitem>
+        <para>
+          Fixed BUG#8803, 'DATA_TYPE' column from
+          DBMD.getBestRowIdentifier() causes
+          ArrayIndexOutOfBoundsException when accessed (and in fact,
+          didn't return any value).
+        </para>
+      </listitem>
 
-    - Fixed BUG#9320 - PreparedStatement.getMetaData() inserts blank row in database
-      under certain conditions when not using server-side prepared statements.
+      <listitem>
+        <para>
+          Check for empty strings ('') when converting char/varchar
+          column data to numbers, throw exception if
+          'emptyStringsConvertToZero' configuration property is set to
+          'false' (for backward-compatibility with 3.0, it is now set to
+          'true' by default, but will most likely default to 'false' in
+          3.2).
+        </para>
+      </listitem>
 
-    - Connection.canHandleAsPreparedStatement() now makes 'best effort' to distinguish
-      LIMIT clauses with placeholders in them from ones without in order to have fewer
-      false positives when generating work-arounds for statements the server cannot
-      currently handle as server-side prepared statements.
+      <listitem>
+        <para>
+          Fixed BUG#9320 - PreparedStatement.getMetaData() inserts blank
+          row in database under certain conditions when not using
+          server-side prepared statements.
+        </para>
+      </listitem>
 
-    - Fixed build.xml to not compile log4j logging if log4j not available.
+      <listitem>
+        <para>
+          Connection.canHandleAsPreparedStatement() now makes 'best
+          effort' to distinguish LIMIT clauses with placeholders in them
+          from ones without in order to have fewer false positives when
+          generating work-arounds for statements the server cannot
+          currently handle as server-side prepared statements.
+        </para>
+      </listitem>
 
-    - Added support for the c3p0 connection pool's (http://c3p0.sf.net/)
-      validation/connection checker interface which uses the lightweight
-      'COM_PING' call to the server if available. To use it, configure your
-      c3p0 connection pool's 'connectionTesterClassName' property to use
-      'com.mysql.jdbc.integration.c3p0.MysqlConnectionTester'.
+      <listitem>
+        <para>
+          Fixed build.xml to not compile log4j logging if log4j not
+          available.
+        </para>
+      </listitem>
 
-    - Better detection of LIMIT inside/outside of quoted strings so that
-      the driver can more correctly determine whether a prepared statement
-      can be prepared on the server or not.
+      <listitem>
+        <para>
+          Added support for the c3p0 connection pool's
+          (http://c3p0.sf.net/) validation/connection checker interface
+          which uses the lightweight 'COM_PING' call to the server if
+          available. To use it, configure your c3p0 connection pool's
+          'connectionTesterClassName' property to use
+          'com.mysql.jdbc.integration.c3p0.MysqlConnectionTester'.
+        </para>
+      </listitem>
 
-    - Fixed BUG#9319 - Stored procedures with same name in
-      different databases confuse the driver when it tries to determine
-      parameter counts/types.
+      <listitem>
+        <para>
+          Better detection of LIMIT inside/outside of quoted strings so
+          that the driver can more correctly determine whether a
+          prepared statement can be prepared on the server or not.
+        </para>
+      </listitem>
 
-    - Added finalizers to ResultSet and Statement implementations to be JDBC
-      spec-compliant, which requires that if not explicitly closed, these
-      resources should be closed upon garbage collection.
+      <listitem>
+        <para>
+          Fixed BUG#9319 - Stored procedures with same name in different
+          databases confuse the driver when it tries to determine
+          parameter counts/types.
+        </para>
+      </listitem>
 
-    - Fixed BUG#9682 - Stored procedures with DECIMAL parameters with
-      storage specifications that contained "," in them would fail.
+      <listitem>
+        <para>
+          Added finalizers to ResultSet and Statement implementations to
+          be JDBC spec-compliant, which requires that if not explicitly
+          closed, these resources should be closed upon garbage
+          collection.
+        </para>
+      </listitem>
 
-    - PreparedStatement.setObject(int, Object, int type, int scale) now
-      uses scale value for BigDecimal instances.
+      <listitem>
+        <para>
+          Fixed BUG#9682 - Stored procedures with DECIMAL parameters
+          with storage specifications that contained "," in them would
+          fail.
+        </para>
+      </listitem>
 
-    - Fixed BUG#9704 - Statement.getMoreResults() could throw NPE when
-      existing result set was .close()d.
+      <listitem>
+        <para>
+          PreparedStatement.setObject(int, Object, int type, int scale)
+          now uses scale value for BigDecimal instances.
+        </para>
+      </listitem>
 
-    - The performance metrics feature now gathers information about
-      number of tables referenced in a SELECT.
+      <listitem>
+        <para>
+          Fixed BUG#9704 - Statement.getMoreResults() could throw NPE
+          when existing result set was .close()d.
+        </para>
+      </listitem>
 
-    - The logging system is now automatically configured. If the value has
-      been set by the user, via the URL property "logger" or the system
-      property "com.mysql.jdbc.logger", then use that, otherwise, autodetect
-      it using the following steps:
+      <listitem>
+        <para>
+          The performance metrics feature now gathers information about
+          number of tables referenced in a SELECT.
+        </para>
+      </listitem>
 
-         Log4j, if it's available,
-         Then JDK1.4 logging,
-         Then fallback to our STDERR logging.
+      <listitem>
+        <para>
+          The logging system is now automatically configured. If the
+          value has been set by the user, via the URL property "logger"
+          or the system property "com.mysql.jdbc.logger", then use that,
+          otherwise, autodetect it using the following steps:
+        </para>
 
-    - Fixed BUG#9778, DBMD.getTables() shouldn't return tables if views
-      are asked for, even if the database version doesn't support views.
+        <orderedlist>
 
-    - Fixed driver not returning 'true' for '-1' when ResultSet.getBoolean()
-      was called on result sets returned from server-side prepared statements.
+          <listitem>
+            <para>
+              Log4j, if it's available,
+            </para>
+          </listitem>
 
-    - Added a Manifest.MF file with implementation information to the .jar
-      file.
+          <listitem>
+            <para>
+              Then JDK1.4 logging,
+            </para>
+          </listitem>
 
-    - More tests in Field.isOpaqueBinary() to distinguish opaque binary (i.e.
-      fields with type CHAR(n) and CHARACTER SET BINARY) from output of
-      various scalar and aggregate functions that return strings.
+          <listitem>
+            <para>
+              Then fallback to our STDERR logging.
+            </para>
+          </listitem>
 
-    - Fixed BUG#9917 - Should accept null for catalog (meaning use current)
-      in DBMD methods, even though it's not JDBC-compliant for legacy's sake.
-      Disable by setting connection property "nullCatalogMeansCurrent" to "false"
-      (which will be the default value in C/J 3.2.x).
+        </orderedlist>
+      </listitem>
 
-    - Fixed BUG#9769 - Should accept null for name patterns in DBMD (meaning "%"),
-      even though it isn't JDBC compliant, for legacy's sake. Disable by setting
-      connection property "nullNamePatternMatchesAll" to "false" (which will be
-      the default value in C/J 3.2.x).
-</programlisting>
+      <listitem>
+        <para>
+          Fixed BUG#9778, DBMD.getTables() shouldn't return tables if
+          views are asked for, even if the database version doesn't
+          support views.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Fixed driver not returning 'true' for '-1' when
+          ResultSet.getBoolean() was called on result sets returned from
+          server-side prepared statements.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Added a Manifest.MF file with implementation information to
+          the .jar file.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          More tests in Field.isOpaqueBinary() to distinguish opaque
+          binary (i.e. fields with type CHAR(n) and CHARACTER SET
+          BINARY) from output of various scalar and aggregate functions
+          that return strings.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Fixed BUG#9917 - Should accept null for catalog (meaning use
+          current) in DBMD methods, even though it's not JDBC-compliant
+          for legacy's sake. Disable by setting connection property
+          "nullCatalogMeansCurrent" to "false" (which will be the
+          default value in C/J 3.2.x).
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Fixed BUG#9769 - Should accept null for name patterns in DBMD
+          (meaning "%"), even though it isn't JDBC compliant, for
+          legacy's sake. Disable by setting connection property
+          "nullNamePatternMatchesAll" to "false" (which will be the
+          default value in C/J 3.2.x).
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-3-1-7">
 
     <title>&title-cj-news-3-1-7;</title>
 
-<programlisting>
-    - Fixed BUG#7686, Timestamp key column data needed "_binary'"
-      stripped for UpdatableResultSet.refreshRow().
+    <itemizedlist>
 
-    - Fixed BUG#7715 - Timestamps converted incorrectly to strings
-      with Server-side prepared statements and updatable result sets.
+      <listitem>
+        <para>
+          Fixed BUG#7686, Timestamp key column data needed "_binary'"
+          stripped for UpdatableResultSet.refreshRow().
+        </para>
+      </listitem>
 
-    - Detect new sql_mode variable in string form (it used to be
-      integer) and adjust quoting method for strings appropriately.
+      <listitem>
+        <para>
+          Fixed BUG#7715 - Timestamps converted incorrectly to strings
+          with Server-side prepared statements and updatable result
+          sets.
+        </para>
+      </listitem>
 
-    - Added 'holdResultsOpenOverStatementClose' property (default is
-      false), that keeps result sets open over statement.close() or new
-      execution on same statement (suggested by Kevin Burton).
+      <listitem>
+        <para>
+          Detect new sql_mode variable in string form (it used to be
+          integer) and adjust quoting method for strings appropriately.
+        </para>
+      </listitem>
 
-    - Fixed BUG#7952 -- Infinite recursion when 'falling back' to master
-      in failover configuration.
+      <listitem>
+        <para>
+          Added 'holdResultsOpenOverStatementClose' property (default is
+          false), that keeps result sets open over statement.close() or
+          new execution on same statement (suggested by Kevin Burton).
+        </para>
+      </listitem>
 
-    - Disable multi-statements (if enabled) for MySQL-4.1 versions prior
-      to version 4.1.10 if the query cache is enabled, as the server
-      returns wrong results in this configuration.
+      <listitem>
+        <para>
+          Fixed BUG#7952 -- Infinite recursion when 'falling back' to
+          master in failover configuration.
+        </para>
+      </listitem>
 
-    - Fixed duplicated code in configureClientCharset() that prevented
-      useOldUTF8Behavior=true from working properly.
+      <listitem>
+        <para>
+          Disable multi-statements (if enabled) for MySQL-4.1 versions
+          prior to version 4.1.10 if the query cache is enabled, as the
+          server returns wrong results in this configuration.
+        </para>
+      </listitem>
 
-    - Removed 'dontUnpackBinaryResults' functionality, the driver now
-      always stores results from server-side prepared statements as-is
-      from the server and unpacks them on demand.
+      <listitem>
+        <para>
+          Fixed duplicated code in configureClientCharset() that
+          prevented useOldUTF8Behavior=true from working properly.
+        </para>
+      </listitem>
 
-    - Fixed BUG#8096 where emulated locators corrupt binary data
-      when using server-side prepared statements.
+      <listitem>
+        <para>
+          Removed 'dontUnpackBinaryResults' functionality, the driver
+          now always stores results from server-side prepared statements
+          as-is from the server and unpacks them on demand.
+        </para>
+      </listitem>
 
-    - Fixed synchronization issue with
-      ServerPreparedStatement.serverPrepare() that could cause
-      deadlocks/crashes if connection was shared between threads.
+      <listitem>
+        <para>
+          Fixed BUG#8096 where emulated locators corrupt binary data
+          when using server-side prepared statements.
+        </para>
+      </listitem>
 
-    - By default, the driver now scans SQL you are preparing via all
-      variants of Connection.prepareStatement() to determine if it is a
-      supported type of statement to prepare on the server side, and if
-      it is not supported by the server, it instead prepares it as a
-      client-side emulated prepared statement (BUG#4718). You can
-      disable this by passing 'emulateUnsupportedPstmts=false' in your
-      JDBC URL.
+      <listitem>
+        <para>
+          Fixed synchronization issue with
+          ServerPreparedStatement.serverPrepare() that could cause
+          deadlocks/crashes if connection was shared between threads.
+        </para>
+      </listitem>
 
-    - Remove _binary introducer from parameters used as in/out
-      parameters in CallableStatement.
+      <listitem>
+        <para>
+          By default, the driver now scans SQL you are preparing via all
+          variants of Connection.prepareStatement() to determine if it
+          is a supported type of statement to prepare on the server
+          side, and if it is not supported by the server, it instead
+          prepares it as a client-side emulated prepared statement
+          (BUG#4718). You can disable this by passing
+          'emulateUnsupportedPstmts=false' in your JDBC URL.
+        </para>
+      </listitem>
 
-    - Always return byte[]s for output parameters registered as *BINARY.
+      <listitem>
+        <para>
+          Remove _binary introducer from parameters used as in/out
+          parameters in CallableStatement.
+        </para>
+      </listitem>
 
-    - Send correct value for 'boolean' "true" to server for
-      PreparedStatement.setObject(n, "true", Types.BIT).
+      <listitem>
+        <para>
+          Always return byte[]s for output parameters registered as
+          *BINARY.
+        </para>
+      </listitem>
 
-    - Fixed bug with Connection not caching statements from
-      prepareStatement() when the statement wasn't a server-side
-      prepared statement.
+      <listitem>
+        <para>
+          Send correct value for 'boolean' "true" to server for
+          PreparedStatement.setObject(n, "true", Types.BIT).
+        </para>
+      </listitem>
 
-    - Choose correct 'direction' to apply time adjustments when both
-      client and server are in GMT timezone when using
-      ResultSet.get(..., cal) and PreparedStatement.set(...., cal).
+      <listitem>
+        <para>
+          Fixed bug with Connection not caching statements from
+          prepareStatement() when the statement wasn't a server-side
+          prepared statement.
+        </para>
+      </listitem>
 
-    - Added 'dontTrackOpenResources' option (default is false, to be
-      JDBC compliant), which helps with memory use for non-well-behaved
-      apps (i.e applications which don't close Statements when they
-      should).
+      <listitem>
+        <para>
+          Choose correct 'direction' to apply time adjustments when both
+          client and server are in GMT time zone when using
+          ResultSet.get(..., cal) and PreparedStatement.set(...., cal).
+        </para>
+      </listitem>
 
-    - Fixed BUG#8428 - ResultSet.getString() doesn't maintain format
-      stored on server, bug fix only enabled when 'noDatetimeStringSync'
-      property is set to 'true' (the default is 'false').
+      <listitem>
+        <para>
+          Added 'dontTrackOpenResources' option (default is false, to be
+          JDBC compliant), which helps with memory use for
+          non-well-behaved apps (i.e applications which don't close
+          Statements when they should).
+        </para>
+      </listitem>
 
-    - Fixed NPE in ResultSet.realClose() when using usage advisor and
-      result set was already closed.
+      <listitem>
+        <para>
+          Fixed BUG#8428 - ResultSet.getString() doesn't maintain format
+          stored on server, bug fix only enabled when
+          'noDatetimeStringSync' property is set to 'true' (the default
+          is 'false').
+        </para>
+      </listitem>
 
-    - Fixed BUG#8487 - PreparedStatements not creating streaming result
-      sets.
+      <listitem>
+        <para>
+          Fixed NPE in ResultSet.realClose() when using usage advisor
+          and result set was already closed.
+        </para>
+      </listitem>
 
-    - Don't pass NULL to String.valueOf() in
-      ResultSet.getNativeConvertToString(), as it stringifies it (i.e.
-      returns "null"), which is not correct for the method in question.
+      <listitem>
+        <para>
+          Fixed BUG#8487 - PreparedStatements not creating streaming
+          result sets.
+        </para>
+      </listitem>
 
-    - Fixed BUG#8484 - ResultSet.getBigDecimal() throws exception
-      when rounding would need to occur to set scale. The driver now
-      chooses a rounding mode of 'half up' if non-rounding
-      BigDecimal.setScale() fails.
+      <listitem>
+        <para>
+          Don't pass NULL to String.valueOf() in
+          ResultSet.getNativeConvertToString(), as it stringifies it
+          (i.e. returns "null"), which is not correct for the method in
+          question.
+        </para>
+      </listitem>
 
-    - Added 'useLocalSessionState' configuration property, when set to
-      'true' the JDBC driver trusts that the application is well-behaved
-      and only sets autocommit and transaction isolation levels using
-      the methods provided on java.sql.Connection, and therefore can
-      manipulate these values in many cases without incurring
-      round-trips to the database server.
+      <listitem>
+        <para>
+          Fixed BUG#8484 - ResultSet.getBigDecimal() throws exception
+          when rounding would need to occur to set scale. The driver now
+          chooses a rounding mode of 'half up' if non-rounding
+          BigDecimal.setScale() fails.
+        </para>
+      </listitem>
 
-    - Added enableStreamingResults() to Statement for connection pool
-      implementations that check Statement.setFetchSize() for
-      specification-compliant values. Call Statement.setFetchSize(&gt;=0)
-      to disable the streaming results for that statement.
+      <listitem>
+        <para>
+          Added 'useLocalSessionState' configuration property, when set
+          to 'true' the JDBC driver trusts that the application is
+          well-behaved and only sets autocommit and transaction
+          isolation levels using the methods provided on
+          java.sql.Connection, and therefore can manipulate these values
+          in many cases without incurring round-trips to the database
+          server.
+        </para>
+      </listitem>
 
-    - Added support for BIT type in MySQL-5.0.3. The driver will treat
-      BIT(1-8) as the JDBC standard BIT type (which maps to
-      java.lang.Boolean), as the server does not currently send enough
-      information to determine the size of a bitfield when &lt; 9 bits are
-      declared. BIT(&gt;9) will be treated as VARBINARY, and will return
-      byte[] when getObject() is called.
-</programlisting>
+      <listitem>
+        <para>
+          Added enableStreamingResults() to Statement for connection
+          pool implementations that check Statement.setFetchSize() for
+          specification-compliant values. Call
+          Statement.setFetchSize(&gt;=0) to disable the streaming
+          results for that statement.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Added support for BIT type in MySQL-5.0.3. The driver will
+          treat BIT(1-8) as the JDBC standard BIT type (which maps to
+          java.lang.Boolean), as the server does not currently send
+          enough information to determine the size of a bitfield when
+          &lt; 9 bits are declared. BIT(&gt;9) will be treated as
+          VARBINARY, and will return byte[] when getObject() is called.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-3-1-6">
 
     <title>&title-cj-news-3-1-6;</title>
 
-<programlisting>
-    - Fixed hang on SocketInputStream.read() with Statement.setMaxRows() and
-      multiple result sets when driver has to truncate result set directly,
-      rather than tacking a 'LIMIT n' on the end of it.
+    <itemizedlist>
 
-    - Fixed BUG#7026 - DBMD.getProcedures() doesn't respect catalog parameter.
-</programlisting>
+      <listitem>
+        <para>
+          Fixed hang on SocketInputStream.read() with
+          Statement.setMaxRows() and multiple result sets when driver
+          has to truncate result set directly, rather than tacking a
+          'LIMIT n' on the end of it.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Fixed BUG#7026 - DBMD.getProcedures() doesn't respect catalog
+          parameter.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-3-1-5">
 
     <title>&title-cj-news-3-1-5;</title>
 
-<programlisting>
-    - Fix comparisons made between string constants and dynamic strings that
-      are either toUpperCase()d or toLowerCase()d to use Locale.ENGLISH, as
-      some locales 'override' case rules for English. Also use
-      StringUtils.indexOfIgnoreCase() instead of .toUpperCase().indexOf(),
-      avoids creating a very short-lived transient String instance.
+    <itemizedlist>
 
-    - Fixed BUG#5235 - Server-side prepared statements did not honor
-      'zeroDateTimeBehavior' property, and would cause class-cast
-      exceptions when using ResultSet.getObject(), as the all-zero string
-      was always returned.
+      <listitem>
+        <para>
+          Fix comparisons made between string constants and dynamic
+          strings that are either toUpperCase()d or toLowerCase()d to
+          use Locale.ENGLISH, as some locales 'override' case rules for
+          English. Also use StringUtils.indexOfIgnoreCase() instead of
+          .toUpperCase().indexOf(), avoids creating a very short-lived
+          transient String instance.
+        </para>
+      </listitem>
 
-    - Fixed batched updates with server prepared statements weren't looking if
-      the types had changed for a given batched set of parameters compared
-      to the previous set, causing the server to return the error
-      'Wrong arguments to mysql_stmt_execute()'.
+      <listitem>
+        <para>
+          Fixed BUG#5235 - Server-side prepared statements did not honor
+          'zeroDateTimeBehavior' property, and would cause class-cast
+          exceptions when using ResultSet.getObject(), as the all-zero
+          string was always returned.
+        </para>
+      </listitem>
 
-    - Handle case when string representation of timestamp contains trailing '.'
-      with no numbers following it.
+      <listitem>
+        <para>
+          Fixed batched updates with server prepared statements weren't
+          looking if the types had changed for a given batched set of
+          parameters compared to the previous set, causing the server to
+          return the error 'Wrong arguments to mysql_stmt_execute()'.
+        </para>
+      </listitem>
 
-    - Fixed BUG#5706 - Inefficient detection of pre-existing string instances
-      in ResultSet.getNativeString().
+      <listitem>
+        <para>
+          Handle case when string representation of timestamp contains
+          trailing '.' with no numbers following it.
+        </para>
+      </listitem>
 
-    - Don't throw exceptions for Connection.releaseSavepoint().
+      <listitem>
+        <para>
+          Fixed BUG#5706 - Inefficient detection of pre-existing string
+          instances in ResultSet.getNativeString().
+        </para>
+      </listitem>
 
-    - Use a per-session Calendar instance by default when decoding dates
-      from ServerPreparedStatements (set to old, less performant behavior by
-      setting property 'dynamicCalendars=true').
+      <listitem>
+        <para>
+          Don't throw exceptions for Connection.releaseSavepoint().
+        </para>
+      </listitem>
 
-    - Added experimental configuration property 'dontUnpackBinaryResults',
-      which delays unpacking binary result set values until they're asked for,
-      and only creates object instances for non-numerical values (it is set
-      to 'false' by default). For some usecase/jvm combinations, this is
-      friendlier on the garbage collector.
+      <listitem>
+        <para>
+          Use a per-session Calendar instance by default when decoding
+          dates from ServerPreparedStatements (set to old, less
+          performant behavior by setting property
+          'dynamicCalendars=true').
+        </para>
+      </listitem>
 
-    - Fixed BUG#5729 - UNSIGNED BIGINT unpacked incorrectly from
-      server-side prepared statement result sets.
+      <listitem>
+        <para>
+          Added experimental configuration property
+          'dontUnpackBinaryResults', which delays unpacking binary
+          result set values until they're asked for, and only creates
+          object instances for non-numerical values (it is set to
+          'false' by default). For some usecase/jvm combinations, this
+          is friendlier on the garbage collector.
+        </para>
+      </listitem>
 
-    - Fixed BUG#6225 - ServerSidePreparedStatement allocating short-lived
-      objects un-necessarily.
+      <listitem>
+        <para>
+          Fixed BUG#5729 - UNSIGNED BIGINT unpacked incorrectly from
+          server-side prepared statement result sets.
+        </para>
+      </listitem>
 
-    - Removed un-wanted new Throwable() in ResultSet constructor due to bad
-      merge (caused a new object instance that was never used for every result
-      set created) - Found while profiling for BUG#6359.
+      <listitem>
+        <para>
+          Fixed BUG#6225 - ServerSidePreparedStatement allocating
+          short-lived objects un-necessarily.
+        </para>
+      </listitem>
 
-    - Fixed too-early creation of StringBuffer in EscapeProcessor.escapeSQL(),
-      also return String when escaping not needed (to avoid unnecssary object
-      allocations). Found while profiling for BUG#6359.
+      <listitem>
+        <para>
+          Removed un-wanted new Throwable() in ResultSet constructor due
+          to bad merge (caused a new object instance that was never used
+          for every result set created) - Found while profiling for
+          BUG#6359.
+        </para>
+      </listitem>
 
-    - Use null-safe-equals for key comparisons in updatable result sets.
+      <listitem>
+        <para>
+          Fixed too-early creation of StringBuffer in
+          EscapeProcessor.escapeSQL(), also return String when escaping
+          not needed (to avoid unnecssary object allocations). Found
+          while profiling for BUG#6359.
+        </para>
+      </listitem>
 
-    - Fixed BUG#6537, SUM() on Decimal with server-side prepared statement ignores
-      scale if zero-padding is needed (this ends up being due to conversion to DOUBLE
-      by server, which when converted to a string to parse into BigDecimal, loses all
-      'padding' zeros).
+      <listitem>
+        <para>
+          Use null-safe-equals for key comparisons in updatable result
+          sets.
+        </para>
+      </listitem>
 
-    - Use DatabaseMetaData.getIdentifierQuoteString() when building DBMD
-      queries.
+      <listitem>
+        <para>
+          Fixed BUG#6537, SUM() on Decimal with server-side prepared
+          statement ignores scale if zero-padding is needed (this ends
+          up being due to conversion to DOUBLE by server, which when
+          converted to a string to parse into BigDecimal, loses all
+          'padding' zeros).
+        </para>
+      </listitem>
 
-    - Use 1MB packet for sending file for LOAD DATA LOCAL INFILE if that
-      is &lt; 'max_allowed_packet' on server.
+      <listitem>
+        <para>
+          Use DatabaseMetaData.getIdentifierQuoteString() when building
+          DBMD queries.
+        </para>
+      </listitem>
 
-    - Fixed BUG#6399, ResultSetMetaData.getColumnDisplaySize() returns incorrect
-      values for multi-byte charsets.
+      <listitem>
+        <para>
+          Use 1MB packet for sending file for LOAD DATA LOCAL INFILE if
+          that is &lt; 'max_allowed_packet' on server.
+        </para>
+      </listitem>
 
-    - Make auto-deserialization of java.lang.Objects stored in BLOBs
-      configurable via 'autoDeserialize' property (defaults to 'false').
+      <listitem>
+        <para>
+          Fixed BUG#6399, ResultSetMetaData.getColumnDisplaySize()
+          returns incorrect values for multi-byte charsets.
+        </para>
+      </listitem>
 
-    - Re-work Field.isOpaqueBinary() to detect 'CHAR(n) CHARACTER SET BINARY'
-      to support fixed-length binary fields for ResultSet.getObject().
+      <listitem>
+        <para>
+          Make auto-deserialization of java.lang.Objects stored in BLOBs
+          configurable via 'autoDeserialize' property (defaults to
+          'false').
+        </para>
+      </listitem>
 
-    - Use our own implementation of buffered input streams to get around
-      blocking behavior of java.io.BufferedInputStream. Disable this with
-      'useReadAheadInput=false'.
+      <listitem>
+        <para>
+          Re-work Field.isOpaqueBinary() to detect 'CHAR(n) CHARACTER
+          SET BINARY' to support fixed-length binary fields for
+          ResultSet.getObject().
+        </para>
+      </listitem>
 
-    - Fixed BUG#6348, failing to connect to the server when one of the
-      addresses for the given host name is IPV6 (which the server does
-      not yet bind on). The driver now loops through _all_ IP addresses
-      for a given host, and stops on the first one that accepts() a
-      socket.connect().
-</programlisting>
+      <listitem>
+        <para>
+          Use our own implementation of buffered input streams to get
+          around blocking behavior of java.io.BufferedInputStream.
+          Disable this with 'useReadAheadInput=false'.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Fixed BUG#6348, failing to connect to the server when one of
+          the addresses for the given host name is IPV6 (which the
+          server does not yet bind on). The driver now loops through
+          _all_ IP addresses for a given host, and stops on the first
+          one that accepts() a socket.connect().
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-3-1-4">
 
     <title>&title-cj-news-3-1-4;</title>
 
-<programlisting>
-    - Fixed BUG#4510 - connector/j 3.1.3 beta does not handle integers
-      correctly (caused by changes to support unsigned reads in
-      Buffer.readInt() -&gt; Buffer.readShort()).
+    <itemizedlist>
 
-    - Added support in DatabaseMetaData.getTables() and getTableTypes()
-      for VIEWs which are now available in MySQL server version 5.0.x.
+      <listitem>
+        <para>
+          Fixed BUG#4510 - connector/j 3.1.3 beta does not handle
+          integers correctly (caused by changes to support unsigned
+          reads in Buffer.readInt() -&gt; Buffer.readShort()).
+        </para>
+      </listitem>
 
-    - Fixed BUG#4642 -- ServerPreparedStatement.execute*() sometimes
-      threw ArrayIndexOutOfBoundsException when unpacking field metadata.
+      <listitem>
+        <para>
+          Added support in DatabaseMetaData.getTables() and
+          getTableTypes() for VIEWs which are now available in MySQL
+          server version 5.0.x.
+        </para>
+      </listitem>
 
-    - Optimized integer number parsing, enable 'old' slower integer parsing
-      using JDK classes via 'useFastIntParsing=false' property.
+      <listitem>
+        <para>
+          Fixed BUG#4642 -- ServerPreparedStatement.execute*() sometimes
+          threw ArrayIndexOutOfBoundsException when unpacking field
+          metadata.
+        </para>
+      </listitem>
 
-    - Added 'useOnlyServerErrorMessages' property, which causes message text
-      in exceptions generated by the server to only contain the text sent by
-      the server (as opposed to the SQLState's 'standard' description, followed
-      by the server's error message). This property is set to 'true' by default.
+      <listitem>
+        <para>
+          Optimized integer number parsing, enable 'old' slower integer
+          parsing using JDK classes via 'useFastIntParsing=false'
+          property.
+        </para>
+      </listitem>
 
-    - Fixed BUG#4689 - ResultSet.wasNull() does not work for primatives if a
-      previous null was returned.
+      <listitem>
+        <para>
+          Added 'useOnlyServerErrorMessages' property, which causes
+          message text in exceptions generated by the server to only
+          contain the text sent by the server (as opposed to the
+          SQLState's 'standard' description, followed by the server's
+          error message). This property is set to 'true' by default.
+        </para>
+      </listitem>
 
-    - Track packet sequence numbers if enablePacketDebug=true, and throw an
-      exception if packets received out-of-order.
+      <listitem>
+        <para>
+          Fixed BUG#4689 - ResultSet.wasNull() does not work for
+          primatives if a previous null was returned.
+        </para>
+      </listitem>
 
-    - Fixed BUG#4482, ResultSet.getObject() returns wrong type for strings
-      when using prepared statements.
+      <listitem>
+        <para>
+          Track packet sequence numbers if enablePacketDebug=true, and
+          throw an exception if packets received out-of-order.
+        </para>
+      </listitem>
 
-    - Calling MysqlPooledConnection.close() twice (even though an application
-      error), caused NPE. Fixed.
+      <listitem>
+        <para>
+          Fixed BUG#4482, ResultSet.getObject() returns wrong type for
+          strings when using prepared statements.
+        </para>
+      </listitem>
 
-    - Fixed BUG#5012 -- ServerPreparedStatements dealing with return of
-      DECIMAL type don't work.
+      <listitem>
+        <para>
+          Calling MysqlPooledConnection.close() twice (even though an
+          application error), caused NPE. Fixed.
+        </para>
+      </listitem>
 
-    - Fixed BUG#5032 -- ResultSet.getObject() doesn't return
-      type Boolean for pseudo-bit types from prepared statements on 4.1.x
-      (shortcut for avoiding extra type conversion when using binary-encoded
-      result sets obscurred test in getObject() for 'pseudo' bit type)
+      <listitem>
+        <para>
+          Fixed BUG#5012 -- ServerPreparedStatements dealing with return
+          of DECIMAL type don't work.
+        </para>
+      </listitem>
 
-    - You can now use URLs in 'LOAD DATA LOCAL INFILE' statements, and the
-      driver will use Java's built-in handlers for retreiving the data and
-      sending it to the server. This feature is not enabled by default,
-      you must set the 'allowUrlInLocalInfile' connection property to 'true'.
+      <listitem>
+        <para>
+          Fixed BUG#5032 -- ResultSet.getObject() doesn't return type
+          Boolean for pseudo-bit types from prepared statements on 4.1.x
+          (shortcut for avoiding extra type conversion when using
+          binary-encoded result sets obscurred test in getObject() for
+          'pseudo' bit type)
+        </para>
+      </listitem>
 
-    - The driver is more strict about truncation of numerics on
-      ResultSet.get*(), and will throw an SQLException when truncation is
-      detected. You can disable this by setting 'jdbcCompliantTruncation' to
-      false (it is enabled by default, as this functionality is required
-      for JDBC compliance).
+      <listitem>
+        <para>
+          You can now use URLs in 'LOAD DATA LOCAL INFILE' statements,
+          and the driver will use Java's built-in handlers for
+          retreiving the data and sending it to the server. This feature
+          is not enabled by default, you must set the
+          'allowUrlInLocalInfile' connection property to 'true'.
+        </para>
+      </listitem>
 
-    - Added three ways to deal with all-zero datetimes when reading them from
-      a ResultSet, 'exception' (the default), which throws an SQLException
-      with an SQLState of 'S1009', 'convertToNull', which returns NULL instead of
-      the date, and 'round', which rounds the date to the nearest closest value
-      which is '0001-01-01'.
+      <listitem>
+        <para>
+          The driver is more strict about truncation of numerics on
+          ResultSet.get*(), and will throw an SQLException when
+          truncation is detected. You can disable this by setting
+          'jdbcCompliantTruncation' to false (it is enabled by default,
+          as this functionality is required for JDBC compliance).
+        </para>
+      </listitem>
 
-    - Fixed ServerPreparedStatement to read prepared statement metadata off
-      the wire, even though it's currently a placeholder instead of using
-      MysqlIO.clearInputStream() which didn't work at various times because
-      data wasn't available to read from the server yet. This fixes sporadic
-      errors users were having with ServerPreparedStatements throwing
-      ArrayIndexOutOfBoundExceptions.
+      <listitem>
+        <para>
+          Added three ways to deal with all-zero datetimes when reading
+          them from a ResultSet, 'exception' (the default), which throws
+          an SQLException with an SQLState of 'S1009', 'convertToNull',
+          which returns NULL instead of the date, and 'round', which
+          rounds the date to the nearest closest value which is
+          '0001-01-01'.
+        </para>
+      </listitem>
 
-    - Use com.mysql.jdbc.Message's classloader when loading resource bundle,
-      should fix sporadic issues when the caller's classloader can't locate
-      the resource bundle.
-</programlisting>
+      <listitem>
+        <para>
+          Fixed ServerPreparedStatement to read prepared statement
+          metadata off the wire, even though it's currently a
+          placeholder instead of using MysqlIO.clearInputStream() which
+          didn't work at various times because data wasn't available to
+          read from the server yet. This fixes sporadic errors users
+          were having with ServerPreparedStatements throwing
+          ArrayIndexOutOfBoundExceptions.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Use com.mysql.jdbc.Message's classloader when loading resource
+          bundle, should fix sporadic issues when the caller's
+          classloader can't locate the resource bundle.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-3-1-3">
 
     <title>&title-cj-news-3-1-3;</title>
 
-<programlisting>
-    - Mangle output parameter names for CallableStatements so they
-      will not clash with user variable names.
+    <itemizedlist>
 
-    - Added support for INOUT parameters in CallableStatements.
+      <listitem>
+        <para>
+          Mangle output parameter names for CallableStatements so they
+          will not clash with user variable names.
+        </para>
+      </listitem>
 
-    - Fix for BUG#4119, null bitmask sent for server-side prepared
-      statements was incorrect.
+      <listitem>
+        <para>
+          Added support for INOUT parameters in CallableStatements.
+        </para>
+      </listitem>
 
-    - Use SQL Standard SQL states by default, unless 'useSqlStateCodes'
-      property is set to 'false'.
+      <listitem>
+        <para>
+          Fix for BUG#4119, null bitmask sent for server-side prepared
+          statements was incorrect.
+        </para>
+      </listitem>
 
-    - Added packet debuging code (see the 'enablePacketDebug' property
-      documentation).
+      <listitem>
+        <para>
+          Use SQL Standard SQL states by default, unless
+          'useSqlStateCodes' property is set to 'false'.
+        </para>
+      </listitem>
 
-    - Added constants for MySQL error numbers (publicly-accessible,
-      see com.mysql.jdbc.MysqlErrorNumbers), and the ability to
-      generate the mappings of vendor error codes to SQLStates
-      that the driver uses (for documentation purposes).
+      <listitem>
+        <para>
+          Added packet debuging code (see the 'enablePacketDebug'
+          property documentation).
+        </para>
+      </listitem>
 
-    - Externalized more messages (on-going effort).
+      <listitem>
+        <para>
+          Added constants for MySQL error numbers (publicly-accessible,
+          see com.mysql.jdbc.MysqlErrorNumbers), and the ability to
+          generate the mappings of vendor error codes to SQLStates that
+          the driver uses (for documentation purposes).
+        </para>
+      </listitem>
 
-    - Fix for BUG#4311 - Error in retrieval of mediumint column with
-      prepared statements and binary protocol.
+      <listitem>
+        <para>
+          Externalized more messages (on-going effort).
+        </para>
+      </listitem>
 
-    - Support new timezone variables in MySQL-4.1.3 when
-      'useTimezone=true'
+      <listitem>
+        <para>
+          Fix for BUG#4311 - Error in retrieval of mediumint column with
+          prepared statements and binary protocol.
+        </para>
+      </listitem>
 
-    - Support for unsigned numerics as return types from prepared statements.
-      This also causes a change in ResultSet.getObject() for the 'bigint unsigned'
-      type, which used to return BigDecimal instances, it now returns instances
-      of java.lang.BigInteger.
-</programlisting>
+      <listitem>
+        <para>
+          Support new time zone variables in MySQL-4.1.3 when
+          'useTimezone=true'
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Support for unsigned numerics as return types from prepared
+          statements. This also causes a change in ResultSet.getObject()
+          for the 'bigint unsigned' type, which used to return
+          BigDecimal instances, it now returns instances of
+          java.lang.BigInteger.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-3-1-2">
 
     <title>&title-cj-news-3-1-2;</title>
 
-<programlisting>
-    - Fixed stored procedure parameter parsing info when size was
-      specified for a parameter (i.e. char(), varchar()).
+    <itemizedlist>
 
-    - Enabled callable statement caching via 'cacheCallableStmts'
-      property.
+      <listitem>
+        <para>
+          Fixed stored procedure parameter parsing info when size was
+          specified for a parameter (i.e. char(), varchar()).
+        </para>
+      </listitem>
 
-    - Fixed case when no output parameters specified for a
-      stored procedure caused a bogus query to be issued
-      to retrieve out parameters, leading to a syntax error
-      from the server.
+      <listitem>
+        <para>
+          Enabled callable statement caching via 'cacheCallableStmts'
+          property.
+        </para>
+      </listitem>
 
-    - Fixed case when no parameters could cause a NullPointerException
-      in CallableStatement.setOutputParameters().
+      <listitem>
+        <para>
+          Fixed case when no output parameters specified for a stored
+          procedure caused a bogus query to be issued to retrieve out
+          parameters, leading to a syntax error from the server.
+        </para>
+      </listitem>
 
-    - Removed wrapping of exceptions in MysqlIO.changeUser().
+      <listitem>
+        <para>
+          Fixed case when no parameters could cause a
+          NullPointerException in
+          CallableStatement.setOutputParameters().
+        </para>
+      </listitem>
 
-    - Fixed sending of split packets for large queries, enabled nio
-      ability to send large packets as well.
+      <listitem>
+        <para>
+          Removed wrapping of exceptions in MysqlIO.changeUser().
+        </para>
+      </listitem>
 
-    - Added .toString() functionality to ServerPreparedStatement,
-      which should help if you're trying to debug a query that is
-      a prepared statement (it shows SQL as the server would process).
+      <listitem>
+        <para>
+          Fixed sending of split packets for large queries, enabled nio
+          ability to send large packets as well.
+        </para>
+      </listitem>
 
-    - Added 'gatherPerformanceMetrics' property, along with properties
-      to control when/where this info gets logged (see docs for more
-      info).
+      <listitem>
+        <para>
+          Added .toString() functionality to ServerPreparedStatement,
+          which should help if you're trying to debug a query that is a
+          prepared statement (it shows SQL as the server would process).
+        </para>
+      </listitem>
 
-    - ServerPreparedStatements weren't actually de-allocating
-      server-side resources when .close() was called.
+      <listitem>
+        <para>
+          Added 'gatherPerformanceMetrics' property, along with
+          properties to control when/where this info gets logged (see
+          docs for more info).
+        </para>
+      </listitem>
 
-    - Added 'logSlowQueries' property, along with property
-      'slowQueriesThresholdMillis' to control when a query should
-      be considered 'slow'.
+      <listitem>
+        <para>
+          ServerPreparedStatements weren't actually de-allocating
+          server-side resources when .close() was called.
+        </para>
+      </listitem>
 
-    - Correctly map output parameters to position given in
-      prepareCall() vs. order implied during registerOutParameter() -
-      fixes BUG#3146.
+      <listitem>
+        <para>
+          Added 'logSlowQueries' property, along with property
+          'slowQueriesThresholdMillis' to control when a query should be
+          considered 'slow'.
+        </para>
+      </listitem>
 
-    - Correctly detect initial character set for servers &gt;= 4.1.0
+      <listitem>
+        <para>
+          Correctly map output parameters to position given in
+          prepareCall() vs. order implied during registerOutParameter()
+          - fixes BUG#3146.
+        </para>
+      </listitem>
 
-    - Cleaned up detection of server properties.
+      <listitem>
+        <para>
+          Correctly detect initial character set for servers &gt;= 4.1.0
+        </para>
+      </listitem>
 
-    - Support placeholder for parameter metadata for server &gt;= 4.1.2
+      <listitem>
+        <para>
+          Cleaned up detection of server properties.
+        </para>
+      </listitem>
 
-    - Fix for BUG#3539 getProcedures() does not return any procedures in
-      result set
+      <listitem>
+        <para>
+          Support placeholder for parameter metadata for server &gt;=
+          4.1.2
+        </para>
+      </listitem>
 
-    - Fix for BUG#3540 getProcedureColumns() doesn't work with wildcards
-      for procedure name
+      <listitem>
+        <para>
+          Fix for BUG#3539 getProcedures() does not return any
+          procedures in result set
+        </para>
+      </listitem>
 
-    - Fixed BUG#3520 -- DBMD.getSQLStateType() returns incorrect value.
+      <listitem>
+        <para>
+          Fix for BUG#3540 getProcedureColumns() doesn't work with
+          wildcards for procedure name
+        </para>
+      </listitem>
 
-    - Added 'connectionCollation' property to cause driver to issue
-      'set collation_connection=...' query on connection init if default
-      collation for given charset is not appropriate.
+      <listitem>
+        <para>
+          Fixed BUG#3520 -- DBMD.getSQLStateType() returns incorrect
+          value.
+        </para>
+      </listitem>
 
-    - Fixed DatabaseMetaData.getProcedures() when run on MySQL-5.0.0 (output of
-    'show procedure status' changed between 5.0.1 and 5.0.0.
+      <listitem>
+        <para>
+          Added 'connectionCollation' property to cause driver to issue
+          'set collation_connection=...' query on connection init if
+          default collation for given charset is not appropriate.
+        </para>
+      </listitem>
 
-    - Fixed BUG#3804 -- getWarnings() returns SQLWarning instead of DataTruncation
+      <listitem>
+        <para>
+          Fixed DatabaseMetaData.getProcedures() when run on MySQL-5.0.0
+          (output of 'show procedure status' changed between 5.0.1 and
+          5.0.0.
+        </para>
+      </listitem>
 
-    - Don't enable server-side prepared statements for server version 5.0.0 or 5.0.1,
-    as they aren't compatible with the '4.1.2+' style that the driver uses (the driver
-    expects information to come back that isn't there, so it hangs).
-</programlisting>
+      <listitem>
+        <para>
+          Fixed BUG#3804 -- getWarnings() returns SQLWarning instead of
+          DataTruncation
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Don't enable server-side prepared statements for server
+          version 5.0.0 or 5.0.1, as they aren't compatible with the
+          '4.1.2+' style that the driver uses (the driver expects
+          information to come back that isn't there, so it hangs).
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-3-1-1">
 
     <title>&title-cj-news-3-1-1;</title>
 
-<programlisting>
-    - Fixed bug with UpdatableResultSets not using client-side
-    prepared statements.
+    <itemizedlist>
 
-    - Fixed character encoding issues when converting bytes to
-      ASCII when MySQL doesn't provide the character set, and
-      the JVM is set to a multi-byte encoding (usually affecting
-      retrieval of numeric values).
+      <listitem>
+        <para>
+          Fixed bug with UpdatableResultSets not using client-side
+          prepared statements.
+        </para>
+      </listitem>
 
-    - Unpack 'unknown' data types from server prepared statements
-      as Strings.
+      <listitem>
+        <para>
+          Fixed character encoding issues when converting bytes to ASCII
+          when MySQL doesn't provide the character set, and the JVM is
+          set to a multi-byte encoding (usually affecting retrieval of
+          numeric values).
+        </para>
+      </listitem>
 
-    - Implemented long data (Blobs, Clobs, InputStreams, Readers)
-      for server prepared statements.
+      <listitem>
+        <para>
+          Unpack 'unknown' data types from server prepared statements as
+          Strings.
+        </para>
+      </listitem>
 
-    - Implemented Statement.getWarnings() for MySQL-4.1 and newer
-      (using 'SHOW WARNINGS').
+      <listitem>
+        <para>
+          Implemented long data (Blobs, Clobs, InputStreams, Readers)
+          for server prepared statements.
+        </para>
+      </listitem>
 
-    - Default result set type changed to TYPE_FORWARD_ONLY
-      (JDBC compliance).
+      <listitem>
+        <para>
+          Implemented Statement.getWarnings() for MySQL-4.1 and newer
+          (using 'SHOW WARNINGS').
+        </para>
+      </listitem>
 
-    - Centralized setting of result set type and concurrency.
+      <listitem>
+        <para>
+          Default result set type changed to TYPE_FORWARD_ONLY (JDBC
+          compliance).
+        </para>
+      </listitem>
 
-    - Re-factored how connection properties are set and exposed
-      as DriverPropertyInfo as well as Connection and DataSource
-      properties.
+      <listitem>
+        <para>
+          Centralized setting of result set type and concurrency.
+        </para>
+      </listitem>
 
-    - Support for NIO. Use 'useNIO=true' on platforms that support
-      NIO.
+      <listitem>
+        <para>
+          Re-factored how connection properties are set and exposed as
+          DriverPropertyInfo as well as Connection and DataSource
+          properties.
+        </para>
+      </listitem>
 
-    - Support for SAVEPOINTs (MySQL &gt;= 4.0.14 or 4.1.1).
+      <listitem>
+        <para>
+          Support for NIO. Use 'useNIO=true' on platforms that support
+          NIO.
+        </para>
+      </listitem>
 
-    - Support for mysql_change_user()...See the changeUser() method
-      in com.mysql.jdbc.Connection.
+      <listitem>
+        <para>
+          Support for SAVEPOINTs (MySQL &gt;= 4.0.14 or 4.1.1).
+        </para>
+      </listitem>
 
-    - Reduced number of methods called in average query to be more
-      efficient.
+      <listitem>
+        <para>
+          Support for mysql_change_user()...See the changeUser() method
+          in com.mysql.jdbc.Connection.
+        </para>
+      </listitem>
 
-    - Prepared Statements will be re-prepared on auto-reconnect. Any errors
-      encountered are postponed until first attempt to re-execute the
-      re-prepared statement.
+      <listitem>
+        <para>
+          Reduced number of methods called in average query to be more
+          efficient.
+        </para>
+      </listitem>
 
-    - Ensure that warnings are cleared before executing queries
-      on prepared statements, as-per JDBC spec (now that we support
-      warnings).
+      <listitem>
+        <para>
+          Prepared Statements will be re-prepared on auto-reconnect. Any
+          errors encountered are postponed until first attempt to
+          re-execute the re-prepared statement.
+        </para>
+      </listitem>
 
-    - Support 'old' profileSql capitalization in ConnectionProperties.
-      This property is deprecated, you should use 'profileSQL' if possible.
+      <listitem>
+        <para>
+          Ensure that warnings are cleared before executing queries on
+          prepared statements, as-per JDBC spec (now that we support
+          warnings).
+        </para>
+      </listitem>
 
-    - Optimized Buffer.readLenByteArray() to return shared empty byte array
-      when length is 0.
+      <listitem>
+        <para>
+          Support 'old' profileSql capitalization in
+          ConnectionProperties. This property is deprecated, you should
+          use 'profileSQL' if possible.
+        </para>
+      </listitem>
 
-    - Allow contents of PreparedStatement.setBlob() to be retained
-      between calls to .execute*().
+      <listitem>
+        <para>
+          Optimized Buffer.readLenByteArray() to return shared empty
+          byte array when length is 0.
+        </para>
+      </listitem>
 
-    - Deal with 0-length tokens in EscapeProcessor (caused by callable
-      statement escape syntax).
+      <listitem>
+        <para>
+          Allow contents of PreparedStatement.setBlob() to be retained
+          between calls to .execute*().
+        </para>
+      </listitem>
 
-    - Check for closed connection on delete/update/insert row operations in
-      UpdatableResultSet.
+      <listitem>
+        <para>
+          Deal with 0-length tokens in EscapeProcessor (caused by
+          callable statement escape syntax).
+        </para>
+      </listitem>
 
-    - Fix support for table aliases when checking for all primary keys in
-      UpdatableResultSet.
+      <listitem>
+        <para>
+          Check for closed connection on delete/update/insert row
+          operations in UpdatableResultSet.
+        </para>
+      </listitem>
 
-    - Removed useFastDates connection property.
+      <listitem>
+        <para>
+          Fix support for table aliases when checking for all primary
+          keys in UpdatableResultSet.
+        </para>
+      </listitem>
 
-    - Correctly initialize datasource properties from JNDI Refs, including
-      explicitly specified URLs.
+      <listitem>
+        <para>
+          Removed useFastDates connection property.
+        </para>
+      </listitem>
 
-    - DatabaseMetaData now reports supportsStoredProcedures() for
-      MySQL versions &gt;= 5.0.0
+      <listitem>
+        <para>
+          Correctly initialize datasource properties from JNDI Refs,
+          including explicitly specified URLs.
+        </para>
+      </listitem>
 
-    - Fixed stack overflow in Connection.prepareCall() (bad merge).
+      <listitem>
+        <para>
+          DatabaseMetaData now reports supportsStoredProcedures() for
+          MySQL versions &gt;= 5.0.0
+        </para>
+      </listitem>
 
-    - Fixed IllegalAccessError to Calendar.getTimeInMillis() in DateTimeValue
-      (for JDK &lt; 1.4).
+      <listitem>
+        <para>
+          Fixed stack overflow in Connection.prepareCall() (bad merge).
+        </para>
+      </listitem>
 
-    - Fix for BUG#1673, where DatabaseMetaData.getColumns() is not
-      returning correct column ordinal info for non '%' column name patterns.
+      <listitem>
+        <para>
+          Fixed IllegalAccessError to Calendar.getTimeInMillis() in
+          DateTimeValue (for JDK &lt; 1.4).
+        </para>
+      </listitem>
 
-    - Merged fix of datatype mapping from MySQL type 'FLOAT' to
-      java.sql.Types.REAL from 3.0 branch.
+      <listitem>
+        <para>
+          Fix for BUG#1673, where DatabaseMetaData.getColumns() is not
+          returning correct column ordinal info for non '%' column name
+          patterns.
+        </para>
+      </listitem>
 
-    - Detect collation of column for RSMD.isCaseSensitive().
+      <listitem>
+        <para>
+          Merged fix of datatype mapping from MySQL type 'FLOAT' to
+          java.sql.Types.REAL from 3.0 branch.
+        </para>
+      </listitem>
 
-    - Fixed sending of queries &gt; 16M.
+      <listitem>
+        <para>
+          Detect collation of column for RSMD.isCaseSensitive().
+        </para>
+      </listitem>
 
-    - Added named and indexed input/output parameter support to CallableStatement.
-      MySQL-5.0.x or newer.
+      <listitem>
+        <para>
+          Fixed sending of queries &gt; 16M.
+        </para>
+      </listitem>
 
-    - Fixed NullPointerException in ServerPreparedStatement.setTimestamp(),
-      as well as year and month descrepencies in
-      ServerPreparedStatement.setTimestamp(), setDate().
+      <listitem>
+        <para>
+          Added named and indexed input/output parameter support to
+          CallableStatement. MySQL-5.0.x or newer.
+        </para>
+      </listitem>
 
-    - Added ability to have multiple database/JVM targets for compliance
-      and regression/unit tests in build.xml.
+      <listitem>
+        <para>
+          Fixed NullPointerException in
+          ServerPreparedStatement.setTimestamp(), as well as year and
+          month descrepencies in ServerPreparedStatement.setTimestamp(),
+          setDate().
+        </para>
+      </listitem>
 
-    - Fixed NPE and year/month bad conversions when accessing some
-      datetime functionality in ServerPreparedStatements and their
-      resultant result sets.
+      <listitem>
+        <para>
+          Added ability to have multiple database/JVM targets for
+          compliance and regression/unit tests in build.xml.
+        </para>
+      </listitem>
 
-    - Display where/why a connection was implicitly closed (to
-      aid debugging).
+      <listitem>
+        <para>
+          Fixed NPE and year/month bad conversions when accessing some
+          datetime functionality in ServerPreparedStatements and their
+          resultant result sets.
+        </para>
+      </listitem>
 
-    - CommunicationsException implemented, that tries to determine
-      why communications was lost with a server, and displays
-      possible reasons when .getMessage() is called.
+      <listitem>
+        <para>
+          Display where/why a connection was implicitly closed (to aid
+          debugging).
+        </para>
+      </listitem>
 
-    - Fixed BUG#2359, NULL values for numeric types in binary
-      encoded result sets causing NullPointerExceptions.
+      <listitem>
+        <para>
+          CommunicationsException implemented, that tries to determine
+          why communications was lost with a server, and displays
+          possible reasons when .getMessage() is called.
+        </para>
+      </listitem>
 
-    - Implemented Connection.prepareCall(), and DatabaseMetaData.
-      getProcedures() and getProcedureColumns().
+      <listitem>
+        <para>
+          Fixed BUG#2359, NULL values for numeric types in binary
+          encoded result sets causing NullPointerExceptions.
+        </para>
+      </listitem>
 
-    - Reset 'long binary' parameters in ServerPreparedStatement when
-      clearParameters() is called, by sending COM_RESET_STMT to the
-      server.
+      <listitem>
+        <para>
+          Implemented Connection.prepareCall(), and DatabaseMetaData.
+          getProcedures() and getProcedureColumns().
+        </para>
+      </listitem>
 
-    - Merged prepared statement caching, and .getMetaData() support
-      from 3.0 branch.
+      <listitem>
+        <para>
+          Reset 'long binary' parameters in ServerPreparedStatement when
+          clearParameters() is called, by sending COM_RESET_STMT to the
+          server.
+        </para>
+      </listitem>
 
-    - Fixed off-by-1900 error in some cases for
-      years in TimeUtil.fastDate/TimeCreate() when unpacking results
-      from server-side prepared statements.
+      <listitem>
+        <para>
+          Merged prepared statement caching, and .getMetaData() support
+          from 3.0 branch.
+        </para>
+      </listitem>
 
-    - Fixed BUG#2502 -- charset conversion issue in getTables().
+      <listitem>
+        <para>
+          Fixed off-by-1900 error in some cases for years in
+          TimeUtil.fastDate/TimeCreate() when unpacking results from
+          server-side prepared statements.
+        </para>
+      </listitem>
 
-    - Implemented multiple result sets returned from a statement
-      or stored procedure.
+      <listitem>
+        <para>
+          Fixed BUG#2502 -- charset conversion issue in getTables().
+        </para>
+      </listitem>
 
-    - Fixed BUG#2606 -- Server side prepared statements not returning
-      datatype 'YEAR' correctly.
+      <listitem>
+        <para>
+          Implemented multiple result sets returned from a statement or
+          stored procedure.
+        </para>
+      </listitem>
 
-    - Enabled streaming of result sets from server-side prepared
-      statements.
+      <listitem>
+        <para>
+          Fixed BUG#2606 -- Server side prepared statements not
+          returning datatype 'YEAR' correctly.
+        </para>
+      </listitem>
 
-    - Fixed BUG#2623 -- Class-cast exception when using
-      scrolling result sets and server-side prepared statements.
+      <listitem>
+        <para>
+          Enabled streaming of result sets from server-side prepared
+          statements.
+        </para>
+      </listitem>
 
-    - Merged unbuffered input code from 3.0.
+      <listitem>
+        <para>
+          Fixed BUG#2623 -- Class-cast exception when using scrolling
+          result sets and server-side prepared statements.
+        </para>
+      </listitem>
 
-    - Fixed ConnectionProperties that weren't properly exposed
-      via accessors, cleaned up ConnectionProperties code.
+      <listitem>
+        <para>
+          Merged unbuffered input code from 3.0.
+        </para>
+      </listitem>
 
-    - Fixed BUG#2671, NULL fields not being encoded correctly in
-      all cases in server side prepared statements.
+      <listitem>
+        <para>
+          Fixed ConnectionProperties that weren't properly exposed via
+          accessors, cleaned up ConnectionProperties code.
+        </para>
+      </listitem>
 
-    - Fixed rare buffer underflow when writing numbers into buffers
-      for sending prepared statement execution requests.
+      <listitem>
+        <para>
+          Fixed BUG#2671, NULL fields not being encoded correctly in all
+          cases in server side prepared statements.
+        </para>
+      </listitem>
 
-    - Use DocBook version of docs for shipped versions of drivers.
-</programlisting>
+      <listitem>
+        <para>
+          Fixed rare buffer underflow when writing numbers into buffers
+          for sending prepared statement execution requests.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Use DocBook version of docs for shipped versions of drivers.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-3-1-0">
 
     <title>&title-cj-news-3-1-0;</title>
 
-<programlisting>
-    - Added 'requireSSL' property.
+    <itemizedlist>
 
-    - Added 'useServerPrepStmts' property (default 'false'). The
-      driver will use server-side prepared statements when the
-      server version supports them (4.1 and newer) when this
-      property is set to 'true'. It is currently set to 'false'
-      by default until all bind/fetch functionality has been
-      implemented. Currently only DML prepared statements are
-      implemented for 4.1 server-side prepared statements.
+      <listitem>
+        <para>
+          Added 'requireSSL' property.
+        </para>
+      </listitem>
 
-    - Track open Statements, close all when Connection.close()
-      is called (JDBC compliance).
-</programlisting>
+      <listitem>
+        <para>
+          Added 'useServerPrepStmts' property (default 'false'). The
+          driver will use server-side prepared statements when the
+          server version supports them (4.1 and newer) when this
+          property is set to 'true'. It is currently set to 'false' by
+          default until all bind/fetch functionality has been
+          implemented. Currently only DML prepared statements are
+          implemented for 4.1 server-side prepared statements.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Track open Statements, close all when Connection.close() is
+          called (JDBC compliance).
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-3-0-17">
 
     <title>&title-cj-news-3-0-17;</title>
 
-<programlisting>
-    - Fixed BUG#5874, Timestamp/Time conversion goes in the wrong 'direction'
-      when useTimeZone='true' and server timezone differs from client timezone.
+    <itemizedlist>
 
-    - Fixed BUG#7081, DatabaseMetaData.getIndexInfo() ignoring 'unique'
-      parameter.
+      <listitem>
+        <para>
+          Fixed BUG#5874, Timestamp/Time conversion goes in the wrong
+          'direction' when useTimeZone='true' and server time zone
+          differs from client time zone.
+        </para>
+      </listitem>
 
-    - Support new protocol type 'MYSQL_TYPE_VARCHAR'.
+      <listitem>
+        <para>
+          Fixed BUG#7081, DatabaseMetaData.getIndexInfo() ignoring
+          'unique' parameter.
+        </para>
+      </listitem>
 
-    - Added 'useOldUTF8Behavoior' configuration property, which causes
-      JDBC driver to act like it did with MySQL-4.0.x and earlier when
-      the character encoding is 'utf-8' when connected to MySQL-4.1 or
-      newer.
+      <listitem>
+        <para>
+          Support new protocol type 'MYSQL_TYPE_VARCHAR'.
+        </para>
+      </listitem>
 
-    - Fixed BUG#7316 - Statements created from a pooled connection were
-      returning physical connection instead of logical connection when
-      getConnection() was called.
+      <listitem>
+        <para>
+          Added 'useOldUTF8Behavoior' configuration property, which
+          causes JDBC driver to act like it did with MySQL-4.0.x and
+          earlier when the character encoding is 'utf-8' when connected
+          to MySQL-4.1 or newer.
+        </para>
+      </listitem>
 
-    - Fixed BUG#7033 - PreparedStatements don't encode Big5 (and other
-      multi-byte) character sets correctly in static SQL strings.
+      <listitem>
+        <para>
+          Fixed BUG#7316 - Statements created from a pooled connection
+          were returning physical connection instead of logical
+          connection when getConnection() was called.
+        </para>
+      </listitem>
 
-    - Fixed BUG#6966, connections starting up failed-over (due to down master)
-      never retry master.
+      <listitem>
+        <para>
+          Fixed BUG#7033 - PreparedStatements don't encode Big5 (and
+          other multi-byte) character sets correctly in static SQL
+          strings.
+        </para>
+      </listitem>
 
-    - Fixed BUG#7061, PreparedStatement.fixDecimalExponent() adding extra
-      '+', making number unparseable by MySQL server.
+      <listitem>
+        <para>
+          Fixed BUG#6966, connections starting up failed-over (due to
+          down master) never retry master.
+        </para>
+      </listitem>
 
-    - Fixed BUG#7686, Timestamp key column data needed "_binary'" stripped for
-      UpdatableResultSet.refreshRow().
+      <listitem>
+        <para>
+          Fixed BUG#7061, PreparedStatement.fixDecimalExponent() adding
+          extra '+', making number unparseable by MySQL server.
+        </para>
+      </listitem>
 
-    - Backported SQLState codes mapping from Connector/J 3.1, enable with
-      'useSqlStateCodes=true' as a connection property, it defaults to
-      'false' in this release, so that we don't break legacy applications (it
-      defaults to 'true' starting with Connector/J 3.1).
+      <listitem>
+        <para>
+          Fixed BUG#7686, Timestamp key column data needed "_binary'"
+          stripped for UpdatableResultSet.refreshRow().
+        </para>
+      </listitem>
 
-    - Fixed BUG#7601, PreparedStatement.fixDecimalExponent() adding extra
-      '+', making number unparseable by MySQL server.
+      <listitem>
+        <para>
+          Backported SQLState codes mapping from Connector/J 3.1, enable
+          with 'useSqlStateCodes=true' as a connection property, it
+          defaults to 'false' in this release, so that we don't break
+          legacy applications (it defaults to 'true' starting with
+          Connector/J 3.1).
+        </para>
+      </listitem>
 
-    - Escape sequence {fn convert(..., type)} now supports ODBC-style types
-      that are prepended by 'SQL_'.
+      <listitem>
+        <para>
+          Fixed BUG#7601, PreparedStatement.fixDecimalExponent() adding
+          extra '+', making number unparseable by MySQL server.
+        </para>
+      </listitem>
 
-    - Fixed duplicated code in configureClientCharset() that prevented
-      useOldUTF8Behavior=true from working properly.
+      <listitem>
+        <para>
+          Escape sequence {fn convert(..., type)} now supports
+          ODBC-style types that are prepended by 'SQL_'.
+        </para>
+      </listitem>
 
-    - Handle streaming result sets with &gt; 2 billion rows properly by fixing
-      wraparound of row number counter.
+      <listitem>
+        <para>
+          Fixed duplicated code in configureClientCharset() that
+          prevented useOldUTF8Behavior=true from working properly.
+        </para>
+      </listitem>
 
-    - Fixed BUG#7607 - MS932, SHIFT_JIS and Windows_31J not recog. as
-      aliases for sjis.
+      <listitem>
+        <para>
+          Handle streaming result sets with &gt; 2 billion rows properly
+          by fixing wraparound of row number counter.
+        </para>
+      </listitem>
 
-    - Fixed BUG#6549 (while fixing #7607), adding 'CP943' to aliases for
-      sjis.
+      <listitem>
+        <para>
+          Fixed BUG#7607 - MS932, SHIFT_JIS and Windows_31J not recog.
+          as aliases for sjis.
+        </para>
+      </listitem>
 
-    - Fixed BUG#8064, which requires hex escaping of binary data when using
-      multi-byte charsets with prepared statements.
+      <listitem>
+        <para>
+          Fixed BUG#6549 (while fixing #7607), adding 'CP943' to aliases
+          for sjis.
+        </para>
+      </listitem>
 
-    - Fixed BUG#8812, NON_UNIQUE column from DBMD.getIndexInfo() returned
-      inverted value.
+      <listitem>
+        <para>
+          Fixed BUG#8064, which requires hex escaping of binary data
+          when using multi-byte charsets with prepared statements.
+        </para>
+      </listitem>
 
-    - Workaround for server BUG#9098 - default values of CURRENT_* for
-      DATE/TIME/TIMESTAMP/TIMESTAMP columns can't be distinguished from
-      'string' values, so UpdatableResultSet.moveToInsertRow() generates
-      bad SQL for inserting default values.
+      <listitem>
+        <para>
+          Fixed BUG#8812, NON_UNIQUE column from DBMD.getIndexInfo()
+          returned inverted value.
+        </para>
+      </listitem>
 
-    - Fixed BUG#8629 - 'EUCKR' charset is sent as 'SET NAMES euc_kr' which
-      MySQL-4.1 and newer doesn't understand.
+      <listitem>
+        <para>
+          Workaround for server BUG#9098 - default values of CURRENT_*
+          for DATE/TIME/TIMESTAMP/TIMESTAMP columns can't be
+          distinguished from 'string' values, so
+          UpdatableResultSet.moveToInsertRow() generates bad SQL for
+          inserting default values.
+        </para>
+      </listitem>
 
-    - DatabaseMetaData.supportsSelectForUpdate() returns correct value based
-      on server version.
+      <listitem>
+        <para>
+          Fixed BUG#8629 - 'EUCKR' charset is sent as 'SET NAMES euc_kr'
+          which MySQL-4.1 and newer doesn't understand.
+        </para>
+      </listitem>
 
-    - Use hex escapes for PreparedStatement.setBytes() for double-byte charsets
-      including 'aliases' Windows-31J, CP934, MS932.
+      <listitem>
+        <para>
+          DatabaseMetaData.supportsSelectForUpdate() returns correct
+          value based on server version.
+        </para>
+      </listitem>
 
-    - Added support for the "EUC_JP_Solaris" character encoding, which maps
-      to a MySQL encoding of "eucjpms" (backported from 3.1 branch). This only
-      works on servers that support eucjpms, namely 5.0.3 or later.
-</programlisting>
+      <listitem>
+        <para>
+          Use hex escapes for PreparedStatement.setBytes() for
+          double-byte charsets including 'aliases' Windows-31J, CP934,
+          MS932.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Added support for the "EUC_JP_Solaris" character encoding,
+          which maps to a MySQL encoding of "eucjpms" (backported from
+          3.1 branch). This only works on servers that support eucjpms,
+          namely 5.0.3 or later.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-3-0-16">
 
     <title>&title-cj-news-3-0-16;</title>
 
-<programlisting>
-    - Re-issue character set configuration commands when re-using pooled
-      connections and/or Connection.changeUser() when connected to MySQL-4.1
-      or newer.
+    <itemizedlist>
 
-    - Fixed ResultSetMetaData.isReadOnly() to detect non-writable columns
-      when connected to MySQL-4.1 or newer, based on existence of 'original'
-      table and column names.
+      <listitem>
+        <para>
+          Re-issue character set configuration commands when re-using
+          pooled connections and/or Connection.changeUser() when
+          connected to MySQL-4.1 or newer.
+        </para>
+      </listitem>
 
-    - Fixed BUG#5664, ResultSet.updateByte() when on insert row
-      throws ArrayOutOfBoundsException.
+      <listitem>
+        <para>
+          Fixed ResultSetMetaData.isReadOnly() to detect non-writable
+          columns when connected to MySQL-4.1 or newer, based on
+          existence of 'original' table and column names.
+        </para>
+      </listitem>
 
-    - Fixed DatabaseMetaData.getTypes() returning incorrect (i.e. non-negative)
-      scale for the 'NUMERIC' type.
+      <listitem>
+        <para>
+          Fixed BUG#5664, ResultSet.updateByte() when on insert row
+          throws ArrayOutOfBoundsException.
+        </para>
+      </listitem>
 
-    - Fixed BUG#6198, off-by-one bug in Buffer.readString(string).
+      <listitem>
+        <para>
+          Fixed DatabaseMetaData.getTypes() returning incorrect (i.e.
+          non-negative) scale for the 'NUMERIC' type.
+        </para>
+      </listitem>
 
-    - Made TINYINT(1) -&gt; BIT/Boolean conversion configurable via 'tinyInt1isBit'
-      property (default 'true' to be JDBC compliant out of the box).
+      <listitem>
+        <para>
+          Fixed BUG#6198, off-by-one bug in Buffer.readString(string).
+        </para>
+      </listitem>
 
-    - Only set 'character_set_results' during connection establishment if
-      server version &gt;= 4.1.1.
+      <listitem>
+        <para>
+          Made TINYINT(1) -&gt; BIT/Boolean conversion configurable via
+          'tinyInt1isBit' property (default 'true' to be JDBC compliant
+          out of the box).
+        </para>
+      </listitem>
 
-    - Fixed regression where useUnbufferedInput was defaulting to 'false'.
+      <listitem>
+        <para>
+          Only set 'character_set_results' during connection
+          establishment if server version &gt;= 4.1.1.
+        </para>
+      </listitem>
 
-    - Fixed BUG#6231, ResultSet.getTimestamp() on a column with TIME in it
-      fails.
-</programlisting>
+      <listitem>
+        <para>
+          Fixed regression where useUnbufferedInput was defaulting to
+          'false'.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Fixed BUG#6231, ResultSet.getTimestamp() on a column with TIME
+          in it fails.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-3-0-15">
 
     <title>&title-cj-news-3-0-15;</title>
 
-<programlisting>
-    - Fixed BUG#4010 - StringUtils.escapeEasternUnicodeByteStream is still
-      broken for GBK
+    <itemizedlist>
 
-    - Fixed BUG#4334 - Failover for autoReconnect not using port #'s for any
-      hosts, and not retrying all hosts. (WARN: This required a change to
-      the SocketFactory connect() method signature, which is now
+      <listitem>
+        <para>
+          Fixed BUG#4010 - StringUtils.escapeEasternUnicodeByteStream is
+          still broken for GBK
+        </para>
+      </listitem>
 
-       public Socket connect(String host, int portNumber, Properties props)
+      <listitem>
+        <para>
+          Fixed BUG#4334 - Failover for autoReconnect not using port #'s
+          for any hosts, and not retrying all hosts. (WARN: This
+          required a change to the SocketFactory connect() method
+          signature, which is now public Socket connect(String host, int
+          portNumber, Properties props) therefore any third-party socket
+          factories will have to be changed to support this signature.
+        </para>
+      </listitem>
 
-      therefore any third-party socket factories will have to be changed
-      to support this signature.
+      <listitem>
+        <para>
+          Logical connections created by MysqlConnectionPoolDataSource
+          will now issue a rollback() when they are closed and sent back
+          to the pool. If your application server/connection pool
+          already does this for you, you can set the
+          'rollbackOnPooledClose' property to false to avoid the
+          overhead of an extra rollback().
+        </para>
+      </listitem>
 
-    - Logical connections created by MysqlConnectionPoolDataSource will
-      now issue a rollback() when they are closed and sent back to the pool.
-      If your application server/connection pool already does this for you, you
-      can set the 'rollbackOnPooledClose' property to false to avoid the
-      overhead of an extra rollback().
+      <listitem>
+        <para>
+          Removed redundant calls to checkRowPos() in ResultSet.
+        </para>
+      </listitem>
 
-    - Removed redundant calls to checkRowPos() in ResultSet.
+      <listitem>
+        <para>
+          Fixed BUG#4742, 'DOUBLE' mapped twice in DBMD.getTypeInfo().
+        </para>
+      </listitem>
 
-    - Fixed BUG#4742, 'DOUBLE' mapped twice in DBMD.getTypeInfo().
+      <listitem>
+        <para>
+          Added FLOSS license exemption.
+        </para>
+      </listitem>
 
-    - Added FLOSS license exemption.
+      <listitem>
+        <para>
+          Fixed BUG#4808, calling .close() twice on a PooledConnection
+          causes NPE.
+        </para>
+      </listitem>
 
-    - Fixed BUG#4808, calling .close() twice on a PooledConnection causes NPE.
+      <listitem>
+        <para>
+          Fixed BUG#4138 and BUG#4860, DBMD.getColumns() returns
+          incorrect JDBC type for unsigned columns. This affects type
+          mappings for all numeric types in the RSMD.getColumnType() and
+          RSMD.getColumnTypeNames() methods as well, to ensure that
+          'like' types from DBMD.getColumns() match up with what
+          RSMD.getColumnType() and getColumnTypeNames() return.
+        </para>
+      </listitem>
 
-    - Fixed BUG#4138 and BUG#4860, DBMD.getColumns() returns incorrect JDBC
-      type for unsigned columns. This affects type mappings for all numeric
-      types in the RSMD.getColumnType() and RSMD.getColumnTypeNames() methods
-      as well, to ensure that 'like' types from DBMD.getColumns() match up
-      with what RSMD.getColumnType() and getColumnTypeNames() return.
+      <listitem>
+        <para>
+          'Production' - 'GA' in naming scheme of distributions.
+        </para>
+      </listitem>
 
-    - 'Production' - 'GA' in naming scheme of distributions.
+      <listitem>
+        <para>
+          Fix for BUG#4880, RSMD.getPrecision() returning 0 for
+          non-numeric types (should return max length in chars for
+          non-binary types, max length in bytes for binary types). This
+          fix also fixes mapping of RSMD.getColumnType() and
+          RSMD.getColumnTypeName() for the BLOB types based on the
+          length sent from the server (the server doesn't distinguish
+          between TINYBLOB, BLOB, MEDIUMBLOB or LONGBLOB at the network
+          protocol level).
+        </para>
+      </listitem>
 
-    - Fix for BUG#4880, RSMD.getPrecision() returning 0 for non-numeric types
-      (should return max length in chars for non-binary types, max length
-      in bytes for binary types). This fix also fixes mapping of
-      RSMD.getColumnType() and RSMD.getColumnTypeName() for the BLOB types based
-      on the length sent from the server (the server doesn't distinguish between
-      TINYBLOB, BLOB, MEDIUMBLOB or LONGBLOB at the network protocol level).
+      <listitem>
+        <para>
+          Fixed BUG#5022 - ResultSet should release Field[] instance in
+          .close().
+        </para>
+      </listitem>
 
-    - Fixed BUG#5022 - ResultSet should release Field[] instance in .close().
+      <listitem>
+        <para>
+          Fixed BUG#5069 -- ResultSet.getMetaData() should not return
+          incorrectly-initialized metadata if the result set has been
+          closed, but should instead throw an SQLException. Also fixed
+          for getRow() and getWarnings() and traversal methods by
+          calling checkClosed() before operating on instance-level
+          fields that are nullified during .close().
+        </para>
+      </listitem>
 
-    - Fixed BUG#5069 -- ResultSet.getMetaData() should not return
-      incorrectly-initialized metadata if the result set has been closed, but
-      should instead throw an SQLException. Also fixed for getRow() and
-      getWarnings() and traversal methods by calling checkClosed() before
-      operating on instance-level fields that are nullified during .close().
+      <listitem>
+        <para>
+          Parse new time zone variables from 4.1.x servers.
+        </para>
+      </listitem>
 
-    - Parse new timezone variables from 4.1.x servers.
+      <listitem>
+        <para>
+          Use _binary introducer for PreparedStatement.setBytes() and
+          set*Stream() when connected to MySQL-4.1.x or newer to avoid
+          misinterpretation during character conversion.
+        </para>
+      </listitem>
 
-    - Use _binary introducer for PreparedStatement.setBytes() and
-      set*Stream() when connected to MySQL-4.1.x or newer to avoid
-      misinterpretation during character conversion.
-</programlisting>
+    </itemizedlist>
 
   </section>
 
@@ -1969,1635 +3167,3473 @@
 
     <title>&title-cj-news-3-0-14;</title>
 
-<programlisting>
-    - Fixed URL parsing error
-</programlisting>
+    <itemizedlist>
 
+      <listitem>
+        <para>
+          Fixed URL parsing error
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-3-0-13">
 
     <title>&title-cj-news-3-0-13;</title>
 
-<programlisting>
-    - Fixed BUG#3848 - Using a MySQLDatasource without server name fails
+    <itemizedlist>
 
-    - Fixed BUG#3920 - "No Database Selected" when using
-    MysqlConnectionPoolDataSource.
+      <listitem>
+        <para>
+          Fixed BUG#3848 - Using a MySQLDatasource without server name
+          fails
+        </para>
+      </listitem>
 
-    - Fixed BUG#3873 - PreparedStatement.getGeneratedKeys() method returns only
-    1 result for batched insertions
-</programlisting>
+      <listitem>
+        <para>
+          Fixed BUG#3920 - "No Database Selected" when using
+          MysqlConnectionPoolDataSource.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Fixed BUG#3873 - PreparedStatement.getGeneratedKeys() method
+          returns only 1 result for batched insertions
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-3-0-12">
 
     <title>&title-cj-news-3-0-12;</title>
 
-<programlisting>
-    - Add unsigned attribute to DatabaseMetaData.getColumns() output
-    in the TYPE_NAME column.
+    <itemizedlist>
 
-    - Added 'failOverReadOnly' property, to allow end-user to configure
-    state of connection (read-only/writable) when failed over.
+      <listitem>
+        <para>
+          Add unsigned attribute to DatabaseMetaData.getColumns() output
+          in the TYPE_NAME column.
+        </para>
+      </listitem>
 
-    - Backported 'change user' and 'reset server state' functionality
-      from 3.1 branch, to allow clients of MysqlConnectionPoolDataSource
-      to reset server state on getConnection() on a pooled connection.
+      <listitem>
+        <para>
+          Added 'failOverReadOnly' property, to allow end-user to
+          configure state of connection (read-only/writable) when failed
+          over.
+        </para>
+      </listitem>
 
-    - Don't escape SJIS/GBK/BIG5 when using MySQL-4.1 or newer.
+      <listitem>
+        <para>
+          Backported 'change user' and 'reset server state'
+          functionality from 3.1 branch, to allow clients of
+          MysqlConnectionPoolDataSource to reset server state on
+          getConnection() on a pooled connection.
+        </para>
+      </listitem>
 
-    - Allow 'url' parameter for MysqlDataSource and MysqlConnectionPool
-      DataSource so that passing of other properties is possible from
-      inside appservers.
+      <listitem>
+        <para>
+          Don't escape SJIS/GBK/BIG5 when using MySQL-4.1 or newer.
+        </para>
+      </listitem>
 
-    - Map duplicate key and foreign key errors to SQLState of
-      '23000'.
+      <listitem>
+        <para>
+          Allow 'url' parameter for MysqlDataSource and
+          MysqlConnectionPool DataSource so that passing of other
+          properties is possible from inside appservers.
+        </para>
+      </listitem>
 
-    - Backport documentation tooling from 3.1 branch.
+      <listitem>
+        <para>
+          Map duplicate key and foreign key errors to SQLState of
+          '23000'.
+        </para>
+      </listitem>
 
-    - Return creating statement for ResultSets created by
-      getGeneratedKeys() (BUG#2957)
+      <listitem>
+        <para>
+          Backport documentation tooling from 3.1 branch.
+        </para>
+      </listitem>
 
-    - Allow java.util.Date to be sent in as parameter to
-      PreparedStatement.setObject(), converting it to a Timestamp
-      to maintain full precision (BUG#3103).
+      <listitem>
+        <para>
+          Return creating statement for ResultSets created by
+          getGeneratedKeys() (BUG#2957)
+        </para>
+      </listitem>
 
-    - Don't truncate BLOBs/CLOBs when using setBytes() and/or
-      setBinary/CharacterStream() (BUG#2670).
+      <listitem>
+        <para>
+          Allow java.util.Date to be sent in as parameter to
+          PreparedStatement.setObject(), converting it to a Timestamp to
+          maintain full precision (BUG#3103).
+        </para>
+      </listitem>
 
-    - Dynamically configure character set mappings for field-level
-      character sets on MySQL-4.1.0 and newer using 'SHOW COLLATION'
-      when connecting.
+      <listitem>
+        <para>
+          Don't truncate BLOBs/CLOBs when using setBytes() and/or
+          setBinary/CharacterStream() (BUG#2670).
+        </para>
+      </listitem>
 
-    - Map 'binary' character set to 'US-ASCII' to support DATETIME
-      charset recognition for servers &gt;= 4.1.2
+      <listitem>
+        <para>
+          Dynamically configure character set mappings for field-level
+          character sets on MySQL-4.1.0 and newer using 'SHOW COLLATION'
+          when connecting.
+        </para>
+      </listitem>
 
-    - Use 'SET character_set_results" during initialization to allow any
-      charset to be returned to the driver for result sets.
+      <listitem>
+        <para>
+          Map 'binary' character set to 'US-ASCII' to support DATETIME
+          charset recognition for servers &gt;= 4.1.2
+        </para>
+      </listitem>
 
-    - Use charsetnr returned during connect to encode queries before
-      issuing 'SET NAMES' on MySQL &gt;= 4.1.0.
+      <listitem>
+        <para>
+          Use 'SET character_set_results" during initialization to allow
+          any charset to be returned to the driver for result sets.
+        </para>
+      </listitem>
 
-    - Add helper methods to ResultSetMetaData (getColumnCharacterEncoding()
-      and getColumnCharacterSet()) to allow end-users to see what charset
-      the driver thinks it should be using for the column.
+      <listitem>
+        <para>
+          Use charsetnr returned during connect to encode queries before
+          issuing 'SET NAMES' on MySQL &gt;= 4.1.0.
+        </para>
+      </listitem>
 
-    - Only set character_set_results for MySQL &gt;= 4.1.0.
+      <listitem>
+        <para>
+          Add helper methods to ResultSetMetaData
+          (getColumnCharacterEncoding() and getColumnCharacterSet()) to
+          allow end-users to see what charset the driver thinks it
+          should be using for the column.
+        </para>
+      </listitem>
 
-    - Fixed BUG#3511, StringUtils.escapeSJISByteStream() not covering all
-      eastern double-byte charsets correctly.
+      <listitem>
+        <para>
+          Only set character_set_results for MySQL &gt;= 4.1.0.
+        </para>
+      </listitem>
 
-    - Renamed StringUtils.escapeSJISByteStream() to more appropriate
-      escapeEasternUnicodeByteStream().
+      <listitem>
+        <para>
+          Fixed BUG#3511, StringUtils.escapeSJISByteStream() not
+          covering all eastern double-byte charsets correctly.
+        </para>
+      </listitem>
 
-    - Fixed BUG#3554 - Not specifying database in URL caused MalformedURL
-      exception.
+      <listitem>
+        <para>
+          Renamed StringUtils.escapeSJISByteStream() to more appropriate
+          escapeEasternUnicodeByteStream().
+        </para>
+      </listitem>
 
-    - Auto-convert MySQL encoding names to Java encoding names if used
-      for characterEncoding property.
+      <listitem>
+        <para>
+          Fixed BUG#3554 - Not specifying database in URL caused
+          MalformedURL exception.
+        </para>
+      </listitem>
 
-    - Added encoding names that are recognized on some JVMs to fix case
-      where they were reverse-mapped to MySQL encoding names incorrectly.
+      <listitem>
+        <para>
+          Auto-convert MySQL encoding names to Java encoding names if
+          used for characterEncoding property.
+        </para>
+      </listitem>
 
-    - Use junit.textui.TestRunner for all unit tests (to allow them to be
-      run from the command line outside of Ant or Eclipse).
+      <listitem>
+        <para>
+          Added encoding names that are recognized on some JVMs to fix
+          case where they were reverse-mapped to MySQL encoding names
+          incorrectly.
+        </para>
+      </listitem>
 
-    - Fixed BUG#3557 - UpdatableResultSet not picking up default values
-      for moveToInsertRow().
+      <listitem>
+        <para>
+          Use junit.textui.TestRunner for all unit tests (to allow them
+          to be run from the command line outside of Ant or Eclipse).
+        </para>
+      </listitem>
 
-    - Fixed BUG#3570 - inconsistent reporting of data type. The server
-      still doesn't return all types for *BLOBs *TEXT correctly, so the
-      driver won't return those correctly.
+      <listitem>
+        <para>
+          Fixed BUG#3557 - UpdatableResultSet not picking up default
+          values for moveToInsertRow().
+        </para>
+      </listitem>
 
-    - Fixed BUG#3520 -- DBMD.getSQLStateType() returns incorrect value.
+      <listitem>
+        <para>
+          Fixed BUG#3570 - inconsistent reporting of data type. The
+          server still doesn't return all types for *BLOBs *TEXT
+          correctly, so the driver won't return those correctly.
+        </para>
+      </listitem>
 
-    - Fixed regression in PreparedStatement.setString() and eastern character
-      encodings.
+      <listitem>
+        <para>
+          Fixed BUG#3520 -- DBMD.getSQLStateType() returns incorrect
+          value.
+        </para>
+      </listitem>
 
-    - Made StringRegressionTest 4.1-unicode aware.
-</programlisting>
+      <listitem>
+        <para>
+          Fixed regression in PreparedStatement.setString() and eastern
+          character encodings.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Made StringRegressionTest 4.1-unicode aware.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-3-0-11">
 
     <title>&title-cj-news-3-0-11;</title>
 
-<programlisting>
-    - Trigger a 'SET NAMES utf8' when encoding is forced to 'utf8' _or_
-    'utf-8' via the 'characterEncoding' property. Previously, only the
-    Java-style encoding name of 'utf-8' would trigger this.
+    <itemizedlist>
 
-    - AutoReconnect time was growing faster than exponentially (BUG#2447).
+      <listitem>
+        <para>
+          Trigger a 'SET NAMES utf8' when encoding is forced to 'utf8'
+          _or_ 'utf-8' via the 'characterEncoding' property. Previously,
+          only the Java-style encoding name of 'utf-8' would trigger
+          this.
+        </para>
+      </listitem>
 
-    - Fixed failover always going to last host in list (BUG#2578)
+      <listitem>
+        <para>
+          AutoReconnect time was growing faster than exponentially
+          (BUG#2447).
+        </para>
+      </listitem>
 
-    - Added 'useUnbufferedInput' parameter, and now use it by default
-      (due to JVM issue
-      http://developer.java.sun.com/developer/bugParade/bugs/4401235.html)
+      <listitem>
+        <para>
+          Fixed failover always going to last host in list (BUG#2578)
+        </para>
+      </listitem>
 
-    - Detect 'on/off' or '1','2','3' form of lower_case_table_names on
-      server.
+      <listitem>
+        <para>
+          Added 'useUnbufferedInput' parameter, and now use it by
+          default (due to JVM issue
+          http://developer.java.sun.com/developer/bugParade/bugs/4401235.html)
+        </para>
+      </listitem>
 
-    - Return 'java.lang.Integer' for TINYINT and SMALLINT types from
-      ResultSetMetaData.getColumnClassName() (fix for BUG#2852).
+      <listitem>
+        <para>
+          Detect 'on/off' or '1','2','3' form of lower_case_table_names
+          on server.
+        </para>
+      </listitem>
 
-    - Return 'java.lang.Double' for FLOAT type from ResultSetMetaData.
-      getColumnClassName() (fix for BUG#2855).
+      <listitem>
+        <para>
+          Return 'java.lang.Integer' for TINYINT and SMALLINT types from
+          ResultSetMetaData.getColumnClassName() (fix for BUG#2852).
+        </para>
+      </listitem>
 
-    - Return '[B' instead of java.lang.Object for BINARY, VARBINARY and
-      LONGVARBINARY types from ResultSetMetaData.getColumnClassName()
-      (JDBC compliance).
+      <listitem>
+        <para>
+          Return 'java.lang.Double' for FLOAT type from
+          ResultSetMetaData. getColumnClassName() (fix for BUG#2855).
+        </para>
+      </listitem>
 
-    - Issue connection events on all instances created from a
-      ConnectionPoolDataSource.
-</programlisting>
+      <listitem>
+        <para>
+          Return '[B' instead of java.lang.Object for BINARY, VARBINARY
+          and LONGVARBINARY types from
+          ResultSetMetaData.getColumnClassName() (JDBC compliance).
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Issue connection events on all instances created from a
+          ConnectionPoolDataSource.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-3-0-10">
 
     <title>&title-cj-news-3-0-10;</title>
 
-<programlisting>
-    - Don't count quoted id's when inside a 'string' in PreparedStatement
-      parsing (fix for BUG#1511).
+    <itemizedlist>
 
-    - 'Friendlier' exception message for PacketTooLargeException
-       (BUG#1534).
+      <listitem>
+        <para>
+          Don't count quoted id's when inside a 'string' in
+          PreparedStatement parsing (fix for BUG#1511).
+        </para>
+      </listitem>
 
-    - Backported fix for aliased tables and UpdatableResultSets in
-      checkUpdatability() method from 3.1 branch.
+      <listitem>
+        <para>
+          'Friendlier' exception message for PacketTooLargeException
+          (BUG#1534).
+        </para>
+      </listitem>
 
-    - Fix for ArrayIndexOutOfBounds exception when using Statement.setMaxRows()
-      (BUG#1695).
+      <listitem>
+        <para>
+          Backported fix for aliased tables and UpdatableResultSets in
+          checkUpdatability() method from 3.1 branch.
+        </para>
+      </listitem>
 
-    - Fixed BUG#1576, dealing with large blobs and split packets not being
-      read correctly.
+      <listitem>
+        <para>
+          Fix for ArrayIndexOutOfBounds exception when using
+          Statement.setMaxRows() (BUG#1695).
+        </para>
+      </listitem>
 
-    - Fixed regression of Statement.getGeneratedKeys() and REPLACE statements.
+      <listitem>
+        <para>
+          Fixed BUG#1576, dealing with large blobs and split packets not
+          being read correctly.
+        </para>
+      </listitem>
 
-    - Fixed BUG#1630, subsequent call to ResultSet.updateFoo() causes NPE if
-      result set is not updatable.
+      <listitem>
+        <para>
+          Fixed regression of Statement.getGeneratedKeys() and REPLACE
+          statements.
+        </para>
+      </listitem>
 
-    - Fix for 4.1.1-style auth with no password.
+      <listitem>
+        <para>
+          Fixed BUG#1630, subsequent call to ResultSet.updateFoo()
+          causes NPE if result set is not updatable.
+        </para>
+      </listitem>
 
-    - Fix for BUG#1731, Foreign Keys column sequence is not consistent in
-      DatabaseMetaData.getImported/Exported/CrossReference().
+      <listitem>
+        <para>
+          Fix for 4.1.1-style auth with no password.
+        </para>
+      </listitem>
 
-    - Fix for BUG#1775 - DatabaseMetaData.getSystemFunction() returning
-      bad function 'VResultsSion'.
+      <listitem>
+        <para>
+          Fix for BUG#1731, Foreign Keys column sequence is not
+          consistent in
+          DatabaseMetaData.getImported/Exported/CrossReference().
+        </para>
+      </listitem>
 
-    - Fix for BUG#1592 -- cross-database updatable result sets
-      are not checked for updatability correctly.
+      <listitem>
+        <para>
+          Fix for BUG#1775 - DatabaseMetaData.getSystemFunction()
+          returning bad function 'VResultsSion'.
+        </para>
+      </listitem>
 
-    - DatabaseMetaData.getColumns() should return Types.LONGVARCHAR for
-      MySQL LONGTEXT type.
+      <listitem>
+        <para>
+          Fix for BUG#1592 -- cross-database updatable result sets are
+          not checked for updatability correctly.
+        </para>
+      </listitem>
 
-    - ResultSet.getObject() on TINYINT and SMALLINT columns should return
-      Java type 'Integer' (BUG#1913)
+      <listitem>
+        <para>
+          DatabaseMetaData.getColumns() should return Types.LONGVARCHAR
+          for MySQL LONGTEXT type.
+        </para>
+      </listitem>
 
-    - Added 'alwaysClearStream' connection property, which causes the driver
-      to always empty any remaining data on the input stream before
-      each query.
+      <listitem>
+        <para>
+          ResultSet.getObject() on TINYINT and SMALLINT columns should
+          return Java type 'Integer' (BUG#1913)
+        </para>
+      </listitem>
 
-    - Added more descriptive error message 'Server Configuration Denies
-      Access to DataSource', as well as retrieval of message from server.
+      <listitem>
+        <para>
+          Added 'alwaysClearStream' connection property, which causes
+          the driver to always empty any remaining data on the input
+          stream before each query.
+        </para>
+      </listitem>
 
-    - Autoreconnect code didn't set catalog upon reconnect if it had been
-      changed.
+      <listitem>
+        <para>
+          Added more descriptive error message 'Server Configuration
+          Denies Access to DataSource', as well as retrieval of message
+          from server.
+        </para>
+      </listitem>
 
-    - Implement ResultSet.updateClob().
+      <listitem>
+        <para>
+          Autoreconnect code didn't set catalog upon reconnect if it had
+          been changed.
+        </para>
+      </listitem>
 
-    - ResultSetMetaData.isCaseSensitive() returned wrong value for CHAR/VARCHAR
-      columns.
+      <listitem>
+        <para>
+          Implement ResultSet.updateClob().
+        </para>
+      </listitem>
 
-    - Fix for BUG#1933 -- Connection property "maxRows" not honored.
+      <listitem>
+        <para>
+          ResultSetMetaData.isCaseSensitive() returned wrong value for
+          CHAR/VARCHAR columns.
+        </para>
+      </listitem>
 
-    - Fix for BUG#1925 -- Statements being created too many times in
-      DBMD.extractForeignKeyFromCreateTable().
+      <listitem>
+        <para>
+          Fix for BUG#1933 -- Connection property "maxRows" not honored.
+        </para>
+      </listitem>
 
-    - Fix for BUG#1914 -- Support escape sequence {fn convert ... }
+      <listitem>
+        <para>
+          Fix for BUG#1925 -- Statements being created too many times in
+          DBMD.extractForeignKeyFromCreateTable().
+        </para>
+      </listitem>
 
-    - Fix for BUG#1958 -- ArrayIndexOutOfBounds when parameter number ==
-      number of parameters + 1.
+      <listitem>
+        <para>
+          Fix for BUG#1914 -- Support escape sequence {fn convert ... }
+        </para>
+      </listitem>
 
-    - Fix for BUG#2006 -- ResultSet.findColumn() should use first matching
-      column name when there are duplicate column names in SELECT query
-      (JDBC-compliance).
+      <listitem>
+        <para>
+          Fix for BUG#1958 -- ArrayIndexOutOfBounds when parameter
+          number == number of parameters + 1.
+        </para>
+      </listitem>
 
-    - Removed static synchronization bottleneck from
-      PreparedStatement.setTimestamp().
+      <listitem>
+        <para>
+          Fix for BUG#2006 -- ResultSet.findColumn() should use first
+          matching column name when there are duplicate column names in
+          SELECT query (JDBC-compliance).
+        </para>
+      </listitem>
 
-    - Removed static synchronization bottleneck from instance factory
-      method of SingleByteCharsetConverter.
+      <listitem>
+        <para>
+          Removed static synchronization bottleneck from
+          PreparedStatement.setTimestamp().
+        </para>
+      </listitem>
 
-    - Enable caching of the parsing stage of prepared statements via
-      the 'cachePrepStmts', 'prepStmtCacheSize' and 'prepStmtCacheSqlLimit'
-      properties (disabled by default).
+      <listitem>
+        <para>
+          Removed static synchronization bottleneck from instance
+          factory method of SingleByteCharsetConverter.
+        </para>
+      </listitem>
 
-    - Speed up parsing of PreparedStatements, try to use one-pass whenever
-      possible.
+      <listitem>
+        <para>
+          Enable caching of the parsing stage of prepared statements via
+          the 'cachePrepStmts', 'prepStmtCacheSize' and
+          'prepStmtCacheSqlLimit' properties (disabled by default).
+        </para>
+      </listitem>
 
-    - Fixed security exception when used in Applets (applets can't
-      read the system property 'file.encoding' which is needed
-      for LOAD DATA LOCAL INFILE).
+      <listitem>
+        <para>
+          Speed up parsing of PreparedStatements, try to use one-pass
+          whenever possible.
+        </para>
+      </listitem>
 
-    - Use constants for SQLStates.
+      <listitem>
+        <para>
+          Fixed security exception when used in Applets (applets can't
+          read the system property 'file.encoding' which is needed for
+          LOAD DATA LOCAL INFILE).
+        </para>
+      </listitem>
 
-    - Map charset 'ko18_ru' to 'ko18r' when connected to MySQL-4.1.0 or
-      newer.
+      <listitem>
+        <para>
+          Use constants for SQLStates.
+        </para>
+      </listitem>
 
-    - Ensure that Buffer.writeString() saves room for the \0.
+      <listitem>
+        <para>
+          Map charset 'ko18_ru' to 'ko18r' when connected to MySQL-4.1.0
+          or newer.
+        </para>
+      </listitem>
 
-    - Fixed exception 'Unknown character set 'danish' on connect w/ JDK-1.4.0
+      <listitem>
+        <para>
+          Ensure that Buffer.writeString() saves room for the \0.
+        </para>
+      </listitem>
 
-    - Fixed mappings in SQLError to report deadlocks with SQLStates of '41000'.
+      <listitem>
+        <para>
+          Fixed exception 'Unknown character set 'danish' on connect w/
+          JDK-1.4.0
+        </para>
+      </listitem>
 
-    - 'maxRows' property would affect internal statements, so check it for all
-      statement creation internal to the driver, and set to 0 when it is not.
-</programlisting>
+      <listitem>
+        <para>
+          Fixed mappings in SQLError to report deadlocks with SQLStates
+          of '41000'.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          'maxRows' property would affect internal statements, so check
+          it for all statement creation internal to the driver, and set
+          to 0 when it is not.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-3-0-9">
 
     <title>&title-cj-news-3-0-9;</title>
 
-<programlisting>
-    - Faster date handling code in ResultSet and PreparedStatement (no longer
-      uses Date methods that synchronize on static calendars).
+    <itemizedlist>
 
-    - Fixed test for end of buffer in Buffer.readString().
+      <listitem>
+        <para>
+          Faster date handling code in ResultSet and PreparedStatement
+          (no longer uses Date methods that synchronize on static
+          calendars).
+        </para>
+      </listitem>
 
-    - Fixed ResultSet.previous() behavior to move current
-      position to before result set when on first row
-      of result set (bugs.mysql.com BUG#496)
+      <listitem>
+        <para>
+          Fixed test for end of buffer in Buffer.readString().
+        </para>
+      </listitem>
 
-    - Fixed Statement and PreparedStatement issuing bogus queries
-      when setMaxRows() had been used and a LIMIT clause was present
-      in the query.
+      <listitem>
+        <para>
+          Fixed ResultSet.previous() behavior to move current position
+          to before result set when on first row of result set
+          (bugs.mysql.com BUG#496)
+        </para>
+      </listitem>
 
-    - Fixed BUG#661 - refreshRow didn't work when primary key values
-      contained values that needed to be escaped (they ended up being
-      doubly-escaped).
+      <listitem>
+        <para>
+          Fixed Statement and PreparedStatement issuing bogus queries
+          when setMaxRows() had been used and a LIMIT clause was present
+          in the query.
+        </para>
+      </listitem>
 
-    - Support InnoDB contraint names when extracting foreign key info
-      in DatabaseMetaData BUG#517 and BUG#664
-      (impl. ideas from Parwinder Sekhon)
+      <listitem>
+        <para>
+          Fixed BUG#661 - refreshRow didn't work when primary key values
+          contained values that needed to be escaped (they ended up
+          being doubly-escaped).
+        </para>
+      </listitem>
 
-    - Backported 4.1 protocol changes from 3.1 branch (server-side SQL
-      states, new field info, larger client capability flags,
-      connect-with-database, and so forth).
+      <listitem>
+        <para>
+          Support InnoDB contraint names when extracting foreign key
+          info in DatabaseMetaData BUG#517 and BUG#664 (impl. ideas from
+          Parwinder Sekhon)
+        </para>
+      </listitem>
 
-    - Fix UpdatableResultSet to return values for getXXX() when on
-      insert row (BUG#675).
+      <listitem>
+        <para>
+          Backported 4.1 protocol changes from 3.1 branch (server-side
+          SQL states, new field info, larger client capability flags,
+          connect-with-database, and so forth).
+        </para>
+      </listitem>
 
-    - The insertRow in an UpdatableResultSet is now loaded with
-      the default column values when moveToInsertRow() is called
-      (BUG#688)
+      <listitem>
+        <para>
+          Fix UpdatableResultSet to return values for getXXX() when on
+          insert row (BUG#675).
+        </para>
+      </listitem>
 
-    - DatabaseMetaData.getColumns() wasn't returning NULL for
-      default values that are specified as NULL.
+      <listitem>
+        <para>
+          The insertRow in an UpdatableResultSet is now loaded with the
+          default column values when moveToInsertRow() is called
+          (BUG#688)
+        </para>
+      </listitem>
 
-    - Change default statement type/concurrency to TYPE_FORWARD_ONLY
-      and CONCUR_READ_ONLY (spec compliance).
+      <listitem>
+        <para>
+          DatabaseMetaData.getColumns() wasn't returning NULL for
+          default values that are specified as NULL.
+        </para>
+      </listitem>
 
-    - Don't try and reset isolation level on reconnect if MySQL doesn't
-      support them.
+      <listitem>
+        <para>
+          Change default statement type/concurrency to TYPE_FORWARD_ONLY
+          and CONCUR_READ_ONLY (spec compliance).
+        </para>
+      </listitem>
 
-    - Don't wrap SQLExceptions in RowDataDynamic.
+      <listitem>
+        <para>
+          Don't try and reset isolation level on reconnect if MySQL
+          doesn't support them.
+        </para>
+      </listitem>
 
-    - Don't change timestamp TZ twice if useTimezone==true (BUG#774)
+      <listitem>
+        <para>
+          Don't wrap SQLExceptions in RowDataDynamic.
+        </para>
+      </listitem>
 
-    - Fixed regression in large split-packet handling (BUG#848).
+      <listitem>
+        <para>
+          Don't change timestamp TZ twice if useTimezone==true (BUG#774)
+        </para>
+      </listitem>
 
-    - Better diagnostic error messages in exceptions for 'streaming'
-      result sets.
+      <listitem>
+        <para>
+          Fixed regression in large split-packet handling (BUG#848).
+        </para>
+      </listitem>
 
-    - Issue exception on ResultSet.getXXX() on empty result set (wasn't
-      caught in some cases).
+      <listitem>
+        <para>
+          Better diagnostic error messages in exceptions for 'streaming'
+          result sets.
+        </para>
+      </listitem>
 
-    - Don't hide messages from exceptions thrown in I/O layers.
+      <listitem>
+        <para>
+          Issue exception on ResultSet.getXXX() on empty result set
+          (wasn't caught in some cases).
+        </para>
+      </listitem>
 
-    - Don't fire connection closed events when closing pooled connections, or
-      on PooledConnection.getConnection() with already open connections (BUG#884).
+      <listitem>
+        <para>
+          Don't hide messages from exceptions thrown in I/O layers.
+        </para>
+      </listitem>
 
-    - Clip +/- INF (to smallest and largest representative values for the type in
-      MySQL) and NaN (to 0) for setDouble/setFloat(), and issue a warning on the
-      statement when the server does not support +/- INF or NaN.
+      <listitem>
+        <para>
+          Don't fire connection closed events when closing pooled
+          connections, or on PooledConnection.getConnection() with
+          already open connections (BUG#884).
+        </para>
+      </listitem>
 
-    - Fix for BUG#879, double-escaping of '\' when charset is SJIS or GBK and '\'
-      appears in non-escaped input.
+      <listitem>
+        <para>
+          Clip +/- INF (to smallest and largest representative values
+          for the type in MySQL) and NaN (to 0) for
+          setDouble/setFloat(), and issue a warning on the statement
+          when the server does not support +/- INF or NaN.
+        </para>
+      </listitem>
 
-    - When emptying input stream of unused rows for 'streaming' result sets,
-      have the current thread yield() every 100 rows in order to not monopolize
-      CPU time.
+      <listitem>
+        <para>
+          Fix for BUG#879, double-escaping of '\' when charset is SJIS
+          or GBK and '\' appears in non-escaped input.
+        </para>
+      </listitem>
 
-    - Fixed BUG#1099, DatabaseMetaData.getColumns() getting confused about the
-      keyword 'set' in character columns.
+      <listitem>
+        <para>
+          When emptying input stream of unused rows for 'streaming'
+          result sets, have the current thread yield() every 100 rows in
+          order to not monopolize CPU time.
+        </para>
+      </listitem>
 
-    - Fixed deadlock issue with Statement.setMaxRows().
+      <listitem>
+        <para>
+          Fixed BUG#1099, DatabaseMetaData.getColumns() getting confused
+          about the keyword 'set' in character columns.
+        </para>
+      </listitem>
 
-    - Fixed CLOB.truncate(), BUG#1130
+      <listitem>
+        <para>
+          Fixed deadlock issue with Statement.setMaxRows().
+        </para>
+      </listitem>
 
-    - Optimized CLOB.setChracterStream(), BUG#1131
+      <listitem>
+        <para>
+          Fixed CLOB.truncate(), BUG#1130
+        </para>
+      </listitem>
 
-    - Made databaseName, portNumber and serverName optional parameters
-      for MysqlDataSourceFactory (BUG#1246)
+      <listitem>
+        <para>
+          Optimized CLOB.setChracterStream(), BUG#1131
+        </para>
+      </listitem>
 
-    - Fix for BUG#1247 -- ResultSet.get/setString mashing char 127
+      <listitem>
+        <para>
+          Made databaseName, portNumber and serverName optional
+          parameters for MysqlDataSourceFactory (BUG#1246)
+        </para>
+      </listitem>
 
-    - Backported auth. changes for 4.1.1 and newer from 3.1 branch.
+      <listitem>
+        <para>
+          Fix for BUG#1247 -- ResultSet.get/setString mashing char 127
+        </para>
+      </listitem>
 
-    - Added com.mysql.jdbc.util.BaseBugReport to help creation of testcases
-      for bug reports.
+      <listitem>
+        <para>
+          Backported auth. changes for 4.1.1 and newer from 3.1 branch.
+        </para>
+      </listitem>
 
-    - Added property to 'clobber' streaming results, by setting the
-      'clobberStreamingResults' property to 'true' (the default is 'false').
-      This will cause a 'streaming' ResultSet to be automatically
-      closed, and any oustanding data still streaming from the server to
-      be discarded if another query is executed before all the data has been
-      read from the server.
-</programlisting>
+      <listitem>
+        <para>
+          Added com.mysql.jdbc.util.BaseBugReport to help creation of
+          testcases for bug reports.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Added property to 'clobber' streaming results, by setting the
+          'clobberStreamingResults' property to 'true' (the default is
+          'false'). This will cause a 'streaming' ResultSet to be
+          automatically closed, and any oustanding data still streaming
+          from the server to be discarded if another query is executed
+          before all the data has been read from the server.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-3-0-8">
 
     <title>&title-cj-news-3-0-8;</title>
 
-<programlisting>
-    - Allow bogus URLs in Driver.getPropertyInfo().
+    <itemizedlist>
 
-    - Return list of generated keys when using multi-value INSERTS
-      with Statement.getGeneratedKeys().
+      <listitem>
+        <para>
+          Allow bogus URLs in Driver.getPropertyInfo().
+        </para>
+      </listitem>
 
-    - Use JVM charset with filenames and 'LOAD DATA [LOCAL] INFILE'
+      <listitem>
+        <para>
+          Return list of generated keys when using multi-value INSERTS
+          with Statement.getGeneratedKeys().
+        </para>
+      </listitem>
 
-    - Fix infinite loop with Connection.cleanup().
+      <listitem>
+        <para>
+          Use JVM charset with filenames and 'LOAD DATA [LOCAL] INFILE'
+        </para>
+      </listitem>
 
-    - Changed Ant target 'compile-core' to 'compile-driver', and
-      made testsuite compilation a separate target.
+      <listitem>
+        <para>
+          Fix infinite loop with Connection.cleanup().
+        </para>
+      </listitem>
 
-    - Fixed result set not getting set for Statement.executeUpdate(),
-      which affected getGeneratedKeys() and getUpdateCount() in
-      some cases.
+      <listitem>
+        <para>
+          Changed Ant target 'compile-core' to 'compile-driver', and
+          made testsuite compilation a separate target.
+        </para>
+      </listitem>
 
-    - Unicode character 0xFFFF in a string would cause the driver to
-      throw an ArrayOutOfBoundsException (Bug #378)
+      <listitem>
+        <para>
+          Fixed result set not getting set for
+          Statement.executeUpdate(), which affected getGeneratedKeys()
+          and getUpdateCount() in some cases.
+        </para>
+      </listitem>
 
-    - Return correct amount of generated keys when using 'REPLACE'
-      statements.
+      <listitem>
+        <para>
+          Unicode character 0xFFFF in a string would cause the driver to
+          throw an ArrayOutOfBoundsException (Bug #378)
+        </para>
+      </listitem>
 
-    - Fix problem detecting server character set in some cases.
+      <listitem>
+        <para>
+          Return correct amount of generated keys when using 'REPLACE'
+          statements.
+        </para>
+      </listitem>
 
-    - Fix row data decoding error when using _very_ large packets.
+      <listitem>
+        <para>
+          Fix problem detecting server character set in some cases.
+        </para>
+      </listitem>
 
-    - Optimized row data decoding.
+      <listitem>
+        <para>
+          Fix row data decoding error when using _very_ large packets.
+        </para>
+      </listitem>
 
-    - Issue exception when operating on an already-closed
-      prepared statement.
+      <listitem>
+        <para>
+          Optimized row data decoding.
+        </para>
+      </listitem>
 
-    - Fixed SJIS encoding bug, thanks to Naoto Sato.
+      <listitem>
+        <para>
+          Issue exception when operating on an already-closed prepared
+          statement.
+        </para>
+      </listitem>
 
-    - Optimized usage of EscapeProcessor.
+      <listitem>
+        <para>
+          Fixed SJIS encoding bug, thanks to Naoto Sato.
+        </para>
+      </listitem>
 
-    - Allow multiple calls to Statement.close()
-</programlisting>
+      <listitem>
+        <para>
+          Optimized usage of EscapeProcessor.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Allow multiple calls to Statement.close()
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-3-0-7">
 
     <title>&title-cj-news-3-0-7;</title>
 
-<programlisting>
-    - Fixed MysqlPooledConnection.close() calling wrong event type.
+    <itemizedlist>
 
-    - Fixed StringIndexOutOfBoundsException in PreparedStatement.
-      setClob().
+      <listitem>
+        <para>
+          Fixed MysqlPooledConnection.close() calling wrong event type.
+        </para>
+      </listitem>
 
-    - 4.1 Column Metadata fixes
+      <listitem>
+        <para>
+          Fixed StringIndexOutOfBoundsException in PreparedStatement.
+          setClob().
+        </para>
+      </listitem>
 
-    - Remove synchronization from Driver.connect() and
-      Driver.acceptsUrl().
+      <listitem>
+        <para>
+          4.1 Column Metadata fixes
+        </para>
+      </listitem>
 
-    - IOExceptions during a transaction now cause the Connection to
-      be closed.
+      <listitem>
+        <para>
+          Remove synchronization from Driver.connect() and
+          Driver.acceptsUrl().
+        </para>
+      </listitem>
 
-    - Fixed missing conversion for 'YEAR' type in ResultSetMetaData.
-      getColumnTypeName().
+      <listitem>
+        <para>
+          IOExceptions during a transaction now cause the Connection to
+          be closed.
+        </para>
+      </listitem>
 
-    - Don't pick up indexes that start with 'pri' as primary keys
-      for DBMD.getPrimaryKeys().
+      <listitem>
+        <para>
+          Fixed missing conversion for 'YEAR' type in ResultSetMetaData.
+          getColumnTypeName().
+        </para>
+      </listitem>
 
-    - Throw SQLExceptions when trying to do operations on a forcefully
-      closed Connection (i.e. when a communication link failure occurs).
+      <listitem>
+        <para>
+          Don't pick up indexes that start with 'pri' as primary keys
+          for DBMD.getPrimaryKeys().
+        </para>
+      </listitem>
 
-    - You can now toggle profiling on/off using
-      Connection.setProfileSql(boolean).
+      <listitem>
+        <para>
+          Throw SQLExceptions when trying to do operations on a
+          forcefully closed Connection (i.e. when a communication link
+          failure occurs).
+        </para>
+      </listitem>
 
-    - Fixed charset issues with database metadata (charset was not
-      getting set correctly).
+      <listitem>
+        <para>
+          You can now toggle profiling on/off using
+          Connection.setProfileSql(boolean).
+        </para>
+      </listitem>
 
-    - Updatable ResultSets can now be created for aliased tables/columns
-      when connected to MySQL-4.1 or newer.
+      <listitem>
+        <para>
+          Fixed charset issues with database metadata (charset was not
+          getting set correctly).
+        </para>
+      </listitem>
 
-    - Fixed 'LOAD DATA LOCAL INFILE' bug when file &gt; max_allowed_packet.
+      <listitem>
+        <para>
+          Updatable ResultSets can now be created for aliased
+          tables/columns when connected to MySQL-4.1 or newer.
+        </para>
+      </listitem>
 
-    - Fixed escaping of 0x5c ('\') character for GBK and Big5 charsets.
+      <listitem>
+        <para>
+          Fixed 'LOAD DATA LOCAL INFILE' bug when file &gt;
+          max_allowed_packet.
+        </para>
+      </listitem>
 
-    - Fixed ResultSet.getTimestamp() when underlying field is of type DATE.
+      <listitem>
+        <para>
+          Fixed escaping of 0x5c ('\') character for GBK and Big5
+          charsets.
+        </para>
+      </listitem>
 
-    - Ensure that packet size from alignPacketSize() does not
-      exceed MAX_ALLOWED_PACKET (JVM bug)
+      <listitem>
+        <para>
+          Fixed ResultSet.getTimestamp() when underlying field is of
+          type DATE.
+        </para>
+      </listitem>
 
-    - Don't reset Connection.isReadOnly() when autoReconnecting.
-</programlisting>
+      <listitem>
+        <para>
+          Ensure that packet size from alignPacketSize() does not exceed
+          MAX_ALLOWED_PACKET (JVM bug)
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Don't reset Connection.isReadOnly() when autoReconnecting.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-3-0-6">
 
     <title>&title-cj-news-3-0-6;</title>
 
-<programlisting>
-    - Fixed ResultSetMetaData to return "" when catalog not known.
-      Fixes NullPointerExceptions with Sun's CachedRowSet.
+    <itemizedlist>
 
-    - Fixed DBMD.getTypeInfo() and DBMD.getColumns() returning
-      different value for precision in TEXT/BLOB types.
+      <listitem>
+        <para>
+          Fixed ResultSetMetaData to return "" when catalog not known.
+          Fixes NullPointerExceptions with Sun's CachedRowSet.
+        </para>
+      </listitem>
 
-    - Allow ignoring of warning for 'non transactional tables' during
-      rollback (compliance/usability) by setting 'ignoreNonTxTables'
-      property to 'true'.
+      <listitem>
+        <para>
+          Fixed DBMD.getTypeInfo() and DBMD.getColumns() returning
+          different value for precision in TEXT/BLOB types.
+        </para>
+      </listitem>
 
-    - Fixed SQLExceptions getting swallowed on initial connect.
+      <listitem>
+        <para>
+          Allow ignoring of warning for 'non transactional tables'
+          during rollback (compliance/usability) by setting
+          'ignoreNonTxTables' property to 'true'.
+        </para>
+      </listitem>
 
-    - Fixed Statement.setMaxRows() to stop sending 'LIMIT' type queries
-      when not needed (performance)
+      <listitem>
+        <para>
+          Fixed SQLExceptions getting swallowed on initial connect.
+        </para>
+      </listitem>
 
-    - Clean up Statement query/method mismatch tests (i.e. INSERT not
-      allowed with .executeQuery()).
+      <listitem>
+        <para>
+          Fixed Statement.setMaxRows() to stop sending 'LIMIT' type
+          queries when not needed (performance)
+        </para>
+      </listitem>
 
-    - More checks added in ResultSet traversal method to catch
-      when in closed state.
+      <listitem>
+        <para>
+          Clean up Statement query/method mismatch tests (i.e. INSERT
+          not allowed with .executeQuery()).
+        </para>
+      </listitem>
 
-    - Fixed ResultSetMetaData.isWritable() to return correct value.
+      <listitem>
+        <para>
+          More checks added in ResultSet traversal method to catch when
+          in closed state.
+        </para>
+      </listitem>
 
-    - Add 'window' of different NULL sorting behavior to
-      DBMD.nullsAreSortedAtStart (4.0.2 to 4.0.10, true, otherwise,
-      no).
+      <listitem>
+        <para>
+          Fixed ResultSetMetaData.isWritable() to return correct value.
+        </para>
+      </listitem>
 
-    - Implemented Blob.setBytes(). You still need to pass the
-      resultant Blob back into an updatable ResultSet or
-      PreparedStatement to persist the changes, as MySQL does
-      not support 'locators'.
+      <listitem>
+        <para>
+          Add 'window' of different NULL sorting behavior to
+          DBMD.nullsAreSortedAtStart (4.0.2 to 4.0.10, true, otherwise,
+          no).
+        </para>
+      </listitem>
 
-    - Backported 4.1 charset field info changes from Connector/J 3.1
-</programlisting>
+      <listitem>
+        <para>
+          Implemented Blob.setBytes(). You still need to pass the
+          resultant Blob back into an updatable ResultSet or
+          PreparedStatement to persist the changes, as MySQL does not
+          support 'locators'.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Backported 4.1 charset field info changes from Connector/J 3.1
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-3-0-5">
 
     <title>&title-cj-news-3-0-5;</title>
 
-<programlisting>
-    - Fixed Buffer.fastSkipLenString() causing ArrayIndexOutOfBounds
-      exceptions with some queries when unpacking fields.
+    <itemizedlist>
 
-    - Implemented an empty TypeMap for Connection.getTypeMap() so that
-      some third-party apps work with MySQL (IBM WebSphere 5.0 Connection
-      pool).
+      <listitem>
+        <para>
+          Fixed Buffer.fastSkipLenString() causing ArrayIndexOutOfBounds
+          exceptions with some queries when unpacking fields.
+        </para>
+      </listitem>
 
-    - Added missing LONGTEXT type to DBMD.getColumns().
+      <listitem>
+        <para>
+          Implemented an empty TypeMap for Connection.getTypeMap() so
+          that some third-party apps work with MySQL (IBM WebSphere 5.0
+          Connection pool).
+        </para>
+      </listitem>
 
-    - Retrieve TX_ISOLATION from database for
-      Connection.getTransactionIsolation() when the MySQL version
-      supports it, instead of an instance variable.
+      <listitem>
+        <para>
+          Added missing LONGTEXT type to DBMD.getColumns().
+        </para>
+      </listitem>
 
-    - Quote table names in DatabaseMetaData.getColumns(),
-      getPrimaryKeys(), getIndexInfo(), getBestRowIdentifier()
+      <listitem>
+        <para>
+          Retrieve TX_ISOLATION from database for
+          Connection.getTransactionIsolation() when the MySQL version
+          supports it, instead of an instance variable.
+        </para>
+      </listitem>
 
-    - Greatly reduce memory required for setBinaryStream() in
-      PreparedStatements.
+      <listitem>
+        <para>
+          Quote table names in DatabaseMetaData.getColumns(),
+          getPrimaryKeys(), getIndexInfo(), getBestRowIdentifier()
+        </para>
+      </listitem>
 
-    - Fixed ResultSet.isBeforeFirst() for empty result sets.
+      <listitem>
+        <para>
+          Greatly reduce memory required for setBinaryStream() in
+          PreparedStatements.
+        </para>
+      </listitem>
 
-    - Added update options for foreign key metadata.
-</programlisting>
+      <listitem>
+        <para>
+          Fixed ResultSet.isBeforeFirst() for empty result sets.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Added update options for foreign key metadata.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-3-0-4">
 
     <title>&title-cj-news-3-0-4;</title>
 
-<programlisting>
-    - Added quoted identifiers to database names for
-      Connection.setCatalog.
+    <itemizedlist>
 
-    - Added support for quoted identifiers in PreparedStatement
-      parser.
+      <listitem>
+        <para>
+          Added quoted identifiers to database names for
+          Connection.setCatalog.
+        </para>
+      </listitem>
 
-    - Streamlined character conversion and byte[] handling in
-      PreparedStatements for setByte().
+      <listitem>
+        <para>
+          Added support for quoted identifiers in PreparedStatement
+          parser.
+        </para>
+      </listitem>
 
-    - Reduce memory footprint of PreparedStatements by sharing
-      outbound packet with MysqlIO.
+      <listitem>
+        <para>
+          Streamlined character conversion and byte[] handling in
+          PreparedStatements for setByte().
+        </para>
+      </listitem>
 
-    - Added 'strictUpdates' property to allow control of amount
-      of checking for 'correctness' of updatable result sets. Set this
-      to 'false' if you want faster updatable result sets and you know
-      that you create them from SELECTs on tables with primary keys and
-      that you have selected all primary keys in your query.
+      <listitem>
+        <para>
+          Reduce memory footprint of PreparedStatements by sharing
+          outbound packet with MysqlIO.
+        </para>
+      </listitem>
 
-    - Added support for 4.0.8-style large packets.
+      <listitem>
+        <para>
+          Added 'strictUpdates' property to allow control of amount of
+          checking for 'correctness' of updatable result sets. Set this
+          to 'false' if you want faster updatable result sets and you
+          know that you create them from SELECTs on tables with primary
+          keys and that you have selected all primary keys in your
+          query.
+        </para>
+      </listitem>
 
-    - Fixed PreparedStatement.executeBatch() parameter overwriting.
-</programlisting>
+      <listitem>
+        <para>
+          Added support for 4.0.8-style large packets.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Fixed PreparedStatement.executeBatch() parameter overwriting.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-3-0-3">
 
     <title>&title-cj-news-3-0-3;</title>
 
-<programlisting>
-    - Changed charsToByte in SingleByteCharConverter to be non-static
+    <itemizedlist>
 
-    - Changed SingleByteCharConverter to use lazy initialization of each
-      converter.
+      <listitem>
+        <para>
+          Changed charsToByte in SingleByteCharConverter to be
+          non-static
+        </para>
+      </listitem>
 
-    - Fixed charset handling in Fields.java
+      <listitem>
+        <para>
+          Changed SingleByteCharConverter to use lazy initialization of
+          each converter.
+        </para>
+      </listitem>
 
-    - Implemented Connection.nativeSQL()
+      <listitem>
+        <para>
+          Fixed charset handling in Fields.java
+        </para>
+      </listitem>
 
-    - More robust escape tokenizer -- recognize '--' comments, and allow
-      nested escape sequences (see testsuite.EscapeProcessingTest)
+      <listitem>
+        <para>
+          Implemented Connection.nativeSQL()
+        </para>
+      </listitem>
 
-    - DBMD.getImported/ExportedKeys() now handles multiple foreign keys
-      per table.
+      <listitem>
+        <para>
+          More robust escape tokenizer -- recognize '--' comments, and
+          allow nested escape sequences (see
+          testsuite.EscapeProcessingTest)
+        </para>
+      </listitem>
 
-    - Fixed ResultSetMetaData.getPrecision() returning incorrect values
-      for some floating point types.
+      <listitem>
+        <para>
+          DBMD.getImported/ExportedKeys() now handles multiple foreign
+          keys per table.
+        </para>
+      </listitem>
 
-    - Fixed ResultSetMetaData.getColumnTypeName() returning BLOB for
-      TEXT and TEXT for BLOB types.
+      <listitem>
+        <para>
+          Fixed ResultSetMetaData.getPrecision() returning incorrect
+          values for some floating point types.
+        </para>
+      </listitem>
 
-    - Fixed Buffer.isLastDataPacket() for 4.1 and newer servers.
+      <listitem>
+        <para>
+          Fixed ResultSetMetaData.getColumnTypeName() returning BLOB for
+          TEXT and TEXT for BLOB types.
+        </para>
+      </listitem>
 
-    - Added CLIENT_LONG_FLAG to be able to get more column flags
-      (isAutoIncrement() being the most important)
+      <listitem>
+        <para>
+          Fixed Buffer.isLastDataPacket() for 4.1 and newer servers.
+        </para>
+      </listitem>
 
-    - Because of above, implemented ResultSetMetaData.isAutoIncrement()
-      to use Field.isAutoIncrement().
+      <listitem>
+        <para>
+          Added CLIENT_LONG_FLAG to be able to get more column flags
+          (isAutoIncrement() being the most important)
+        </para>
+      </listitem>
 
-    - Honor 'lower_case_table_names' when enabled in the server when
-      doing table name comparisons in DatabaseMetaData methods.
+      <listitem>
+        <para>
+          Because of above, implemented
+          ResultSetMetaData.isAutoIncrement() to use
+          Field.isAutoIncrement().
+        </para>
+      </listitem>
 
-    - Some MySQL-4.1 protocol support (extended field info from selects)
+      <listitem>
+        <para>
+          Honor 'lower_case_table_names' when enabled in the server when
+          doing table name comparisons in DatabaseMetaData methods.
+        </para>
+      </listitem>
 
-    - Use non-aliased table/column names and database names to fullly
-      qualify tables and columns in UpdatableResultSet (requires
-      MySQL-4.1 or newer)
+      <listitem>
+        <para>
+          Some MySQL-4.1 protocol support (extended field info from
+          selects)
+        </para>
+      </listitem>
 
-    - Allow user to alter behavior of Statement/
-      PreparedStatement.executeBatch() via 'continueBatchOnError' property
-      (defaults to 'true').
+      <listitem>
+        <para>
+          Use non-aliased table/column names and database names to
+          fullly qualify tables and columns in UpdatableResultSet
+          (requires MySQL-4.1 or newer)
+        </para>
+      </listitem>
 
-    - Check for connection closed in more Connection methods
-      (createStatement, prepareStatement, setTransactionIsolation,
-      setAutoCommit).
+      <listitem>
+        <para>
+          Allow user to alter behavior of Statement/
+          PreparedStatement.executeBatch() via 'continueBatchOnError'
+          property (defaults to 'true').
+        </para>
+      </listitem>
 
-    - More robust implementation of updatable result sets. Checks that
-      _all_ primary keys of the table have been selected.
+      <listitem>
+        <para>
+          Check for connection closed in more Connection methods
+          (createStatement, prepareStatement, setTransactionIsolation,
+          setAutoCommit).
+        </para>
+      </listitem>
 
-    - 'LOAD DATA LOCAL INFILE ...' now works, if your server is configured
-      to allow it. Can be turned off with the 'allowLoadLocalInfile'
-      property (see the README).
+      <listitem>
+        <para>
+          More robust implementation of updatable result sets. Checks
+          that _all_ primary keys of the table have been selected.
+        </para>
+      </listitem>
 
-    - Substitute '?' for unknown character conversions in single-byte
-      character sets instead of '\0'.
+      <listitem>
+        <para>
+          'LOAD DATA LOCAL INFILE ...' now works, if your server is
+          configured to allow it. Can be turned off with the
+          'allowLoadLocalInfile' property (see the README).
+        </para>
+      </listitem>
 
-    - NamedPipeSocketFactory now works (only intended for Windows), see
-      README for instructions.
-</programlisting>
+      <listitem>
+        <para>
+          Substitute '?' for unknown character conversions in
+          single-byte character sets instead of '\0'.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          NamedPipeSocketFactory now works (only intended for Windows),
+          see README for instructions.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-3-0-2">
 
     <title>&title-cj-news-3-0-2;</title>
 
-<programlisting>
-    - Fixed issue with updatable result sets and PreparedStatements not
-      working
+    <itemizedlist>
 
-    - Fixed ResultSet.setFetchDirection(FETCH_UNKNOWN)
+      <listitem>
+        <para>
+          Fixed issue with updatable result sets and PreparedStatements
+          not working
+        </para>
+      </listitem>
 
-    - Fixed issue when calling Statement.setFetchSize() when using
-      arbitrary values
+      <listitem>
+        <para>
+          Fixed ResultSet.setFetchDirection(FETCH_UNKNOWN)
+        </para>
+      </listitem>
 
-    - Fixed incorrect conversion in ResultSet.getLong()
+      <listitem>
+        <para>
+          Fixed issue when calling Statement.setFetchSize() when using
+          arbitrary values
+        </para>
+      </listitem>
 
-    - Implemented ResultSet.updateBlob().
+      <listitem>
+        <para>
+          Fixed incorrect conversion in ResultSet.getLong()
+        </para>
+      </listitem>
 
-    - Removed duplicate code from UpdatableResultSet (it can be inherited
-      from ResultSet, the extra code for each method to handle updatability
-      I thought might someday be necessary has not been needed).
+      <listitem>
+        <para>
+          Implemented ResultSet.updateBlob().
+        </para>
+      </listitem>
 
-    - Fixed "UnsupportedEncodingException" thrown when "forcing" a
-      character encoding via properties.
+      <listitem>
+        <para>
+          Removed duplicate code from UpdatableResultSet (it can be
+          inherited from ResultSet, the extra code for each method to
+          handle updatability I thought might someday be necessary has
+          not been needed).
+        </para>
+      </listitem>
 
-    - Fixed various non-ASCII character encoding issues.
+      <listitem>
+        <para>
+          Fixed "UnsupportedEncodingException" thrown when "forcing" a
+          character encoding via properties.
+        </para>
+      </listitem>
 
-    - Added driver property 'useHostsInPrivileges'. Defaults to true.
-      Affects whether or not '@hostname' will be used in
-      DBMD.getColumn/TablePrivileges.
+      <listitem>
+        <para>
+          Fixed various non-ASCII character encoding issues.
+        </para>
+      </listitem>
 
-    - All DBMD result set columns describing schemas now return NULL
-      to be more compliant with the behavior of other JDBC drivers
-      for other database systems (MySQL does not support schemas).
+      <listitem>
+        <para>
+          Added driver property 'useHostsInPrivileges'. Defaults to
+          true. Affects whether or not '@hostname' will be used in
+          DBMD.getColumn/TablePrivileges.
+        </para>
+      </listitem>
 
-    - Added SSL support. See README for information on how to use it.
+      <listitem>
+        <para>
+          All DBMD result set columns describing schemas now return NULL
+          to be more compliant with the behavior of other JDBC drivers
+          for other database systems (MySQL does not support schemas).
+        </para>
+      </listitem>
 
-    - Properly restore connection properties when autoReconnecting
-      or failing-over, including autoCommit state, and isolation level.
+      <listitem>
+        <para>
+          Added SSL support. See README for information on how to use
+          it.
+        </para>
+      </listitem>
 
-    - Use 'SHOW CREATE TABLE' when possible for determining foreign key
-      information for DatabaseMetaData...also allows cascade options for
-      DELETE information to be returned
+      <listitem>
+        <para>
+          Properly restore connection properties when autoReconnecting
+          or failing-over, including autoCommit state, and isolation
+          level.
+        </para>
+      </listitem>
 
-    - Escape 0x5c character in strings for the SJIS charset.
+      <listitem>
+        <para>
+          Use 'SHOW CREATE TABLE' when possible for determining foreign
+          key information for DatabaseMetaData...also allows cascade
+          options for DELETE information to be returned
+        </para>
+      </listitem>
 
-    - Fixed start position off-by-1 error in Clob.getSubString()
+      <listitem>
+        <para>
+          Escape 0x5c character in strings for the SJIS charset.
+        </para>
+      </listitem>
 
-    - Implemented Clob.truncate()
+      <listitem>
+        <para>
+          Fixed start position off-by-1 error in Clob.getSubString()
+        </para>
+      </listitem>
 
-    - Implemented Clob.setString()
+      <listitem>
+        <para>
+          Implemented Clob.truncate()
+        </para>
+      </listitem>
 
-    - Implemented Clob.setAsciiStream()
+      <listitem>
+        <para>
+          Implemented Clob.setString()
+        </para>
+      </listitem>
 
-    - Implemented Clob.setCharacterStream()
+      <listitem>
+        <para>
+          Implemented Clob.setAsciiStream()
+        </para>
+      </listitem>
 
-    - Added com.mysql.jdbc.MiniAdmin class, which allows you to send
-      'shutdown' command to MySQL server...Intended to be used when 'embedding'
-      Java and MySQL server together in an end-user application.
+      <listitem>
+        <para>
+          Implemented Clob.setCharacterStream()
+        </para>
+      </listitem>
 
-    - Added 'connectTimeout' parameter that allows users of JDK-1.4 and newer
-      to specify a maxium time to wait to establish a connection.
+      <listitem>
+        <para>
+          Added com.mysql.jdbc.MiniAdmin class, which allows you to send
+          'shutdown' command to MySQL server...Intended to be used when
+          'embedding' Java and MySQL server together in an end-user
+          application.
+        </para>
+      </listitem>
 
-    - Failover and autoReconnect only work when the connection is in a
-      autoCommit(false) state, in order to stay transaction safe
+      <listitem>
+        <para>
+          Added 'connectTimeout' parameter that allows users of JDK-1.4
+          and newer to specify a maxium time to wait to establish a
+          connection.
+        </para>
+      </listitem>
 
-    - Added 'queriesBeforeRetryMaster' property that specifies how many
-      queries to issue when failed over before attempting to reconnect
-      to the master (defaults to 50)
+      <listitem>
+        <para>
+          Failover and autoReconnect only work when the connection is in
+          a autoCommit(false) state, in order to stay transaction safe
+        </para>
+      </listitem>
 
-    - Fixed DBMD.supportsResultSetConcurrency() so that it returns true
-      for ResultSet.TYPE_SCROLL_INSENSITIVE and ResultSet.CONCUR_READ_ONLY or
-      ResultSet.CONCUR_UPDATABLE
+      <listitem>
+        <para>
+          Added 'queriesBeforeRetryMaster' property that specifies how
+          many queries to issue when failed over before attempting to
+          reconnect to the master (defaults to 50)
+        </para>
+      </listitem>
 
-    - Fixed ResultSet.isLast() for empty result sets (should return false).
+      <listitem>
+        <para>
+          Fixed DBMD.supportsResultSetConcurrency() so that it returns
+          true for ResultSet.TYPE_SCROLL_INSENSITIVE and
+          ResultSet.CONCUR_READ_ONLY or ResultSet.CONCUR_UPDATABLE
+        </para>
+      </listitem>
 
-    - PreparedStatement now honors stream lengths in setBinary/Ascii/Character
-      Stream() unless you set the connection property
-      'useStreamLengthsInPrepStmts' to 'false'.
+      <listitem>
+        <para>
+          Fixed ResultSet.isLast() for empty result sets (should return
+          false).
+        </para>
+      </listitem>
 
-    - Removed some not-needed temporary object creation by using Strings
-      smarter in EscapeProcessor, Connection and DatabaseMetaData classes.
-</programlisting>
+      <listitem>
+        <para>
+          PreparedStatement now honors stream lengths in
+          setBinary/Ascii/Character Stream() unless you set the
+          connection property 'useStreamLengthsInPrepStmts' to 'false'.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Removed some not-needed temporary object creation by using
+          Strings smarter in EscapeProcessor, Connection and
+          DatabaseMetaData classes.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-3-0-1">
 
     <title>&title-cj-news-3-0-1;</title>
 
-<programlisting>
-    - Fixed ResultSet.getRow() off-by-one bug.
+    <itemizedlist>
 
-    - Fixed RowDataStatic.getAt() off-by-one bug.
+      <listitem>
+        <para>
+          Fixed ResultSet.getRow() off-by-one bug.
+        </para>
+      </listitem>
 
-    - Added limited Clob functionality (ResultSet.getClob(),
-      PreparedStatemtent.setClob(),
-      PreparedStatement.setObject(Clob).
+      <listitem>
+        <para>
+          Fixed RowDataStatic.getAt() off-by-one bug.
+        </para>
+      </listitem>
 
-    - Added socketTimeout parameter to URL.
+      <listitem>
+        <para>
+          Added limited Clob functionality (ResultSet.getClob(),
+          PreparedStatemtent.setClob(),
+          PreparedStatement.setObject(Clob).
+        </para>
+      </listitem>
 
-    - Connection.isClosed() no longer "pings" the server.
+      <listitem>
+        <para>
+          Added socketTimeout parameter to URL.
+        </para>
+      </listitem>
 
-    - Connection.close() issues rollback() when getAutoCommit() == false
+      <listitem>
+        <para>
+          Connection.isClosed() no longer "pings" the server.
+        </para>
+      </listitem>
 
-    - Added "paranoid" parameter...sanitizes error messages removing
-      "sensitive" information from them (such as hostnames, ports, or
-      usernames), as well as clearing "sensitive" data structures
-      when possible.
+      <listitem>
+        <para>
+          Connection.close() issues rollback() when getAutoCommit() ==
+          false
+        </para>
+      </listitem>
 
-    - Fixed ResultSetMetaData.isSigned() for TINYINT and BIGINT.
+      <listitem>
+        <para>
+          Added "paranoid" parameter...sanitizes error messages removing
+          "sensitive" information from them (such as hostnames, ports,
+          or usernames), as well as clearing "sensitive" data structures
+          when possible.
+        </para>
+      </listitem>
 
-    - Charsets now automatically detected. Optimized code for single-byte
-      character set conversion.
+      <listitem>
+        <para>
+          Fixed ResultSetMetaData.isSigned() for TINYINT and BIGINT.
+        </para>
+      </listitem>
 
-    - Implemented ResultSet.getCharacterStream()
+      <listitem>
+        <para>
+          Charsets now automatically detected. Optimized code for
+          single-byte character set conversion.
+        </para>
+      </listitem>
 
-    - Added "LOCAL TEMPORARY" to table types in DatabaseMetaData.getTableTypes()
+      <listitem>
+        <para>
+          Implemented ResultSet.getCharacterStream()
+        </para>
+      </listitem>
 
-    - Massive code clean-up to follow Java coding conventions (the time had come)
-</programlisting>
+      <listitem>
+        <para>
+          Added "LOCAL TEMPORARY" to table types in
+          DatabaseMetaData.getTableTypes()
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Massive code clean-up to follow Java coding conventions (the
+          time had come)
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-3-0-0">
 
     <title>&title-cj-news-3-0-0;</title>
 
-<programlisting>
-    - !!! LICENSE CHANGE !!! The driver is now GPL. If you need
-      non-GPL licenses, please contact me &lt;mark@stripped&gt;
+    <itemizedlist>
 
-    - JDBC-3.0 functionality including
-      Statement/PreparedStatement.getGeneratedKeys() and
-      ResultSet.getURL()
+      <listitem>
+        <para>
+          !!! LICENSE CHANGE !!! The driver is now GPL. If you need
+          non-GPL licenses, please contact me &lt;mark@stripped&gt;
+        </para>
+      </listitem>
 
-    - Performance enchancements - driver is now 50-100% faster
-      in most situations, and creates fewer temporary objects
+      <listitem>
+        <para>
+          JDBC-3.0 functionality including
+          Statement/PreparedStatement.getGeneratedKeys() and
+          ResultSet.getURL()
+        </para>
+      </listitem>
 
-    - Repackaging...new driver name is "com.mysql.jdbc.Driver",
-      old name still works, though (the driver is now provided
-      by MySQL-AB)
+      <listitem>
+        <para>
+          Performance enchancements - driver is now 50-100% faster in
+          most situations, and creates fewer temporary objects
+        </para>
+      </listitem>
 
-    - Better checking for closed connections in Statement
-      and PreparedStatement.
+      <listitem>
+        <para>
+          Repackaging...new driver name is "com.mysql.jdbc.Driver", old
+          name still works, though (the driver is now provided by
+          MySQL-AB)
+        </para>
+      </listitem>
 
-    - Support for streaming (row-by-row) result sets (see README)
-      Thanks to Doron.
+      <listitem>
+        <para>
+          Better checking for closed connections in Statement and
+          PreparedStatement.
+        </para>
+      </listitem>
 
-    - Support for large packets (new addition to MySQL-4.0 protocol),
-      see README for more information.
+      <listitem>
+        <para>
+          Support for streaming (row-by-row) result sets (see README)
+          Thanks to Doron.
+        </para>
+      </listitem>
 
-    - JDBC Compliance -- Passes all tests besides stored procedure tests
+      <listitem>
+        <para>
+          Support for large packets (new addition to MySQL-4.0
+          protocol), see README for more information.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          JDBC Compliance -- Passes all tests besides stored procedure
+          tests
+        </para>
+      </listitem>
 
-    - Fix and sort primary key names in DBMetaData (SF bugs 582086 and 582086)
+      <listitem>
+        <para>
+          Fix and sort primary key names in DBMetaData (SF bugs 582086
+          and 582086)
+        </para>
+      </listitem>
 
-    - Float types now reported as java.sql.Types.FLOAT (SF bug 579573)
+      <listitem>
+        <para>
+          Float types now reported as java.sql.Types.FLOAT (SF bug
+          579573)
+        </para>
+      </listitem>
 
-    - ResultSet.getTimestamp() now works for DATE types (SF bug 559134)
+      <listitem>
+        <para>
+          ResultSet.getTimestamp() now works for DATE types (SF bug
+          559134)
+        </para>
+      </listitem>
 
-    - ResultSet.getDate/Time/Timestamp now recognizes all forms of invalid
-      values that have been set to all zeroes by MySQL (SF bug 586058)
+      <listitem>
+        <para>
+          ResultSet.getDate/Time/Timestamp now recognizes all forms of
+          invalid values that have been set to all zeroes by MySQL (SF
+          bug 586058)
+        </para>
+      </listitem>
 
-    - Testsuite now uses Junit (which you can get from www.junit.org)
+      <listitem>
+        <para>
+          Testsuite now uses Junit (which you can get from
+          www.junit.org)
+        </para>
+      </listitem>
 
-    - The driver now only works with JDK-1.2 or newer.
+      <listitem>
+        <para>
+          The driver now only works with JDK-1.2 or newer.
+        </para>
+      </listitem>
 
-    - Added multi-host failover support (see README)
+      <listitem>
+        <para>
+          Added multi-host failover support (see README)
+        </para>
+      </listitem>
 
-    - General source-code cleanup.
+      <listitem>
+        <para>
+          General source-code cleanup.
+        </para>
+      </listitem>
 
-    - Overall speed improvements via controlling transient object
-      creation in MysqlIO class when reading packets
+      <listitem>
+        <para>
+          Overall speed improvements via controlling transient object
+          creation in MysqlIO class when reading packets
+        </para>
+      </listitem>
 
-    - Performance improvements in  string handling and field
-      metadata creation (lazily instantiated) contributed by
-      Alex Twisleton-Wykeham-Fiennes
-</programlisting>
+      <listitem>
+        <para>
+          Performance improvements in string handling and field metadata
+          creation (lazily instantiated) contributed by Alex
+          Twisleton-Wykeham-Fiennes
+        </para>
+      </listitem>
 
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-2-0-14">
 
     <title>&title-cj-news-2-0-14;</title>
 
-<programlisting>
-    - More code cleanup
+    <itemizedlist>
 
-    - PreparedStatement now releases resources on .close() (SF bug 553268)
+      <listitem>
+        <para>
+          More code cleanup
+        </para>
+      </listitem>
 
-    - Quoted identifiers not used if server version does not support them. Also,
-      if server started with --ansi or --sql-mode=ANSI_QUOTES then '"' will be
-      used as an identifier quote, otherwise '`' will be used.
+      <listitem>
+        <para>
+          PreparedStatement now releases resources on .close() (SF bug
+          553268)
+        </para>
+      </listitem>
 
-    - ResultSet.getDouble() now uses code built into JDK to be more precise (but slower)
+      <listitem>
+        <para>
+          Quoted identifiers not used if server version does not support
+          them. Also, if server started with --ansi or
+          --sql-mode=ANSI_QUOTES then '"' will be used as an identifier
+          quote, otherwise '`' will be used.
+        </para>
+      </listitem>
 
-    - LogicalHandle.isClosed() calls through to physical connection
+      <listitem>
+        <para>
+          ResultSet.getDouble() now uses code built into JDK to be more
+          precise (but slower)
+        </para>
+      </listitem>
 
-    - Added SQL profiling (to STDERR). Set "profileSql=true" in your JDBC url.
-      See README for more information.
+      <listitem>
+        <para>
+          LogicalHandle.isClosed() calls through to physical connection
+        </para>
+      </listitem>
 
-    - Fixed typo for relaxAutoCommit parameter.
-</programlisting>
+      <listitem>
+        <para>
+          Added SQL profiling (to STDERR). Set "profileSql=true" in your
+          JDBC url. See README for more information.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Fixed typo for relaxAutoCommit parameter.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-2-0-13">
 
     <title>&title-cj-news-2-0-13;</title>
 
-<programlisting>
-    - More code cleanup.
+    <itemizedlist>
 
-    - Fixed unicode chars being read incorrectly (SF bug 541088)
+      <listitem>
+        <para>
+          More code cleanup.
+        </para>
+      </listitem>
 
-    - Faster blob escaping for PrepStmt
+      <listitem>
+        <para>
+          Fixed unicode chars being read incorrectly (SF bug 541088)
+        </para>
+      </listitem>
 
-    - Added set/getPortNumber() to DataSource(s) (SF bug 548167)
+      <listitem>
+        <para>
+          Faster blob escaping for PrepStmt
+        </para>
+      </listitem>
 
-    - Added setURL() to MySQLXADataSource (SF bug 546019)
+      <listitem>
+        <para>
+          Added set/getPortNumber() to DataSource(s) (SF bug 548167)
+        </para>
+      </listitem>
 
-    - PreparedStatement.toString() fixed (SF bug 534026)
+      <listitem>
+        <para>
+          Added setURL() to MySQLXADataSource (SF bug 546019)
+        </para>
+      </listitem>
 
-    - ResultSetMetaData.getColumnClassName() now implemented
+      <listitem>
+        <para>
+          PreparedStatement.toString() fixed (SF bug 534026)
+        </para>
+      </listitem>
 
-    - Rudimentary version of Statement.getGeneratedKeys() from JDBC-3.0
-      now implemented (you need to be using JDK-1.4 for this to work, I
-      believe)
+      <listitem>
+        <para>
+          ResultSetMetaData.getColumnClassName() now implemented
+        </para>
+      </listitem>
 
-    - DBMetaData.getIndexInfo() - bad PAGES fixed (SF BUG 542201)
-</programlisting>
+      <listitem>
+        <para>
+          Rudimentary version of Statement.getGeneratedKeys() from
+          JDBC-3.0 now implemented (you need to be using JDK-1.4 for
+          this to work, I believe)
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          DBMetaData.getIndexInfo() - bad PAGES fixed (SF BUG 542201)
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-2-0-12">
 
     <title>&title-cj-news-2-0-12;</title>
 
-<programlisting>
-    - General code cleanup.
+    <itemizedlist>
 
-    - Added getIdleFor() method to Connection and MysqlLogicalHandle.
+      <listitem>
+        <para>
+          General code cleanup.
+        </para>
+      </listitem>
 
-    - Relaxed synchronization in all classes, should fix 520615 and 520393.
+      <listitem>
+        <para>
+          Added getIdleFor() method to Connection and
+          MysqlLogicalHandle.
+        </para>
+      </listitem>
 
-    - Added getTable/ColumnPrivileges() to DBMD (fixes 484502).
+      <listitem>
+        <para>
+          Relaxed synchronization in all classes, should fix 520615 and
+          520393.
+        </para>
+      </listitem>
 
-    - Added new types to getTypeInfo(), fixed existing types thanks to
-      Al Davis and Kid Kalanon.
+      <listitem>
+        <para>
+          Added getTable/ColumnPrivileges() to DBMD (fixes 484502).
+        </para>
+      </listitem>
 
-    - Added support for BIT types (51870) to PreparedStatement.
+      <listitem>
+        <para>
+          Added new types to getTypeInfo(), fixed existing types thanks
+          to Al Davis and Kid Kalanon.
+        </para>
+      </listitem>
 
-    - Fixed getRow() bug (527165) in ResultSet
+      <listitem>
+        <para>
+          Added support for BIT types (51870) to PreparedStatement.
+        </para>
+      </listitem>
 
-    - Fixes for ResultSet updatability in PreparedStatement.
-    - Fixed timezone off by 1-hour bug in PreparedStatement (538286, 528785).
+      <listitem>
+        <para>
+          Fixed getRow() bug (527165) in ResultSet
+        </para>
+      </listitem>
 
-    - ResultSet: Fixed updatability (values being set to null
-      if not updated).
+      <listitem>
+        <para>
+          Fixes for ResultSet updatability in PreparedStatement.
+        </para>
+      </listitem>
 
-    - DataSources - fixed setUrl bug (511614, 525565),
-      wrong datasource class name (532816, 528767)
+      <listitem>
+        <para>
+          Fixed time zone off by 1-hour bug in PreparedStatement
+          (538286, 528785).
+        </para>
+      </listitem>
 
-    - Added identifier quoting to all DatabaseMetaData methods
-      that need them (should fix 518108)
+      <listitem>
+        <para>
+          ResultSet: Fixed updatability (values being set to null if not
+          updated).
+        </para>
+      </listitem>
 
-    - Added support for YEAR type (533556)
+      <listitem>
+        <para>
+          DataSources - fixed setUrl bug (511614, 525565), wrong
+          datasource class name (532816, 528767)
+        </para>
+      </listitem>
 
-    - ResultSet.insertRow() should now detect auto_increment fields
-      in most cases and use that value in the new row. This detection
-      will not work in multi-valued keys, however, due to the fact that
-      the MySQL protocol does not return this information.
+      <listitem>
+        <para>
+          Added identifier quoting to all DatabaseMetaData methods that
+          need them (should fix 518108)
+        </para>
+      </listitem>
 
-    - ResultSet.refreshRow() implemented.
+      <listitem>
+        <para>
+          Added support for YEAR type (533556)
+        </para>
+      </listitem>
 
-    - Fixed testsuite.Traversal afterLast() bug, thanks to Igor Lastric.
-</programlisting>
+      <listitem>
+        <para>
+          ResultSet.insertRow() should now detect auto_increment fields
+          in most cases and use that value in the new row. This
+          detection will not work in multi-valued keys, however, due to
+          the fact that the MySQL protocol does not return this
+          information.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          ResultSet.refreshRow() implemented.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Fixed testsuite.Traversal afterLast() bug, thanks to Igor
+          Lastric.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-2-0-11">
 
     <title>&title-cj-news-2-0-11;</title>
 
-<programlisting>
-    - Fixed missing DELETE_RULE value in
-      DBMD.getImported/ExportedKeys() and getCrossReference().
+    <itemizedlist>
 
-    - Full synchronization of Statement.java.
+      <listitem>
+        <para>
+          Fixed missing DELETE_RULE value in
+          DBMD.getImported/ExportedKeys() and getCrossReference().
+        </para>
+      </listitem>
 
-    - More changes to fix "Unexpected end of input stream"
-      errors when reading BLOBs. This should be the last fix.
-</programlisting>
+      <listitem>
+        <para>
+          Full synchronization of Statement.java.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          More changes to fix "Unexpected end of input stream" errors
+          when reading BLOBs. This should be the last fix.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-2-0-10">
 
     <title>&title-cj-news-2-0-10;</title>
 
-<programlisting>
-     - Fixed spurious "Unexpected end of input stream" errors in
-       MysqlIO (bug 507456).
+    <itemizedlist>
 
-     - Fixed null-pointer-exceptions when using
-       MysqlConnectionPoolDataSource with Websphere 4 (bug 505839).
-</programlisting>
+      <listitem>
+        <para>
+          Fixed spurious "Unexpected end of input stream" errors in
+          MysqlIO (bug 507456).
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Fixed null-pointer-exceptions when using
+          MysqlConnectionPoolDataSource with Websphere 4 (bug 505839).
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-2-0-9">
 
     <title>&title-cj-news-2-0-9;</title>
 
-<programlisting>
-     - Ant build was corrupting included jar files, fixed
-       (bug 487669).
+    <itemizedlist>
 
-     - Fixed extra memory allocation in MysqlIO.readPacket()
-       (bug 488663).
+      <listitem>
+        <para>
+          Ant build was corrupting included jar files, fixed (bug
+          487669).
+        </para>
+      </listitem>
 
-     - Implementation of DatabaseMetaData.getExported/ImportedKeys() and
-       getCrossReference().
+      <listitem>
+        <para>
+          Fixed extra memory allocation in MysqlIO.readPacket() (bug
+          488663).
+        </para>
+      </listitem>
 
-     - Full synchronization on methods modifying instance and class-shared
-       references, driver should be entirely thread-safe now (please
-       let me know if you have problems)
+      <listitem>
+        <para>
+          Implementation of DatabaseMetaData.getExported/ImportedKeys()
+          and getCrossReference().
+        </para>
+      </listitem>
 
-     - DataSource implementations moved to org.gjt.mm.mysql.jdbc2.optional
-       package, and (initial) implementations of PooledConnectionDataSource
-       and XADataSource are in place (thanks to Todd Wolff for the
-       implementation and testing of PooledConnectionDataSource with
-       IBM WebSphere 4).
+      <listitem>
+        <para>
+          Full synchronization on methods modifying instance and
+          class-shared references, driver should be entirely thread-safe
+          now (please let me know if you have problems)
+        </para>
+      </listitem>
 
-     - Added detection of network connection being closed when reading packets
-       (thanks to Todd Lizambri).
+      <listitem>
+        <para>
+          DataSource implementations moved to
+          org.gjt.mm.mysql.jdbc2.optional package, and (initial)
+          implementations of PooledConnectionDataSource and XADataSource
+          are in place (thanks to Todd Wolff for the implementation and
+          testing of PooledConnectionDataSource with IBM WebSphere 4).
+        </para>
+      </listitem>
 
-     - Fixed quoting error with escape processor (bug 486265).
+      <listitem>
+        <para>
+          Added detection of network connection being closed when
+          reading packets (thanks to Todd Lizambri).
+        </para>
+      </listitem>
 
-     - Report batch update support through DatabaseMetaData (bug 495101).
+      <listitem>
+        <para>
+          Fixed quoting error with escape processor (bug 486265).
+        </para>
+      </listitem>
 
-     - Fixed off-by-one-hour error in PreparedStatement.setTimestamp()
-       (bug 491577).
+      <listitem>
+        <para>
+          Report batch update support through DatabaseMetaData (bug
+          495101).
+        </para>
+      </listitem>
 
-     - Removed concatenation support from driver (the '||' operator),
-       as older versions of VisualAge seem to be the only thing that
-       use it, and it conflicts with the logical '||' operator. You will
-       need to start mysqld with the "--ansi" flag to use the '||'
-       operator as concatenation (bug 491680)
+      <listitem>
+        <para>
+          Fixed off-by-one-hour error in
+          PreparedStatement.setTimestamp() (bug 491577).
+        </para>
+      </listitem>
 
-     - Fixed casting bug in PreparedStatement (bug 488663).
-</programlisting>
+      <listitem>
+        <para>
+          Removed concatenation support from driver (the '||' operator),
+          as older versions of VisualAge seem to be the only thing that
+          use it, and it conflicts with the logical '||' operator. You
+          will need to start mysqld with the "--ansi" flag to use the
+          '||' operator as concatenation (bug 491680)
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Fixed casting bug in PreparedStatement (bug 488663).
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-2-0-8">
 
     <title>&title-cj-news-2-0-8;</title>
 
-<programlisting>
-     - Batch updates now supported (thanks to some inspiration
-       from Daniel Rall).
+    <itemizedlist>
 
-     - XADataSource/ConnectionPoolDataSource code (experimental)
+      <listitem>
+        <para>
+          Batch updates now supported (thanks to some inspiration from
+          Daniel Rall).
+        </para>
+      </listitem>
 
-     - PreparedStatement.setAnyNumericType() now handles positive
-       exponents correctly (adds "+" so MySQL can understand it).
+      <listitem>
+        <para>
+          XADataSource/ConnectionPoolDataSource code (experimental)
+        </para>
+      </listitem>
 
-     - DatabaseMetaData.getPrimaryKeys() and getBestRowIdentifier()
-       are now more robust in identifying primary keys (matches
-       regardless of case or abbreviation/full spelling of Primary Key
-       in Key_type column).
-</programlisting>
+      <listitem>
+        <para>
+          PreparedStatement.setAnyNumericType() now handles positive
+          exponents correctly (adds "+" so MySQL can understand it).
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          DatabaseMetaData.getPrimaryKeys() and getBestRowIdentifier()
+          are now more robust in identifying primary keys (matches
+          regardless of case or abbreviation/full spelling of Primary
+          Key in Key_type column).
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-2-0-7">
 
     <title>&title-cj-news-2-0-7;</title>
 
-<programlisting>
-     - PreparedStatement.setCharacterStream() now implemented
+    <itemizedlist>
 
-     - Fixed dangling socket problem when in high availability
-       (autoReconnect=true) mode, and finalizer for Connection will
-       close any dangling sockets on GC.
+      <listitem>
+        <para>
+          PreparedStatement.setCharacterStream() now implemented
+        </para>
+      </listitem>
 
-     - Fixed ResultSetMetaData.getPrecision() returning one
-       less than actual on newer versions of MySQL.
+      <listitem>
+        <para>
+          Fixed dangling socket problem when in high availability
+          (autoReconnect=true) mode, and finalizer for Connection will
+          close any dangling sockets on GC.
+        </para>
+      </listitem>
 
-     - ResultSet.getBlob() now returns null if column value
-       was null.
+      <listitem>
+        <para>
+          Fixed ResultSetMetaData.getPrecision() returning one less than
+          actual on newer versions of MySQL.
+        </para>
+      </listitem>
 
-     - Character sets read from database if useUnicode=true
-       and characterEncoding is not set. (thanks to
-       Dmitry Vereshchagin)
+      <listitem>
+        <para>
+          ResultSet.getBlob() now returns null if column value was null.
+        </para>
+      </listitem>
 
-     - Initial transaction isolation level read from
-       database (if avaialable) (thanks to Dmitry Vereshchagin)
+      <listitem>
+        <para>
+          Character sets read from database if useUnicode=true and
+          characterEncoding is not set. (thanks to Dmitry Vereshchagin)
+        </para>
+      </listitem>
 
-     - Fixed DatabaseMetaData.supportsTransactions(), and
-       supportsTransactionIsolationLevel() and getTypeInfo()
-       SQL_DATETIME_SUB and SQL_DATA_TYPE fields not being
-       readable.
+      <listitem>
+        <para>
+          Initial transaction isolation level read from database (if
+          avaialable) (thanks to Dmitry Vereshchagin)
+        </para>
+      </listitem>
 
-     - Fixed PreparedStatement generating SQL that would end
-       up with syntax errors for some queries.
+      <listitem>
+        <para>
+          Fixed DatabaseMetaData.supportsTransactions(), and
+          supportsTransactionIsolationLevel() and getTypeInfo()
+          SQL_DATETIME_SUB and SQL_DATA_TYPE fields not being readable.
+        </para>
+      </listitem>
 
-     - Fixed ResultSet.isAfterLast() always returning false.
+      <listitem>
+        <para>
+          Fixed PreparedStatement generating SQL that would end up with
+          syntax errors for some queries.
+        </para>
+      </listitem>
 
-     - Fixed timezone issue in PreparedStatement.setTimestamp()
-       (thanks to Erik Olofsson)
+      <listitem>
+        <para>
+          Fixed ResultSet.isAfterLast() always returning false.
+        </para>
+      </listitem>
 
-     - Captialize type names when "captializeTypeNames=true"
-       is passed in URL or properties (for WebObjects, thanks
-       to Anjo Krank)
+      <listitem>
+        <para>
+          Fixed time zone issue in PreparedStatement.setTimestamp()
+          (thanks to Erik Olofsson)
+        </para>
+      </listitem>
 
-     - Updatable result sets now correctly handle NULL
-       values in fields.
+      <listitem>
+        <para>
+          Captialize type names when "captializeTypeNames=true" is
+          passed in URL or properties (for WebObjects, thanks to Anjo
+          Krank)
+        </para>
+      </listitem>
 
-     - PreparedStatement.setDouble() now uses full-precision
-       doubles (reverting a fix made earlier to truncate them).
+      <listitem>
+        <para>
+          Updatable result sets now correctly handle NULL values in
+          fields.
+        </para>
+      </listitem>
 
-     - PreparedStatement.setBoolean() will use 1/0 for values
-       if your MySQL version is 3.21.23 or higher.
-</programlisting>
+      <listitem>
+        <para>
+          PreparedStatement.setDouble() now uses full-precision doubles
+          (reverting a fix made earlier to truncate them).
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          PreparedStatement.setBoolean() will use 1/0 for values if your
+          MySQL version is 3.21.23 or higher.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-2-0-6">
 
     <title>&title-cj-news-2-0-6;</title>
 
-<programlisting>
-     - Fixed PreparedStatement parameter checking
+    <itemizedlist>
 
-     - Fixed case-sensitive column names in ResultSet.java
-</programlisting>
+      <listitem>
+        <para>
+          Fixed PreparedStatement parameter checking
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Fixed case-sensitive column names in ResultSet.java
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-2-0-5">
 
     <title>&title-cj-news-2-0-5;</title>
 
-<programlisting>
-     - Fixed ResultSet.getBlob() ArrayIndex out-of-bounds
+    <itemizedlist>
 
-     - Fixed ResultSetMetaData.getColumnTypeName for TEXT/BLOB
+      <listitem>
+        <para>
+          Fixed ResultSet.getBlob() ArrayIndex out-of-bounds
+        </para>
+      </listitem>
 
-     - Fixed ArrayIndexOutOfBounds when sending large BLOB queries
-       (Max size packet was not being set)
+      <listitem>
+        <para>
+          Fixed ResultSetMetaData.getColumnTypeName for TEXT/BLOB
+        </para>
+      </listitem>
 
-     - Added ISOLATION level support to Connection.setIsolationLevel()
+      <listitem>
+        <para>
+          Fixed ArrayIndexOutOfBounds when sending large BLOB queries
+          (Max size packet was not being set)
+        </para>
+      </listitem>
 
-     - Fixed NPE on PreparedStatement.executeUpdate() when all columns
-       have not been set.
+      <listitem>
+        <para>
+          Added ISOLATION level support to
+          Connection.setIsolationLevel()
+        </para>
+      </listitem>
 
-     - Fixed data parsing of TIMESTAMPs with 2-digit years
+      <listitem>
+        <para>
+          Fixed NPE on PreparedStatement.executeUpdate() when all
+          columns have not been set.
+        </para>
+      </listitem>
 
-     - Added Byte to PreparedStatement.setObject()
+      <listitem>
+        <para>
+          Fixed data parsing of TIMESTAMPs with 2-digit years
+        </para>
+      </listitem>
 
-     - ResultSet.getBoolean() now recognizes '-1' as 'true'
+      <listitem>
+        <para>
+          Added Byte to PreparedStatement.setObject()
+        </para>
+      </listitem>
 
-     - ResultSet has +/-Inf/inf support
+      <listitem>
+        <para>
+          ResultSet.getBoolean() now recognizes '-1' as 'true'
+        </para>
+      </listitem>
 
-     - ResultSet.insertRow() works now, even if not all columns are
-       set (they will be set to "NULL")
+      <listitem>
+        <para>
+          ResultSet has +/-Inf/inf support
+        </para>
+      </listitem>
 
-     - DataBaseMetaData.getCrossReference() no longer ArrayIndexOOB
+      <listitem>
+        <para>
+          ResultSet.insertRow() works now, even if not all columns are
+          set (they will be set to "NULL")
+        </para>
+      </listitem>
 
-     - getObject() on ResultSet correctly does TINYINT-&gt;Byte and
-       SMALLINT-&gt;Short
-</programlisting>
+      <listitem>
+        <para>
+          DataBaseMetaData.getCrossReference() no longer ArrayIndexOOB
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          getObject() on ResultSet correctly does TINYINT-&gt;Byte and
+          SMALLINT-&gt;Short
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-2-0-3">
 
     <title>&title-cj-news-2-0-3;</title>
 
-<programlisting>
-     - Implemented getBigDecimal() without scale component
-       for JDBC2.
+    <itemizedlist>
 
-     - Fixed composite key problem with updatable result sets.
+      <listitem>
+        <para>
+          Implemented getBigDecimal() without scale component for JDBC2.
+        </para>
+      </listitem>
 
-     - Added detection of -/+INF for doubles.
+      <listitem>
+        <para>
+          Fixed composite key problem with updatable result sets.
+        </para>
+      </listitem>
 
-     - Faster ASCII string operations.
+      <listitem>
+        <para>
+          Added detection of -/+INF for doubles.
+        </para>
+      </listitem>
 
-     - Fixed incorrect detection of MAX_ALLOWED_PACKET, so sending
-       large blobs should work now.
+      <listitem>
+        <para>
+          Faster ASCII string operations.
+        </para>
+      </listitem>
 
-     - Fixed off-by-one error in java.sql.Blob implementation code.
+      <listitem>
+        <para>
+          Fixed incorrect detection of MAX_ALLOWED_PACKET, so sending
+          large blobs should work now.
+        </para>
+      </listitem>
 
-     - Added "ultraDevHack" URL parameter, set to "true" to allow
-       (broken) Macromedia UltraDev to use the driver.
-</programlisting>
+      <listitem>
+        <para>
+          Fixed off-by-one error in java.sql.Blob implementation code.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Added "ultraDevHack" URL parameter, set to "true" to allow
+          (broken) Macromedia UltraDev to use the driver.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-2-0-1">
 
     <title>&title-cj-news-2-0-1;</title>
 
-<programlisting>
-     - Fixed RSMD.isWritable() returning wrong value.
-       Thanks to Moritz Maass.
+    <itemizedlist>
 
-     - Cleaned up exception handling when driver connects
+      <listitem>
+        <para>
+          Fixed RSMD.isWritable() returning wrong value. Thanks to
+          Moritz Maass.
+        </para>
+      </listitem>
 
-     - Columns that are of type TEXT now return as Strings
-       when you use getObject()
+      <listitem>
+        <para>
+          Cleaned up exception handling when driver connects
+        </para>
+      </listitem>
 
-     - DatabaseMetaData.getPrimaryKeys() now works correctly wrt
-       to key_seq. Thanks to Brian Slesinsky.
+      <listitem>
+        <para>
+          Columns that are of type TEXT now return as Strings when you
+          use getObject()
+        </para>
+      </listitem>
 
-     - No escape processing is done on PreparedStatements anymore
-       per JDBC spec.
+      <listitem>
+        <para>
+          DatabaseMetaData.getPrimaryKeys() now works correctly wrt to
+          key_seq. Thanks to Brian Slesinsky.
+        </para>
+      </listitem>
 
-     - Fixed many JDBC-2.0 traversal, positioning bugs, especially
-       wrt to empty result sets. Thanks to Ron Smits, Nick Brook,
-       Cessar Garcia and Carlos Martinez.
+      <listitem>
+        <para>
+          No escape processing is done on PreparedStatements anymore per
+          JDBC spec.
+        </para>
+      </listitem>
 
-     - Fixed some issues with updatability support in ResultSet when
-       using multiple primary keys.
-</programlisting>
+      <listitem>
+        <para>
+          Fixed many JDBC-2.0 traversal, positioning bugs, especially
+          wrt to empty result sets. Thanks to Ron Smits, Nick Brook,
+          Cessar Garcia and Carlos Martinez.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Fixed some issues with updatability support in ResultSet when
+          using multiple primary keys.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-2-0pre5">
 
     <title>&title-cj-news-2-0pre5;</title>
 
-<programlisting>
-     - Fixed Bad Handshake problem.
-</programlisting>
+    <itemizedlist>
 
+      <listitem>
+        <para>
+          Fixed Bad Handshake problem.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-2-0pre4">
 
     <title>&title-cj-news-2-0pre4;</title>
 
-<programlisting>
-     - Fixes to ResultSet for insertRow() - Thanks to
-       Cesar Garcia
+    <itemizedlist>
 
-     - Fix to Driver to recognize JDBC-2.0 by loading a JDBC-2.0
-       class, instead of relying on JDK version numbers. Thanks
-       to John Baker.
+      <listitem>
+        <para>
+          Fixes to ResultSet for insertRow() - Thanks to Cesar Garcia
+        </para>
+      </listitem>
 
-     - Fixed ResultSet to return correct row numbers
+      <listitem>
+        <para>
+          Fix to Driver to recognize JDBC-2.0 by loading a JDBC-2.0
+          class, instead of relying on JDK version numbers. Thanks to
+          John Baker.
+        </para>
+      </listitem>
 
-     - Statement.getUpdateCount() now returns rows matched,
-       instead of rows actually updated, which is more SQL-92
-       like.
-</programlisting>
+      <listitem>
+        <para>
+          Fixed ResultSet to return correct row numbers
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Statement.getUpdateCount() now returns rows matched, instead
+          of rows actually updated, which is more SQL-92 like.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
     <para>
       10-29-99
     </para>
 
-<programlisting>
-     - Statement/PreparedStatement.getMoreResults() bug fixed.
-       Thanks to Noel J. Bergman.
+    <itemizedlist>
 
-     - Added Short as a type to PreparedStatement.setObject().
-       Thanks to Jeff Crowder
+      <listitem>
+        <para>
+          Statement/PreparedStatement.getMoreResults() bug fixed. Thanks
+          to Noel J. Bergman.
+        </para>
+      </listitem>
 
-     - Driver now automagically configures maximum/preferred packet
-       sizes by querying server.
+      <listitem>
+        <para>
+          Added Short as a type to PreparedStatement.setObject(). Thanks
+          to Jeff Crowder
+        </para>
+      </listitem>
 
-     - Autoreconnect code uses fast ping command if server supports
-       it.
+      <listitem>
+        <para>
+          Driver now automagically configures maximum/preferred packet
+          sizes by querying server.
+        </para>
+      </listitem>
 
-     - Fixed various bugs wrt. to packet sizing when reading from
-       the server and when alloc'ing to write to the server.
-</programlisting>
+      <listitem>
+        <para>
+          Autoreconnect code uses fast ping command if server supports
+          it.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Fixed various bugs wrt. to packet sizing when reading from the
+          server and when alloc'ing to write to the server.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-2-0pre">
 
     <title>&title-cj-news-2-0pre;</title>
 
-<programlisting>
-     - Now compiles under JDK-1.2. The driver supports both JDK-1.1
-       and JDK-1.2 at the same time through a core set of classes.
-       The driver will load the appropriate interface classes at
-       runtime by figuring out which JVM version you are using.
+    <itemizedlist>
 
-     - Fixes for result sets with all nulls in the first row.
-       (Pointed out by Tim Endres)
+      <listitem>
+        <para>
+          Now compiles under JDK-1.2. The driver supports both JDK-1.1
+          and JDK-1.2 at the same time through a core set of classes.
+          The driver will load the appropriate interface classes at
+          runtime by figuring out which JVM version you are using.
+        </para>
+      </listitem>
 
-     - Fixes to column numbers in SQLExceptions in ResultSet
-       (Thanks to Blas Rodriguez Somoza)
+      <listitem>
+        <para>
+          Fixes for result sets with all nulls in the first row.
+          (Pointed out by Tim Endres)
+        </para>
+      </listitem>
 
-     - The database no longer needs to specified to connect.
-       (Thanks to Christian Motschke)
-</programlisting>
+      <listitem>
+        <para>
+          Fixes to column numbers in SQLExceptions in ResultSet (Thanks
+          to Blas Rodriguez Somoza)
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          The database no longer needs to specified to connect. (Thanks
+          to Christian Motschke)
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-1-2b">
 
     <title>&title-cj-news-1-2b;</title>
 
-<programlisting>
-     - Better Documentation (in progress), in doc/mm.doc/book1.html
+    <itemizedlist>
 
-     - DBMD now allows null for a column name pattern (not in
-       spec), which it changes to '%'.
+      <listitem>
+        <para>
+          Better Documentation (in progress), in doc/mm.doc/book1.html
+        </para>
+      </listitem>
 
-     - DBMD now has correct types/lengths for getXXX().
+      <listitem>
+        <para>
+          DBMD now allows null for a column name pattern (not in spec),
+          which it changes to '%'.
+        </para>
+      </listitem>
 
-     - ResultSet.getDate(), getTime(), and getTimestamp() fixes.
-       (contributed by Alan Wilken)
+      <listitem>
+        <para>
+          DBMD now has correct types/lengths for getXXX().
+        </para>
+      </listitem>
 
-     - EscapeProcessor now handles \{ \} and { or } inside quotes
-       correctly. (thanks to Alik for some ideas on how to fix it)
+      <listitem>
+        <para>
+          ResultSet.getDate(), getTime(), and getTimestamp() fixes.
+          (contributed by Alan Wilken)
+        </para>
+      </listitem>
 
-     - Fixes to properties handling in Connection.
-       (contributed by Juho Tikkala)
+      <listitem>
+        <para>
+          EscapeProcessor now handles \{ \} and { or } inside quotes
+          correctly. (thanks to Alik for some ideas on how to fix it)
+        </para>
+      </listitem>
 
-     - ResultSet.getObject() now returns null for NULL columns
-       in the table, rather than bombing out.
-       (thanks to Ben Grosman)
+      <listitem>
+        <para>
+          Fixes to properties handling in Connection. (contributed by
+          Juho Tikkala)
+        </para>
+      </listitem>
 
-     - ResultSet.getObject() now returns Strings for types
-       from MySQL that it doesn't know about. (Suggested by
-       Chris Perdue)
+      <listitem>
+        <para>
+          ResultSet.getObject() now returns null for NULL columns in the
+          table, rather than bombing out. (thanks to Ben Grosman)
+        </para>
+      </listitem>
 
-     - Removed DataInput/Output streams, not needed, 1/2 number
-       of method calls per IO operation.
+      <listitem>
+        <para>
+          ResultSet.getObject() now returns Strings for types from MySQL
+          that it doesn't know about. (Suggested by Chris Perdue)
+        </para>
+      </listitem>
 
-     - Use default character encoding if one is not specified. This
-       is a work-around for broken JVMs, because according to spec,
-       EVERY JVM must support "ISO8859_1", but they don't.
+      <listitem>
+        <para>
+          Removed DataInput/Output streams, not needed, 1/2 number of
+          method calls per IO operation.
+        </para>
+      </listitem>
 
-     - Fixed Connection to use the platform character encoding
-       instead of "ISO8859_1" if one isn't explicitly set. This
-       fixes problems people were having loading the character-
-       converter classes that didn't always exist (JVM bug).
-       (thanks to Fritz Elfert for pointing out this problem)
+      <listitem>
+        <para>
+          Use default character encoding if one is not specified. This
+          is a work-around for broken JVMs, because according to spec,
+          EVERY JVM must support "ISO8859_1", but they don't.
+        </para>
+      </listitem>
 
-     - Changed MysqlIO to re-use packets where possible to reduce
-       memory usage.
+      <listitem>
+        <para>
+          Fixed Connection to use the platform character encoding
+          instead of "ISO8859_1" if one isn't explicitly set. This fixes
+          problems people were having loading the character- converter
+          classes that didn't always exist (JVM bug). (thanks to Fritz
+          Elfert for pointing out this problem)
+        </para>
+      </listitem>
 
-     - Fixed escape-processor bugs pertaining to {} inside
-       quotes.
-</programlisting>
+      <listitem>
+        <para>
+          Changed MysqlIO to re-use packets where possible to reduce
+          memory usage.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Fixed escape-processor bugs pertaining to {} inside quotes.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-1-2a">
 
     <title>&title-cj-news-1-2a;</title>
 
-<programlisting>
-     - Fixed character-set support for non-Javasoft JVMs
-       (thanks to many people for pointing it out)
+    <itemizedlist>
 
-     - Fixed ResultSet.getBoolean() to recognize 'y' &amp; 'n'
-       as well as '1' &amp; '0' as boolean flags.
-       (thanks to Tim Pizey)
+      <listitem>
+        <para>
+          Fixed character-set support for non-Javasoft JVMs (thanks to
+          many people for pointing it out)
+        </para>
+      </listitem>
 
-     - Fixed ResultSet.getTimestamp() to give better performance.
-       (thanks to Richard Swift)
+      <listitem>
+        <para>
+          Fixed ResultSet.getBoolean() to recognize 'y' &amp; 'n' as
+          well as '1' &amp; '0' as boolean flags. (thanks to Tim Pizey)
+        </para>
+      </listitem>
 
-     - Fixed getByte() for numeric types.
-       (thanks to Ray Bellis)
+      <listitem>
+        <para>
+          Fixed ResultSet.getTimestamp() to give better performance.
+          (thanks to Richard Swift)
+        </para>
+      </listitem>
 
-     - Fixed DatabaseMetaData.getTypeInfo() for DATE type.
-       (thanks to Paul Johnston)
+      <listitem>
+        <para>
+          Fixed getByte() for numeric types. (thanks to Ray Bellis)
+        </para>
+      </listitem>
 
-     - Fixed EscapeProcessor for "fn" calls.
-       (thanks to Piyush Shah at locomotive.org)
+      <listitem>
+        <para>
+          Fixed DatabaseMetaData.getTypeInfo() for DATE type. (thanks to
+          Paul Johnston)
+        </para>
+      </listitem>
 
-     - Fixed EscapeProcessor to not do extraneous work if there
-       are no escape codes.
-       (thanks to Ryan Gustafson)
+      <listitem>
+        <para>
+          Fixed EscapeProcessor for "fn" calls. (thanks to Piyush Shah
+          at locomotive.org)
+        </para>
+      </listitem>
 
-     - Fixed Driver to parse URLs of the form "jdbc:mysql://host:port"
-       (thanks to Richard Lobb)
-</programlisting>
+      <listitem>
+        <para>
+          Fixed EscapeProcessor to not do extraneous work if there are
+          no escape codes. (thanks to Ryan Gustafson)
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Fixed Driver to parse URLs of the form
+          "jdbc:mysql://host:port" (thanks to Richard Lobb)
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-1-1i">
 
     <title>&title-cj-news-1-1i;</title>
 
-<programlisting>
-     - Fixed Timestamps for PreparedStatements
+    <itemizedlist>
 
-     - Fixed null pointer exceptions in RSMD and RS
+      <listitem>
+        <para>
+          Fixed Timestamps for PreparedStatements
+        </para>
+      </listitem>
 
-     - Re-compiled with jikes for valid class files (thanks ms!)
-</programlisting>
+      <listitem>
+        <para>
+          Fixed null pointer exceptions in RSMD and RS
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Re-compiled with jikes for valid class files (thanks ms!)
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-1-1h">
 
     <title>&title-cj-news-1-1h;</title>
 
-<programlisting>
-     - Fixed escape processor to deal with un-matched { and }
-       (thanks to Craig Coles)
+    <itemizedlist>
 
-     - Fixed escape processor to create more portable (between
-       DATETIME and TIMESTAMP types) representations so that
-       it will work with BETWEEN clauses.
-       (thanks to Craig Longman)
+      <listitem>
+        <para>
+          Fixed escape processor to deal with un-matched { and } (thanks
+          to Craig Coles)
+        </para>
+      </listitem>
 
-     - MysqlIO.quit() now closes the socket connection. Before,
-       after many failed connections some OS's would run out
-       of file descriptors. (thanks to Michael Brinkman)
+      <listitem>
+        <para>
+          Fixed escape processor to create more portable (between
+          DATETIME and TIMESTAMP types) representations so that it will
+          work with BETWEEN clauses. (thanks to Craig Longman)
+        </para>
+      </listitem>
 
-     - Fixed NullPointerException in Driver.getPropertyInfo.
-       (thanks to Dave Potts)
+      <listitem>
+        <para>
+          MysqlIO.quit() now closes the socket connection. Before, after
+          many failed connections some OS's would run out of file
+          descriptors. (thanks to Michael Brinkman)
+        </para>
+      </listitem>
 
-     - Fixes to MysqlDefs to allow all *text fields to be
-       retrieved as Strings.
-       (thanks to Chris at Leverage)
+      <listitem>
+        <para>
+          Fixed NullPointerException in Driver.getPropertyInfo. (thanks
+          to Dave Potts)
+        </para>
+      </listitem>
 
-     - Fixed setDouble in PreparedStatement for large numbers
-       to avoid sending scientific notation to the database.
-       (thanks to J.S. Ferguson)
+      <listitem>
+        <para>
+          Fixes to MysqlDefs to allow all *text fields to be retrieved
+          as Strings. (thanks to Chris at Leverage)
+        </para>
+      </listitem>
 
-     - Fixed getScale() and getPrecision() in RSMD.
-       (contrib'd by James Klicman)
+      <listitem>
+        <para>
+          Fixed setDouble in PreparedStatement for large numbers to
+          avoid sending scientific notation to the database. (thanks to
+          J.S. Ferguson)
+        </para>
+      </listitem>
 
-     - Fixed getObject() when field was DECIMAL or NUMERIC
-       (thanks to Bert Hobbs)
+      <listitem>
+        <para>
+          Fixed getScale() and getPrecision() in RSMD. (contrib'd by
+          James Klicman)
+        </para>
+      </listitem>
 
-     - DBMD.getTables() bombed when passed a null table-name
-       pattern. Fixed. (thanks to Richard Lobb)
+      <listitem>
+        <para>
+          Fixed getObject() when field was DECIMAL or NUMERIC (thanks to
+          Bert Hobbs)
+        </para>
+      </listitem>
 
-     - Added check for "client not authorized" errors during
-       connect. (thanks to Hannes Wallnoefer)
-</programlisting>
+      <listitem>
+        <para>
+          DBMD.getTables() bombed when passed a null table-name pattern.
+          Fixed. (thanks to Richard Lobb)
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Added check for "client not authorized" errors during connect.
+          (thanks to Hannes Wallnoefer)
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-1-1g">
 
     <title>&title-cj-news-1-1g;</title>
 
-<programlisting>
-     - Result set rows are now byte arrays. Blobs and Unicode
-       work bidriectonally now. The useUnicode and encoding
-       options are implemented now.
+    <itemizedlist>
 
-     - Fixes to PreparedStatement to send binary set by
-       setXXXStream to be sent un-touched to the MySQL server.
+      <listitem>
+        <para>
+          Result set rows are now byte arrays. Blobs and Unicode work
+          bidriectonally now. The useUnicode and encoding options are
+          implemented now.
+        </para>
+      </listitem>
 
-     - Fixes to getDriverPropertyInfo().
-</programlisting>
+      <listitem>
+        <para>
+          Fixes to PreparedStatement to send binary set by setXXXStream
+          to be sent un-touched to the MySQL server.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Fixes to getDriverPropertyInfo().
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-1-1f">
 
     <title>&title-cj-news-1-1f;</title>
 
-<programlisting>
-     - Changed all ResultSet fields to Strings, this should allow
-       Unicode to work, but your JVM must be able to convert
-       between the character sets. This should also make reading
-       data from the server be a bit quicker, because there is now
-       no conversion from StringBuffer to String.
+    <itemizedlist>
 
-     - Changed PreparedStatement.streamToString() to be more
-       efficient (code from Uwe Schaefer).
+      <listitem>
+        <para>
+          Changed all ResultSet fields to Strings, this should allow
+          Unicode to work, but your JVM must be able to convert between
+          the character sets. This should also make reading data from
+          the server be a bit quicker, because there is now no
+          conversion from StringBuffer to String.
+        </para>
+      </listitem>
 
-     - URL parsing is more robust (throws SQL exceptions on errors
-       rather than NullPointerExceptions)
+      <listitem>
+        <para>
+          Changed PreparedStatement.streamToString() to be more
+          efficient (code from Uwe Schaefer).
+        </para>
+      </listitem>
 
-     - PreparedStatement now can convert Strings to Time/Date values
-       via setObject() (code from Robert Currey).
+      <listitem>
+        <para>
+          URL parsing is more robust (throws SQL exceptions on errors
+          rather than NullPointerExceptions)
+        </para>
+      </listitem>
 
-     - IO no longer hangs in Buffer.readInt(), that bug was
-       introduced in 1.1d when changing to all byte-arrays for
-       result sets. (Pointed out by Samo Login)
-</programlisting>
+      <listitem>
+        <para>
+          PreparedStatement now can convert Strings to Time/Date values
+          via setObject() (code from Robert Currey).
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          IO no longer hangs in Buffer.readInt(), that bug was
+          introduced in 1.1d when changing to all byte-arrays for result
+          sets. (Pointed out by Samo Login)
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-1-1b">
 
     <title>&title-cj-news-1-1b;</title>
 
-<programlisting>
-     - Fixes to DatabaseMetaData to allow both IBM VA and J-Builder
-       to work. Let me know how it goes. (thanks to Jac Kersing)
+    <itemizedlist>
 
-     - Fix to ResultSet.getBoolean() for NULL strings
-       (thanks to Barry Lagerweij)
+      <listitem>
+        <para>
+          Fixes to DatabaseMetaData to allow both IBM VA and J-Builder
+          to work. Let me know how it goes. (thanks to Jac Kersing)
+        </para>
+      </listitem>
 
-     - Beginning of code cleanup, and formatting. Getting ready
-       to branch this off to a parallel JDBC-2.0 source tree.
+      <listitem>
+        <para>
+          Fix to ResultSet.getBoolean() for NULL strings (thanks to
+          Barry Lagerweij)
+        </para>
+      </listitem>
 
-     - Added "final" modifier to critical sections in MysqlIO and
-       Buffer to allow compiler to inline methods for speed.
-</programlisting>
+      <listitem>
+        <para>
+          Beginning of code cleanup, and formatting. Getting ready to
+          branch this off to a parallel JDBC-2.0 source tree.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Added "final" modifier to critical sections in MysqlIO and
+          Buffer to allow compiler to inline methods for speed.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
     <para>
       9-29-98
     </para>
 
-<programlisting>
-     - If object references passed to setXXX() in PreparedStatement are
-       null, setNull() is automatically called for you. (Thanks for the
-       suggestion goes to Erik Ostrom)
+    <itemizedlist>
 
-     - setObject() in PreparedStatement will now attempt to write a
-       serialized  representation of the object to the database for
-       objects of Types.OTHER and objects of unknown type.
+      <listitem>
+        <para>
+          If object references passed to setXXX() in PreparedStatement
+          are null, setNull() is automatically called for you. (Thanks
+          for the suggestion goes to Erik Ostrom)
+        </para>
+      </listitem>
 
-     - Util now has a static method readObject() which given a ResultSet
-       and a column index will re-instantiate an object serialized in
-       the above manner.
-</programlisting>
+      <listitem>
+        <para>
+          setObject() in PreparedStatement will now attempt to write a
+          serialized representation of the object to the database for
+          objects of Types.OTHER and objects of unknown type.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Util now has a static method readObject() which given a
+          ResultSet and a column index will re-instantiate an object
+          serialized in the above manner.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-1-1">
 
     <title>&title-cj-news-1-1;</title>
 
-<programlisting>
-     - Got rid of "ugly hack" in MysqlIO.nextRow(). Rather than
-       catch an exception, Buffer.isLastDataPacket() was fixed.
+    <itemizedlist>
 
-     - Connection.getCatalog() and Connection.setCatalog()
-       should work now.
+      <listitem>
+        <para>
+          Got rid of "ugly hack" in MysqlIO.nextRow(). Rather than catch
+          an exception, Buffer.isLastDataPacket() was fixed.
+        </para>
+      </listitem>
 
-     - Statement.setMaxRows() works, as well as setting
-       by property maxRows. Statement.setMaxRows() overrides
-       maxRows set via properties or url parameters.
+      <listitem>
+        <para>
+          Connection.getCatalog() and Connection.setCatalog() should
+          work now.
+        </para>
+      </listitem>
 
-     - Automatic re-connection is available. Because it has
-       to "ping" the database before each query, it is
-       turned off by default. To use it, pass in "autoReconnect=true"
-       in the connection URL. You may also change the number of
-       reconnect tries, and the initial timeout value via
-       "maxReconnects=n" (default 3) and "initialTimeout=n"
-       (seconds, default 2) parameters. The timeout is an
-       exponential backoff type of timeout, e.g. if you have initial
-       timeout of 2 seconds, and maxReconnects of 3, then the driver
-       will timeout 2 seconds, 4 seconds, then 16 seconds between each
-       re-connection attempt.
-</programlisting>
+      <listitem>
+        <para>
+          Statement.setMaxRows() works, as well as setting by property
+          maxRows. Statement.setMaxRows() overrides maxRows set via
+          properties or url parameters.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Automatic re-connection is available. Because it has to "ping"
+          the database before each query, it is turned off by default.
+          To use it, pass in "autoReconnect=true" in the connection URL.
+          You may also change the number of reconnect tries, and the
+          initial timeout value via "maxReconnects=n" (default 3) and
+          "initialTimeout=n" (seconds, default 2) parameters. The
+          timeout is an exponential backoff type of timeout, e.g. if you
+          have initial timeout of 2 seconds, and maxReconnects of 3,
+          then the driver will timeout 2 seconds, 4 seconds, then 16
+          seconds between each re-connection attempt.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-1-0">
 
     <title>&title-cj-news-1-0;</title>
 
-<programlisting>
-     - Fixed handling of blob data in Buffer.java
+    <itemizedlist>
 
-     - Fixed bug with authentication packet being
-       sized too small.
+      <listitem>
+        <para>
+          Fixed handling of blob data in Buffer.java
+        </para>
+      </listitem>
 
-     - The JDBC Driver is now under the LPGL
-</programlisting>
+      <listitem>
+        <para>
+          Fixed bug with authentication packet being sized too small.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          The JDBC Driver is now under the LPGL
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
     <para>
       8-14-98
     </para>
 
-<programlisting>
-     - Fixed Buffer.readLenString() to correctly
-          read data for BLOBS.
+    <itemizedlist>
 
-     - Fixed PreparedStatement.stringToStream to
-          correctly read data for BLOBS.
+      <listitem>
+        <para>
+          Fixed Buffer.readLenString() to correctly read data for BLOBS.
+        </para>
+      </listitem>
 
-     - Fixed PreparedStatement.setDate() to not
-       add a day.
-       (above fixes thanks to Vincent Partington)
+      <listitem>
+        <para>
+          Fixed PreparedStatement.stringToStream to correctly read data
+          for BLOBS.
+        </para>
+      </listitem>
 
-     - Added URL parameter parsing (?user=... and so forth).
-</programlisting>
+      <listitem>
+        <para>
+          Fixed PreparedStatement.setDate() to not add a day. (above
+          fixes thanks to Vincent Partington)
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Added URL parameter parsing (?user=... and so forth).
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-0-9d">
 
     <title>&title-cj-news-0-9d;</title>
 
-<programlisting>
-     - Big news! New package name. Tim Endres from ICE
-       Engineering is starting a new source tree for
-       GNU GPL'd Java software. He's graciously given
-       me the org.gjt.mm package directory to use, so now
-       the driver is in the org.gjt.mm.mysql package scheme.
-       I'm "legal" now. Look for more information on Tim's
-       project soon.
+    <itemizedlist>
 
-     - Now using dynamically sized packets to reduce
-       memory usage when sending commands to the DB.
+      <listitem>
+        <para>
+          Big news! New package name. Tim Endres from ICE Engineering is
+          starting a new source tree for GNU GPL'd Java software. He's
+          graciously given me the org.gjt.mm package directory to use,
+          so now the driver is in the org.gjt.mm.mysql package scheme.
+          I'm "legal" now. Look for more information on Tim's project
+          soon.
+        </para>
+      </listitem>
 
-     - Small fixes to getTypeInfo() for parameters, and so forth.
+      <listitem>
+        <para>
+          Now using dynamically sized packets to reduce memory usage
+          when sending commands to the DB.
+        </para>
+      </listitem>
 
-     - DatabaseMetaData is now fully implemented. Let me
-       know if these drivers work with the various IDEs
-       out there. I've heard that they're working with
-       JBuilder right now.
+      <listitem>
+        <para>
+          Small fixes to getTypeInfo() for parameters, and so forth.
+        </para>
+      </listitem>
 
-     - Added JavaDoc documentation to the package.
+      <listitem>
+        <para>
+          DatabaseMetaData is now fully implemented. Let me know if
+          these drivers work with the various IDEs out there. I've heard
+          that they're working with JBuilder right now.
+        </para>
+      </listitem>
 
-     - Package now available in .zip or .tar.gz.
-</programlisting>
+      <listitem>
+        <para>
+          Added JavaDoc documentation to the package.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          Package now available in .zip or .tar.gz.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-0-9">
 
     <title>&title-cj-news-0-9;</title>
 
-<programlisting>
-     - Implemented getTypeInfo().
-       Connection.rollback() now throws an SQLException
-       per the JDBC spec.
+    <itemizedlist>
 
-     - Added PreparedStatement that supports all JDBC API
-       methods for PreparedStatement including InputStreams.
-       Please check this out and let me know if anything is
-       broken.
+      <listitem>
+        <para>
+          Implemented getTypeInfo(). Connection.rollback() now throws an
+          SQLException per the JDBC spec.
+        </para>
+      </listitem>
 
-     - Fixed a bug in ResultSet that would break some
-       queries that only returned 1 row.
+      <listitem>
+        <para>
+          Added PreparedStatement that supports all JDBC API methods for
+          PreparedStatement including InputStreams. Please check this
+          out and let me know if anything is broken.
+        </para>
+      </listitem>
 
-     - Fixed bugs in DatabaseMetaData.getTables(),
-       DatabaseMetaData.getColumns() and
-       DatabaseMetaData.getCatalogs().
+      <listitem>
+        <para>
+          Fixed a bug in ResultSet that would break some queries that
+          only returned 1 row.
+        </para>
+      </listitem>
 
-     - Added functionality to Statement that allows
-       executeUpdate() to store values for IDs that are
-       automatically generated for AUTO_INCREMENT fields.
-       Basically, after an executeUpdate(), look at the
-       SQLWarnings for warnings like "LAST_INSERTED_ID =
-       'some number', COMMAND = 'your SQL query'".
+      <listitem>
+        <para>
+          Fixed bugs in DatabaseMetaData.getTables(),
+          DatabaseMetaData.getColumns() and
+          DatabaseMetaData.getCatalogs().
+        </para>
+      </listitem>
 
-       If you are using AUTO_INCREMENT fields in your
-       tables and are executing a lot of executeUpdate()s
-       on one Statement, be sure to clearWarnings() every
-       so often to save memory.
-</programlisting>
+      <listitem>
+        <para>
+          Added functionality to Statement that allows executeUpdate()
+          to store values for IDs that are automatically generated for
+          AUTO_INCREMENT fields. Basically, after an executeUpdate(),
+          look at the SQLWarnings for warnings like "LAST_INSERTED_ID =
+          'some number', COMMAND = 'your SQL query'". If you are using
+          AUTO_INCREMENT fields in your tables and are executing a lot
+          of executeUpdate()s on one Statement, be sure to
+          clearWarnings() every so often to save memory.
+        </para>
+      </listitem>
 
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-0-8">
 
     <title>&title-cj-news-0-8;</title>
 
-<programlisting>
-     - Split MysqlIO and Buffer to separate classes. Some
-       ClassLoaders gave an IllegalAccess error for some
-       fields in those two classes. Now mm.mysql works in
-       applets and all classloaders.
+    <itemizedlist>
 
-       Thanks to Joe Ennis &lt;jce@stripped&gt; for pointing
-       out the problem and working on a fix with me.
-</programlisting>
+      <listitem>
+        <para>
+          Split MysqlIO and Buffer to separate classes. Some
+          ClassLoaders gave an IllegalAccess error for some fields in
+          those two classes. Now mm.mysql works in applets and all
+          classloaders. Thanks to Joe Ennis &lt;jce@stripped&gt;
+          for pointing out the problem and working on a fix with me.
+        </para>
+      </listitem>
 
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-0-7">
 
     <title>&title-cj-news-0-7;</title>
 
-<programlisting>
-     - Fixed DatabaseMetadata problems in getColumns() and
-       bug in switch statement in the Field constructor.
+    <itemizedlist>
 
-       Thanks to Costin Manolache &lt;costin@stripped&gt; for
-       pointing these out.
-</programlisting>
+      <listitem>
+        <para>
+          Fixed DatabaseMetadata problems in getColumns() and bug in
+          switch statement in the Field constructor. Thanks to Costin
+          Manolache &lt;costin@stripped&gt; for pointing these out.
+        </para>
+      </listitem>
 
+    </itemizedlist>
+
   </section>
 
   <section id="cj-news-0-6">
 
     <title>&title-cj-news-0-6;</title>
 
-<programlisting>
-     - Incorporated efficiency changes from
-       Richard Swift &lt;Richard.Swift@stripped&gt; in
-       MysqlIO.java and ResultSet.java
+    <itemizedlist>
 
-     - We're now 15% faster than gwe's driver.
+      <listitem>
+        <para>
+          Incorporated efficiency changes from Richard Swift
+          &lt;Richard.Swift@stripped&gt; in
+          <literal>MysqlIO.java</literal> and
+          <literal>ResultSet.java</literal>:
+        </para>
+      </listitem>
 
-     - Started working on DatabaseMetaData.
+      <listitem>
+        <para>
+          We're now 15% faster than gwe's driver.
+        </para>
+      </listitem>
 
-       The following methods are implemented:
-        * getTables()
-        * getTableTypes()
-        * getColumns
-        * getCatalogs()
-</programlisting>
+      <listitem>
+        <para>
+          Started working on <literal>DatabaseMetaData</literal>.
+        </para>
+      </listitem>
 
+      <listitem>
+        <para>
+          The following methods are implemented:
+        </para>
+
+        <itemizedlist>
+
+          <listitem>
+            <para>
+              <literal>getTables()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>getTableTypes()</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>getColumns</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>getCatalogs()</literal>
+            </para>
+          </listitem>
+
+        </itemizedlist>
+      </listitem>
+
+    </itemizedlist>
+
   </section>
 
 </section>

Modified: trunk/refman-common/titles.en.ent
===================================================================
--- trunk/refman-common/titles.en.ent	2006-03-16 21:39:48 UTC (rev 1609)
+++ trunk/refman-common/titles.en.ent	2006-03-17 04:43:29 UTC (rev 1610)
@@ -195,68 +195,68 @@
 <!ENTITY title-cj-jdbc-reference "JDBC Reference">
 <!ENTITY title-cj-jdbc-upgrading-issues "JDBC-Specific Issues When Upgrading to MySQL Server 4.1 or Newer">
 <!ENTITY title-cj-news "MySQL Connector/J Change History">
-<!ENTITY title-cj-news-0-6 "Changes in MySQL Connector/J 0.6 (21 May 1998">
-<!ENTITY title-cj-news-0-7 "Changes in MySQL Connector/J 0.7 (01 Jul 1998">
-<!ENTITY title-cj-news-0-8 "Changes in MySQL Connector/J 0.8 (06 Jul 1998">
-<!ENTITY title-cj-news-0-9 "Changes in MySQL Connector/J 0.9 (28 Jul 1998">
-<!ENTITY title-cj-news-0-9d "Changes in MySQL Connector/J 0.9d (04 Aug 1998">
-<!ENTITY title-cj-news-1-0 "Changes in MySQL Connector/J 1.0 (24 Aug 1998">
-<!ENTITY title-cj-news-1-1 "Changes in MySQL Connector/J 1.1 (02 Sep 1998">
-<!ENTITY title-cj-news-1-1b "Changes in MySQL Connector/J 1.1b (03 Nov 1998">
-<!ENTITY title-cj-news-1-1f "Changes in MySQL Connector/J 1.1f (31 Dec 1998">
-<!ENTITY title-cj-news-1-1g "Changes in MySQL Connector/J 1.1g (19 Feb 1999">
-<!ENTITY title-cj-news-1-1h "Changes in MySQL Connector/J 1.1h (08 Mar 1999">
-<!ENTITY title-cj-news-1-1i "Changes in MySQL Connector/J 1.1i (24 Mar 1999">
-<!ENTITY title-cj-news-1-2a "Changes in MySQL Connector/J 1.2a (14 Apr 1999">
-<!ENTITY title-cj-news-1-2b "Changes in MySQL Connector/J 1.2b (04 Jul 1999">
-<!ENTITY title-cj-news-2-0pre "Changes in MySQL Connector/J 2.0.0pre (17 Aug 1999">
-<!ENTITY title-cj-news-2-0pre4 "Changes in MySQL Connector/J 2.0.0pre4 (10 Jan 2000">
-<!ENTITY title-cj-news-2-0pre5 "Changes in MySQL Connector/J 2.0.0pre5 (21 Feb 2000">
-<!ENTITY title-cj-news-2-0-1 "Changes in MySQL Connector/J 2.0.1 (06 Apr 2000">
-<!ENTITY title-cj-news-2-0-3 "Changes in MySQL Connector/J 2.0.3 (03 Dec 2000">
-<!ENTITY title-cj-news-2-0-5 "Changes in MySQL Connector/J 2.0.5 (13 Jun 2001">
-<!ENTITY title-cj-news-2-0-6 "Changes in MySQL Connector/J 2.0.6 (16 Jun 2001">
-<!ENTITY title-cj-news-2-0-7 "Changes in MySQL Connector/J 2.0.7 (24 Oct 2001">
-<!ENTITY title-cj-news-2-0-8 "Changes in MySQL Connector/J 2.0.8 (25 Nov 2001">
-<!ENTITY title-cj-news-2-0-9 "Changes in MySQL Connector/J 2.0.9 (13 Jan 2002">
-<!ENTITY title-cj-news-2-0-10 "Changes in MySQL Connector/J 2.0.10 (24 Jan 2002">
-<!ENTITY title-cj-news-2-0-11 "Changes in MySQL Connector/J 2.0.11 (27 Jan 2002">
-<!ENTITY title-cj-news-2-0-12 "Changes in MySQL Connector/J 2.0.12 (07 Apr 2002">
-<!ENTITY title-cj-news-2-0-13 "Changes in MySQL Connector/J 2.0.13 (24 Apr 2002">
-<!ENTITY title-cj-news-2-0-14 "Changes in MySQL Connector/J 2.0.14 (16 May 2002">
-<!ENTITY title-cj-news-3-0-0 "Changes in MySQL Connector/J 3.0.0-dev (31 Jul 2002">
-<!ENTITY title-cj-news-3-0-1 "Changes in MySQL Connector/J 3.0.1-dev (21 Sep 2002">
-<!ENTITY title-cj-news-3-0-2 "Changes in MySQL Connector/J 3.0.2-dev (08 Nov 2002">
-<!ENTITY title-cj-news-3-0-3 "Changes in MySQL Connector/J 3.0.3-dev (17 Dec 2002">
-<!ENTITY title-cj-news-3-0-4 "Changes in MySQL Connector/J 3.0.4-gamma (06 Jan 2003">
-<!ENTITY title-cj-news-3-0-5 "Changes in MySQL Connector/J 3.0.5-gamma (22 Jan 2003">
-<!ENTITY title-cj-news-3-0-6 "Changes in MySQL Connector/J 3.0.6-stable (18 Feb 2003">
-<!ENTITY title-cj-news-3-0-7 "Changes in MySQL Connector/J 3.0.7-stable (08 Apr 2003">
-<!ENTITY title-cj-news-3-0-8 "Changes in MySQL Connector/J 3.0.8-stable (23 May 2003">
-<!ENTITY title-cj-news-3-0-9 "Changes in MySQL Connector/J 3.0.9-stable (07 Oct 2003">
-<!ENTITY title-cj-news-3-0-10 "Changes in MySQL Connector/J 3.0.10-stable (13 Jan 2004">
-<!ENTITY title-cj-news-3-0-11 "Changes in MySQL Connector/J 3.0.11-stable (19 Feb 2004">
-<!ENTITY title-cj-news-3-0-12 "Changes in MySQL Connector/J 3.0.12-production (18 May 2004">
-<!ENTITY title-cj-news-3-0-13 "Changes in MySQL Connector/J 3.0.13-production (27 May 2004">
-<!ENTITY title-cj-news-3-0-14 "Changes in MySQL Connector/J 3.0.14-production (28 May 2004">
-<!ENTITY title-cj-news-3-0-15 "Changes in MySQL Connector/J 3.0.15-production (04 Sep 2004">
-<!ENTITY title-cj-news-3-0-16 "Changes in MySQL Connector/J 3.0.16-ga (15 Nov 2004">
-<!ENTITY title-cj-news-3-0-17 "Changes in MySQL Connector/J 3.0.17-ga (23 Jun 2005">
-<!ENTITY title-cj-news-3-1-0 "Changes in MySQL Connector/J 3.1.0-alpha (18 Feb 2003">
-<!ENTITY title-cj-news-3-1-1 "Changes in MySQL Connector/J 3.1.1-alpha (14 Feb 2004">
-<!ENTITY title-cj-news-3-1-2 "Changes in MySQL Connector/J 3.1.2-alpha (09 Jun 2004">
-<!ENTITY title-cj-news-3-1-3 "Changes in MySQL Connector/J 3.1.3-beta (07 Jul 2004">
-<!ENTITY title-cj-news-3-1-4 "Changes in MySQL Connector/J 3.1.4-beta (04 Sep 2004">
-<!ENTITY title-cj-news-3-1-5 "Changes in MySQL Connector/J 3.1.5-gamma (02 Dec 2004">
-<!ENTITY title-cj-news-3-1-6 "Changes in MySQL Connector/J 3.1.6-stable (23 Dec 2004">
-<!ENTITY title-cj-news-3-1-7 "Changes in MySQL Connector/J 3.1.7-stable (18 Feb 2005">
-<!ENTITY title-cj-news-3-1-8 "Changes in MySQL Connector/J 3.1.8-stable (14 Apr 2005">
-<!ENTITY title-cj-news-3-1-9 "Changes in MySQL Connector/J 3.1.9-stable (22 Jun 2005">
-<!ENTITY title-cj-news-3-1-10 "Changes in MySQL Connector/J 3.1.10-stable (23 Jun 2005">
-<!ENTITY title-cj-news-3-1-11 "Changes in MySQL Connector/J 3.1.11-stable (07 Oct 2005">
-<!ENTITY title-cj-news-3-1-12 "Changes in MySQL Connector/J 3.1.12 (30 Nov 2005">
-<!ENTITY title-cj-news-3-1-13 "Changes in MySQL Connector/J 3.1.13 (xx xxx 2005">
-<!ENTITY title-cj-news-5-0-0 "Changes in MySQL Connector/J 5.0.0-beta (22 Dec 2005">
+<!ENTITY title-cj-news-0-6 "Changes in MySQL Connector/J 0.6 (21 May 1998)">
+<!ENTITY title-cj-news-0-7 "Changes in MySQL Connector/J 0.7 (01 Jul 1998)">
+<!ENTITY title-cj-news-0-8 "Changes in MySQL Connector/J 0.8 (06 Jul 1998)">
+<!ENTITY title-cj-news-0-9 "Changes in MySQL Connector/J 0.9 (28 Jul 1998)">
+<!ENTITY title-cj-news-0-9d "Changes in MySQL Connector/J 0.9d (04 Aug 1998)">
+<!ENTITY title-cj-news-1-0 "Changes in MySQL Connector/J 1.0 (24 Aug 1998)">
+<!ENTITY title-cj-news-1-1 "Changes in MySQL Connector/J 1.1 (02 Sep 1998)">
+<!ENTITY title-cj-news-1-1b "Changes in MySQL Connector/J 1.1b (03 Nov 1998)">
+<!ENTITY title-cj-news-1-1f "Changes in MySQL Connector/J 1.1f (31 Dec 1998)">
+<!ENTITY title-cj-news-1-1g "Changes in MySQL Connector/J 1.1g (19 Feb 1999)">
+<!ENTITY title-cj-news-1-1h "Changes in MySQL Connector/J 1.1h (08 Mar 1999)">
+<!ENTITY title-cj-news-1-1i "Changes in MySQL Connector/J 1.1i (24 Mar 1999)">
+<!ENTITY title-cj-news-1-2a "Changes in MySQL Connector/J 1.2a (14 Apr 1999)">
+<!ENTITY title-cj-news-1-2b "Changes in MySQL Connector/J 1.2b (04 Jul 1999)">
+<!ENTITY title-cj-news-2-0pre "Changes in MySQL Connector/J 2.0.0pre (17 Aug 1999)">
+<!ENTITY title-cj-news-2-0pre4 "Changes in MySQL Connector/J 2.0.0pre4 (10 Jan 2000)">
+<!ENTITY title-cj-news-2-0pre5 "Changes in MySQL Connector/J 2.0.0pre5 (21 Feb 2000)">
+<!ENTITY title-cj-news-2-0-1 "Changes in MySQL Connector/J 2.0.1 (06 Apr 2000)">
+<!ENTITY title-cj-news-2-0-3 "Changes in MySQL Connector/J 2.0.3 (03 Dec 2000)">
+<!ENTITY title-cj-news-2-0-5 "Changes in MySQL Connector/J 2.0.5 (13 Jun 2001)">
+<!ENTITY title-cj-news-2-0-6 "Changes in MySQL Connector/J 2.0.6 (16 Jun 2001)">
+<!ENTITY title-cj-news-2-0-7 "Changes in MySQL Connector/J 2.0.7 (24 Oct 2001)">
+<!ENTITY title-cj-news-2-0-8 "Changes in MySQL Connector/J 2.0.8 (25 Nov 2001)">
+<!ENTITY title-cj-news-2-0-9 "Changes in MySQL Connector/J 2.0.9 (13 Jan 2002)">
+<!ENTITY title-cj-news-2-0-10 "Changes in MySQL Connector/J 2.0.10 (24 Jan 2002)">
+<!ENTITY title-cj-news-2-0-11 "Changes in MySQL Connector/J 2.0.11 (27 Jan 2002)">
+<!ENTITY title-cj-news-2-0-12 "Changes in MySQL Connector/J 2.0.12 (07 Apr 2002)">
+<!ENTITY title-cj-news-2-0-13 "Changes in MySQL Connector/J 2.0.13 (24 Apr 2002)">
+<!ENTITY title-cj-news-2-0-14 "Changes in MySQL Connector/J 2.0.14 (16 May 2002)">
+<!ENTITY title-cj-news-3-0-0 "Changes in MySQL Connector/J 3.0.0-dev (31 Jul 2002)">
+<!ENTITY title-cj-news-3-0-1 "Changes in MySQL Connector/J 3.0.1-dev (21 Sep 2002)">
+<!ENTITY title-cj-news-3-0-2 "Changes in MySQL Connector/J 3.0.2-dev (08 Nov 2002)">
+<!ENTITY title-cj-news-3-0-3 "Changes in MySQL Connector/J 3.0.3-dev (17 Dec 2002)">
+<!ENTITY title-cj-news-3-0-4 "Changes in MySQL Connector/J 3.0.4-gamma (06 Jan 2003)">
+<!ENTITY title-cj-news-3-0-5 "Changes in MySQL Connector/J 3.0.5-gamma (22 Jan 2003)">
+<!ENTITY title-cj-news-3-0-6 "Changes in MySQL Connector/J 3.0.6-stable (18 Feb 2003)">
+<!ENTITY title-cj-news-3-0-7 "Changes in MySQL Connector/J 3.0.7-stable (08 Apr 2003)">
+<!ENTITY title-cj-news-3-0-8 "Changes in MySQL Connector/J 3.0.8-stable (23 May 2003)">
+<!ENTITY title-cj-news-3-0-9 "Changes in MySQL Connector/J 3.0.9-stable (07 Oct 2003)">
+<!ENTITY title-cj-news-3-0-10 "Changes in MySQL Connector/J 3.0.10-stable (13 Jan 2004)">
+<!ENTITY title-cj-news-3-0-11 "Changes in MySQL Connector/J 3.0.11-stable (19 Feb 2004)">
+<!ENTITY title-cj-news-3-0-12 "Changes in MySQL Connector/J 3.0.12-production (18 May 2004)">
+<!ENTITY title-cj-news-3-0-13 "Changes in MySQL Connector/J 3.0.13-production (27 May 2004)">
+<!ENTITY title-cj-news-3-0-14 "Changes in MySQL Connector/J 3.0.14-production (28 May 2004)">
+<!ENTITY title-cj-news-3-0-15 "Changes in MySQL Connector/J 3.0.15-production (04 Sep 2004)">
+<!ENTITY title-cj-news-3-0-16 "Changes in MySQL Connector/J 3.0.16-ga (15 Nov 2004)">
+<!ENTITY title-cj-news-3-0-17 "Changes in MySQL Connector/J 3.0.17-ga (23 Jun 2005)">
+<!ENTITY title-cj-news-3-1-0 "Changes in MySQL Connector/J 3.1.0-alpha (18 Feb 2003)">
+<!ENTITY title-cj-news-3-1-1 "Changes in MySQL Connector/J 3.1.1-alpha (14 Feb 2004)">
+<!ENTITY title-cj-news-3-1-2 "Changes in MySQL Connector/J 3.1.2-alpha (09 Jun 2004)">
+<!ENTITY title-cj-news-3-1-3 "Changes in MySQL Connector/J 3.1.3-beta (07 Jul 2004)">
+<!ENTITY title-cj-news-3-1-4 "Changes in MySQL Connector/J 3.1.4-beta (04 Sep 2004)">
+<!ENTITY title-cj-news-3-1-5 "Changes in MySQL Connector/J 3.1.5-gamma (02 Dec 2004)">
+<!ENTITY title-cj-news-3-1-6 "Changes in MySQL Connector/J 3.1.6-stable (23 Dec 2004)">
+<!ENTITY title-cj-news-3-1-7 "Changes in MySQL Connector/J 3.1.7-stable (18 Feb 2005)">
+<!ENTITY title-cj-news-3-1-8 "Changes in MySQL Connector/J 3.1.8-stable (14 Apr 2005)">
+<!ENTITY title-cj-news-3-1-9 "Changes in MySQL Connector/J 3.1.9-stable (22 Jun 2005)">
+<!ENTITY title-cj-news-3-1-10 "Changes in MySQL Connector/J 3.1.10-stable (23 Jun 2005)">
+<!ENTITY title-cj-news-3-1-11 "Changes in MySQL Connector/J 3.1.11-stable (07 Oct 2005)">
+<!ENTITY title-cj-news-3-1-12 "Changes in MySQL Connector/J 3.1.12 (30 Nov 2005)">
+<!ENTITY title-cj-news-3-1-13 "Changes in MySQL Connector/J 3.1.13 (xx xxx 2005)">
+<!ENTITY title-cj-news-5-0-0 "Changes in MySQL Connector/J 5.0.0-beta (22 Dec 2005)">
 <!ENTITY title-cj-replication-connection "Using Master/Slave Replication with ReplicationConnection">
 <!ENTITY title-cj-reporting-bugs "How to Report Connector/J Bugs or Problems">
 <!ENTITY title-cj-retrieve-autoinc "Retrieving <literal>AUTO_INCREMENT</literal> Column Values">

Thread
svn commit - mysqldoc@docsrva: r1610 - in trunk: . refman-commonpaul17 Mar