You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by David Van Couvering <Da...@Sun.COM> on 2005/08/02 20:16:34 UTC

DERBY-412 (Connection.toString() formatting) patch uploaded

FYI, I attached another patch for DERBY-412, based on Tomohito's 
comments.  Tomohito, would you be willing to review the changes?

I don't think I can commit yet (I'm a little  unclear on my current 
status), so perhaps you could also commit it if it looks good, Tomohito?

Thanks,

David

Commited (Re: Testing at my site passed.(Re: Failed to downloaded , JIRA problem ? (Re: DERBY-412 (Connection.toString() formatting) patch uploaded)))

Posted by TomohitoNakayama <to...@basil.ocn.ne.jp>.
Hello.

I have commited the patch "DERBY-412.diff".
Attached file is log of commiting.

Best regards.

/*

         Tomohito Nakayama
         tomonaka@basil.ocn.ne.jp
         tomohito@rose.zero.ad.jp
         tmnk@apache.org

         Naka
         http://www5.ocn.ne.jp/~tomohito/TopPage.html

*/
----- Original Message ----- 
From: "TomohitoNakayama" <to...@basil.ocn.ne.jp>
To: "Derby Development" <de...@db.apache.org>
Sent: Saturday, August 06, 2005 11:39 AM
Subject: Testing at my site passed.(Re: Failed to downloaded , JIRA problem ? (Re: DERBY-412 (Connection.toString() formatting) 
patch uploaded))


> Hello David .
>
> I have executed derbyall.
>
> I found a error in unit test (unit/unit.fail:unit/T_Diagnosticable.unit)
> but this seems not caused by your patch , because same error was found without your patch applied.
>
> I will commit your patch. Wait for a moment.
>
> Best regards.
>
> /*
>
>         Tomohito Nakayama
>         tomonaka@basil.ocn.ne.jp
>         tomohito@rose.zero.ad.jp
>         tmnk@apache.org
>
>         Naka
>         http://www5.ocn.ne.jp/~tomohito/TopPage.html
>
> */
> ----- Original Message ----- 
> From: "TomohitoNakayama" <to...@basil.ocn.ne.jp>
> To: "Derby Development" <de...@db.apache.org>
> Sent: Thursday, August 04, 2005 8:15 PM
> Subject: Re: Failed to downloaded , JIRA problem ? (Re: DERBY-412 (Connection.toString() formatting) patch uploaded)
>
>
>> Hello.
>>
>> I recevied it.
>> //Oh , you removed local variables ....  :o
>>
>> Well, I will start to run test at my site.
>>
>> Please wait for a while.
>>
>> Best regards.
>>
>> /*
>>
>>         Tomohito Nakayama
>>         tomonaka@basil.ocn.ne.jp
>>         tomohito@rose.zero.ad.jp
>>         tmnk@apache.org
>>
>>         Naka
>>         http://www5.ocn.ne.jp/~tomohito/TopPage.html
>>
>> */
>> ----- Original Message ----- 
>> From: "David Van Couvering" <Da...@Sun.COM>
>> To: "Derby Development" <de...@db.apache.org>
>> Sent: Thursday, August 04, 2005 1:10 AM
>> Subject: Re: Failed to downloaded , JIRA problem ? (Re: DERBY-412 (Connection.toString() formatting) patch uploaded)
>>
>>
>>> Hi, Tomohito, here is the patch, I'll also try to put it on JIRA again
>>>
>>> TomohitoNakayama wrote:
>>>
>>>> Hello.
>>>>
>>>> I try to get http://issues.apache.org/jira/secure/attachment/12311443/DERBY-412.diff and failed.
>>>> Jira seems to have some problem....
>>>>
>>>> Next is log of downloading ....
>>>>
>>>> Request:
>>>> GET http://issues.apache.org/jira/secure/attachment/12311443/DERBY-412.diff HTTP/1.0
>>>> Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, 
>>>> application/vnd.ms-excel, application/msword, */*
>>>> Referer: http://issues.apache.org/jira/browse/DERBY-412
>>>> Accept-Language: ja
>>>> Proxy-Connection: Keep-Alive
>>>> User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; i-NavFourF; .NET CLR 2.0.40607)
>>>> Host: issues.apache.org
>>>> Cookie: seraph.os.cookie=GlMlJlOlPmMiPiKiOiIiRiMi; JSESSIONID=2E4F5F17ADA0CB9EEF8783685971D156
>>>>
>>>>
>>>> Response:
>>>> HTTP/1.1 404 Could not find specified attachment: null
>>>> Date: Wed, 03 Aug 2005 10:08:34 GMT
>>>> Server: Apache-Coyote/1.1
>>>> Content-Type: text/html;charset=utf-8
>>>> Content-Length: 1075
>>>> Proxy-Connection: close
>>>> Connection: close
>>>>
>>>> <html><head><title>Apache Tomcat/5.0.30 - Error report</title><style><!--H1 
>>>> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 
>>>> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 
>>>> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY 
>>>> {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B 
>>>> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P 
>>>> {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR 
>>>> {color : #525D76;}--></style> </head><body><h1>HTTP Status 404 - Could not find specified attachment: null</h1><HR size="1" 
>>>> noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b> <u>Could not find specified attachment: 
>>>> null</u></p><p><b>description</b> <u>The requested resource (Could not find specified attachment: null) is not 
>>>> available.</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/5.0.30</h3></body></html>
>>>>
>>>>
>>>> Can you redo uploading new patch?
>>>>
>>>> Best regards.
>>>>
>>>> /*
>>>>
>>>>         Tomohito Nakayama
>>>>         tomonaka@basil.ocn.ne.jp
>>>>         tomohito@rose.zero.ad.jp
>>>>         tmnk@apache.org
>>>>
>>>>         Naka
>>>>         http://www5.ocn.ne.jp/~tomohito/TopPage.html
>>>>
>>>> */
>>>> ----- Original Message ----- From: "David Van Couvering" <Da...@Sun.COM>
>>>> To: "Derby Development" <de...@db.apache.org>
>>>> Sent: Wednesday, August 03, 2005 3:16 AM
>>>> Subject: DERBY-412 (Connection.toString() formatting) patch uploaded
>>>>
>>>>
>>>>> FYI, I attached another patch for DERBY-412, based on Tomohito's
>>>>> comments.  Tomohito, would you be willing to review the changes?
>>>>>
>>>>> I don't think I can commit yet (I'm a little  unclear on my current
>>>>> status), so perhaps you could also commit it if it looks good, Tomohito?
>>>>>
>>>>> Thanks,
>>>>>
>>>>> David
>>>>>
>>>>
>>>>
>>>> -------------------------------------------------------------------------------- 
>>>>
>>>>
>>>>
>>>> No virus found in this incoming message.
>>>> Checked by AVG Anti-Virus.
>>>> Version: 7.0.338 / Virus Database: 267.9.7/60 - Release Date: 2005/07/28
>>>>
>>>>
>>>>
>>>
>>
>>
>> --------------------------------------------------------------------------------
>>
>>
>>> Index: java/engine/org/apache/derby/impl/jdbc/EmbedConnection.java
>>> ===================================================================
>>> --- java/engine/org/apache/derby/impl/jdbc/EmbedConnection.java (revision 226839)
>>> +++ java/engine/org/apache/derby/impl/jdbc/EmbedConnection.java (working copy)
>>> @@ -145,7 +145,7 @@
>>>  private int resultSetId;
>>>     /** Cached string representation of the connection id */
>>> -    private String idString;
>>> +    private String connString;
>>>
>>>
>>>  //////////////////////////////////////////////////////////
>>> @@ -1919,7 +1919,8 @@
>>>
>>>     /**
>>>      * Get a String representation that uniquely identifies
>>> -     * this connection
>>> +     * this connection.  Include the same information that is
>>> +     * printed in the log for various trace and error messages.
>>>      *
>>>      * In Derby the "physical" connection is a LanguageConnectionContext, * or LCC.
>>> @@ -1928,18 +1929,27 @@
>>>      * Note that this is a big aid in debugging, because much of the
>>>      * engine trace and log code prints the LCC id. *
>>> -     * @return a string representation of the unique id for the
>>> -     *    underlying LanguageConnectionContext
>>> +     * @return a string representation for this connection
>>>      */
>>>     public String toString()
>>>     {
>>> -        if ( idString == null )
>>> +        if ( connString == null )
>>>         {
>>> -            idString = -              Integer.toString(getLanguageConnection().getInstanceNumber());
>>> -        }
>>> +            +            LanguageConnectionContext lcc = getLanguageConnection();
>>> +
>>> +            connString = +              this.getClass().getName() + "@" + this.hashCode() + " " +
>>> +                lcc.xidStr +                  +                    lcc.getTransactionExecute().getTransactionIdString() + + 
>>> "), " +
>>> +                lcc.lccStr + +                    Integer.toString(lcc.getInstanceNumber()) + "), " +
>>> +                lcc.dbnameStr + lcc.getDbname() + "), " +
>>> +                lcc.drdaStr + lcc.getDrdaID() + ") ";
>>> +        }       -        return idString;
>>> +        return connString;
>>>     }
>>>
>>>
>>> Index: java/engine/org/apache/derby/iapi/jdbc/BrokeredConnection.java
>>> ===================================================================
>>> --- java/engine/org/apache/derby/iapi/jdbc/BrokeredConnection.java (revision 226839)
>>> +++ java/engine/org/apache/derby/iapi/jdbc/BrokeredConnection.java (working copy)
>>> @@ -51,6 +51,7 @@
>>>
>>>  protected final BrokeredConnectionControl control;
>>>  private boolean isClosed;
>>> +        private String connString;
>>>
>>>  /**
>>>  Maintain state as seen by this Connection handle, not the state
>>> @@ -486,33 +487,30 @@
>>>  }
>>>             /**
>>> -     * Get the string representation for the underlying physical
>>> -     * connection.
>>> -     *
>>> -     *  When a physical connection is created, it is assigned a unique id -     *  that is unchanged for the lifetime of the 
>>> connection. When an -     *  application calls Connection.toString(), it gets the string -     *  representation of the 
>>> underlying physical connection, regardless -     *  of whether the application has a reference to the physical connection - 
>>> *  itself or a reference to a proxy connection (aka brokered connection) -     *  that wraps the physical connection.
>>> -     *
>>> -     *  Since this BrokeredConnection is a proxy connection, we return the
>>> -     *  string value of its underlying physical connection
>>> +     * Get the string representation for this connection.  Return
>>> +     * the class name/hash code and various debug information.
>>>      * -     * @return unique string representation of the underlying
>>> -     *   physical connection
>>> +     * @return unique string representation for this connection
>>>      */
>>>     public String toString() {
>>> -        try
>>> +        if ( connString == null )
>>>         {
>>> -            return getRealConnection().toString();
>>> +            String wrappedString;
>>> +            try
>>> +            {
>>> +                wrappedString = getRealConnection().toString();
>>> +            }
>>> +            catch ( SQLException e )
>>> +            {
>>> +                wrappedString = "<none>";
>>> +            }
>>> +            +            connString = this.getClass().getName() + "@" + this.hashCode() +
>>> +                ", Wrapped Connection = " + wrappedString;
>>>         }
>>> -        catch ( SQLException e )
>>> -        {
>>> -            return "<no connection>";
>>> -        }
>>> +        +        return connString;
>>>     }
>>>
>>>  protected int getJDBCLevel() { return 2;}
>>> Index: java/engine/org/apache/derby/jdbc/EmbedPooledConnection.java
>>> ===================================================================
>>> --- java/engine/org/apache/derby/jdbc/EmbedPooledConnection.java (revision 226839)
>>> +++ java/engine/org/apache/derby/jdbc/EmbedPooledConnection.java (working copy)
>>> @@ -63,8 +63,8 @@
>>>     /** The id for this connection.  */
>>>     private int connectionId;
>>>     -    /** String representation of id */
>>> -    private String idString;
>>> +    /** the connection string */
>>> +    private String connString;
>>>     private Vector eventListener; // who wants to know I am closed or error
>>>
>>> @@ -459,12 +459,18 @@
>>>      */
>>>     public String toString()
>>>     {
>>> -        if ( idString == null )
>>> +        if ( connString == null )
>>>         {
>>> -            idString = Integer.toString(connectionId);
>>> -        }
>>> +            String physicalConnString = isActive ?
>>> +                realConnection.toString() : "<none>";
>>> +            +            connString = +              this.getClass().getName() + "@" + this.hashCode() + " " +
>>> +                "(ID = " + connectionId + "), " +
>>> +                "Physical Connection = " + physicalConnString;
>>> +        }    -        return idString;
>>> +        return connString;
>>>     }
>>>
>>> }
>>> Index: java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/build.xml
>>> ===================================================================
>>> --- java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/build.xml (revision 226839)
>>> +++ java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/build.xml (working copy)
>>> @@ -119,8 +119,9 @@
>>>       srcdir="${derby.testing.src.dir}"
>>>       destdir="${out.dir}">
>>>       <classpath>
>>> +        <pathelement path="${java13compile.classpath}"/>
>>> +        <pathelement location="${oro}"/>
>>>         <pathelement location="${jta1_2}"/>
>>> -        <pathelement path="${java13compile.classpath}"/>
>>>       </classpath>
>>>       <!--exclude name=""/-->
>>>       <include name="${this.dir}/checkDataSource.java"/>
>>> Index: java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/checkDataSource.java
>>> ===================================================================
>>> --- java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/checkDataSource.java (revision 226839)
>>> +++ java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/checkDataSource.java (working copy)
>>> @@ -24,6 +24,8 @@
>>> import org.apache.derby.jdbc.EmbeddedSimpleDataSource;
>>> import org.apache.derby.jdbc.EmbeddedConnectionPoolDataSource;
>>> import org.apache.derby.jdbc.EmbeddedXADataSource;
>>> +import org.apache.derby.iapi.jdbc.BrokeredConnection;
>>> +import org.apache.derby.impl.jdbc.EmbedConnection;
>>>
>>> import java.sql.Connection;
>>> import java.sql.ResultSet;
>>> @@ -49,13 +51,33 @@
>>> import java.io.*;
>>> import java.util.Hashtable;
>>> import java.util.Iterator;
>>> -
>>> +import org.apache.oro.text.perl.Perl5Util;
>>> import javax.naming.*;
>>> import javax.naming.directory.*;
>>>
>>> public class checkDataSource
>>> { +    /**
>>> +     * A hashtable of opened connections.  This is used when checking to
>>> +     * make sure connection strings are unique; we need to make sure all
>>> +     * the connections are closed when we are done, so they are stored
>>> +     * in this hashtable
>>> +     */
>>>     protected static Hashtable conns = new Hashtable();
>>> +    +    /**
>>> +     * This is a utility that knows how to do pattern matching.  Used
>>> +     * in checking the format of a connection string
>>> +     */
>>> +    protected static Perl5Util p5u = new Perl5Util();
>>> +    +    /** The expected format of a connection string. In English:
>>> +     * "<classname>@<hashcode> (XID=<xid>), (SESSION = <sessionid>),
>>> +     *  (DATABASE=<dbname>), (DRDAID = <drdaid>)"
>>> +     */
>>> +    private static final String CONNSTRING_FORMAT = "\\S+@[0-9]+ " +
>>> +        "\\(XID = .*\\), \\(SESSIONID = [0-9]+\\), " +
>>> +        "\\(DATABASE = [A-Za-z]+\\), \\(DRDAID = .+\\)";
>>>
>>>  public static void main(String[] args) throws Exception {
>>>
>>> @@ -841,8 +863,9 @@
>>>     /**
>>>      * Make sure this connection's string is unique (DERBY-243)
>>>      */
>>> -    protected void checkToString(Connection conn) throws Exception
>>> +    protected static void checkToString(Connection conn) throws Exception
>>>     {
>>> +        checkStringFormat(conn);
>>>         String str = conn.toString();
>>>
>>>         if ( conns.containsKey(str))
>>> @@ -853,11 +876,89 @@
>>>         conns.put(str, conn);
>>>     }
>>>     +    /** +     * Check the format of a pooled connection
>>> +     **/
>>> +    protected static void checkStringFormat(PooledConnection pc) throws Exception
>>> +    {
>>> +        String prefix = checkStringPrefix(pc);
>>> +        String connstr = pc.toString();
>>> +        String format = "/" + prefix + +            " \\(ID = [0-9]+\\), Physical Connection = " +
>>> +            "<none>|" + CONNSTRING_FORMAT + "/";
>>> +        +        if ( ! p5u.match(format, connstr) )
>>> +        {
>>> +            throw new Exception( "Connection.toString() (" + connstr + ") " +
>>> +              "does not match expected format (" + format + ")");
>>> +        }
>>> +    }
>>> +    /**
>>> +     * Check the format for the toString() of a Connection that is an
>>> +     * instance of BrokeredConnection.  This is different, as the Brokered
>>> +     * Connection prints out its class name and then the toString() value
>>> +     * of the underlying, wrapped connection.
>>> +     */
>>> +    protected static void checkStringFormat(BrokeredConnection conn) throws Exception
>>> +    {
>>> +        String connstr = conn.toString();
>>> +        String prefix = checkStringPrefix(connstr);
>>> +        +        String format = "/" + prefix + ", Wrapped Connection = " + +            "<none>|" + CONNSTRING_FORMAT + "/";
>>> +
>>> +        if ( ! p5u.match(format, connstr) )
>>> +        {
>>> +            throw new Exception( "Connection.toString() (" + connstr + ") " +
>>> +                "does not match expected format (" + format + ")");
>>> +        }
>>> +    }
>>> +        +     /**
>>> +     * Check the format of the connection string.  This is the default test
>>> +     * to run if this is not a BrokeredConnection class
>>> +     */
>>> +    protected static void checkStringFormat(Connection conn) throws Exception
>>> +    {
>>> +        String prefix = checkStringPrefix(conn);
>>> +        +        String str = conn.toString();        +       +        // See if the connection string matches the format 
>>> pattern    +        if ( ! p5u.match("/" + CONNSTRING_FORMAT + "/", str) )
>>> +        {
>>> +            throw new Exception( "Connection.toString() (" + str + ") " +
>>> +                "does not match expected format (" + CONNSTRING_FORMAT + ")");
>>> +        }
>>> +    }
>>> +    +    /**
>>> +     * Make sure the connection string starts with the right prefix, which
>>> +     * is the classname@hashcode.
>>> +     *
>>> +     * @return the expected prefix string, this is used in further string
>>> +     *   format checking
>>> +     */
>>> +    protected static String checkStringPrefix(Object conn) throws Exception
>>> +    {
>>> +        String connstr = conn.toString();
>>> +        String prefix = conn.getClass().getName() + "@" + conn.hashCode();
>>> +        if ( ! connstr.startsWith(prefix) )
>>> +        {
>>> +            throw new Exception("Connection class and hash code for " +
>>> +                "connection string (" + connstr + ") does not match expected " +
>>> +                "(" + prefix + ")");
>>> +        }  +        +        return prefix;
>>> +    }
>>> +    +    /**
>>>      * Clear out and close connections in the connections
>>>      * hashtable. */
>>> -    protected void clearConnections() throws SQLException
>>> +    protected static void clearConnections() throws SQLException
>>>     {
>>>         java.util.Iterator it = conns.values().iterator();
>>>         while ( it.hasNext() )
>>> @@ -872,7 +973,7 @@
>>>      * Get connections  using ij.startJBMS() and make sure
>>>      * they're unique
>>>      */
>>> -    protected void checkJBMSToString() throws Exception
>>> +    protected static void checkJBMSToString() throws Exception
>>>     {
>>>         clearConnections();
>>>         // Open ten connections rather than just two to
>>> @@ -893,7 +994,7 @@
>>>      * Check uniqueness of connection strings coming from a
>>>      * DataSouce
>>>      */
>>> -    protected void checkToString(DataSource ds) throws Exception
>>> +    protected static void checkToString(DataSource ds) throws Exception
>>>     {
>>>         clearConnections();
>>>         @@ -912,7 +1013,7 @@
>>>      * We want to check the PooledConnection as well as the
>>>      * underlying physical connection. */
>>> -    protected void checkToString(ConnectionPoolDataSource pds)
>>> +    protected static void checkToString(ConnectionPoolDataSource pds)
>>>         throws Exception
>>>     {
>>>         int numConnections = 10;
>>> @@ -923,6 +1024,7 @@
>>>         for ( int i = 0 ; i < numConnections ; i++ )
>>>         {
>>>             PooledConnection pc = pds.getPooledConnection();
>>> +            checkStringFormat(pc);
>>>             String str = pc.toString();
>>>             if ( pooledConns.get(str) != null )
>>>             {
>>> @@ -952,26 +1054,12 @@
>>>             pc.close();
>>>         }
>>>         pooledConns.clear();
>>> -        -        // Now check that two connections from the same -        // PooledConnection have the same string value
>>> -        PooledConnection pc = pds.getPooledConnection();
>>> -        Connection conn = pc.getConnection();
>>> -        String str = conn.toString();
>>> -        conn = pc.getConnection();
>>> -        if ( ! conn.toString().equals(str) )
>>> -        {
>>> -            throw new Exception("Two connections from the " +
>>> -              "same pooled connection have different string " +
>>> -              "values: " + str + ", " + conn.toString());
>>> -        }
>>> -        pc.close();
>>>     }
>>>     /**
>>>      * Check uniqueness of strings for an XA data source
>>>      */
>>> -    protected void checkToString(XADataSource xds) throws Exception
>>> +    protected static void checkToString(XADataSource xds) throws Exception
>>>     {
>>>         int numConnections = 10;
>>>         @@ -981,6 +1069,7 @@
>>>         for ( int i = 0 ; i < numConnections ; i++ )
>>>         {
>>>             XAConnection xc = xds.getXAConnection();
>>> +            checkStringFormat(xc);
>>>             String str = xc.toString();
>>>             if ( xaConns.get(str) != null )
>>>             {
>>> @@ -1010,20 +1099,6 @@
>>>             xc.close();
>>>         }
>>>         xaConns.clear();
>>> -        -        // Now check that two connections from the same -        // XAConnection have the same string value
>>> -        XAConnection xc = xds.getXAConnection();
>>> -        Connection conn = xc.getConnection();
>>> -        String str = conn.toString();
>>> -        conn = xc.getConnection();
>>> -        if ( ! conn.toString().equals(str) )
>>> -        {
>>> -            throw new Exception("Two connections from the " +
>>> -              "same pooled connection have different string " +
>>> -              "values: " + str + ", " + conn.toString());
>>> -        }
>>> -        xc.close();
>>>     }
>>>     protected static void checkConnectionPreCloseS(String dsName, Connection conn) throws SQLException {
>>>
>>
>>
>> --------------------------------------------------------------------------------
>>
>>
>> No virus found in this incoming message.
>> Checked by AVG Anti-Virus.
>> Version: 7.0.338 / Virus Database: 267.9.9/62 - Release Date: 2005/08/02
>>
>>
>>
>> -- 
>> No virus found in this outgoing message.
>> Checked by AVG Anti-Virus.
>> Version: 7.0.338 / Virus Database: 267.10.0/63 - Release Date: 2005/08/03
>>
>>
>>
>>
>> -- 
>> No virus found in this incoming message.
>> Checked by AVG Anti-Virus.
>> Version: 7.0.338 / Virus Database: 267.10.0/63 - Release Date: 2005/08/03
>>
>
>
> -- 
> No virus found in this outgoing message.
> Checked by AVG Anti-Virus.
> Version: 7.0.338 / Virus Database: 267.10.1/64 - Release Date: 2005/08/04
>
>
>
>
> -- 
> No virus found in this incoming message.
> Checked by AVG Anti-Virus.
> Version: 7.0.338 / Virus Database: 267.10.1/64 - Release Date: 2005/08/04
> 

Testing at my site passed.(Re: Failed to downloaded , JIRA problem ? (Re: DERBY-412 (Connection.toString() formatting) patch uploaded))

Posted by TomohitoNakayama <to...@basil.ocn.ne.jp>.
Hello David .

I have executed derbyall.

I found a error in unit test (unit/unit.fail:unit/T_Diagnosticable.unit)
but this seems not caused by your patch , 
because same error was found without your patch applied.

I will commit your patch. Wait for a moment.

Best regards.

/*

         Tomohito Nakayama
         tomonaka@basil.ocn.ne.jp
         tomohito@rose.zero.ad.jp
         tmnk@apache.org

         Naka
         http://www5.ocn.ne.jp/~tomohito/TopPage.html

*/
----- Original Message ----- 
From: "TomohitoNakayama" <to...@basil.ocn.ne.jp>
To: "Derby Development" <de...@db.apache.org>
Sent: Thursday, August 04, 2005 8:15 PM
Subject: Re: Failed to downloaded , JIRA problem ? (Re: DERBY-412 (Connection.toString() formatting) patch uploaded)


> Hello.
> 
> I recevied it.
> //Oh , you removed local variables ....  :o
> 
> Well, I will start to run test at my site.
> 
> Please wait for a while.
> 
> Best regards.
> 
> /*
> 
>         Tomohito Nakayama
>         tomonaka@basil.ocn.ne.jp
>         tomohito@rose.zero.ad.jp
>         tmnk@apache.org
> 
>         Naka
>         http://www5.ocn.ne.jp/~tomohito/TopPage.html
> 
> */
> ----- Original Message ----- 
> From: "David Van Couvering" <Da...@Sun.COM>
> To: "Derby Development" <de...@db.apache.org>
> Sent: Thursday, August 04, 2005 1:10 AM
> Subject: Re: Failed to downloaded , JIRA problem ? (Re: DERBY-412 (Connection.toString() formatting) patch uploaded)
> 
> 
>> Hi, Tomohito, here is the patch, I'll also try to put it on JIRA again
>> 
>> TomohitoNakayama wrote:
>> 
>>> Hello.
>>>
>>> I try to get 
>>> http://issues.apache.org/jira/secure/attachment/12311443/DERBY-412.diff 
>>> and failed.
>>> Jira seems to have some problem....
>>>
>>> Next is log of downloading ....
>>>
>>> Request:
>>> GET 
>>> http://issues.apache.org/jira/secure/attachment/12311443/DERBY-412.diff 
>>> HTTP/1.0
>>> Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, 
>>> application/x-shockwave-flash, application/vnd.ms-powerpoint, 
>>> application/vnd.ms-excel, application/msword, */*
>>> Referer: http://issues.apache.org/jira/browse/DERBY-412
>>> Accept-Language: ja
>>> Proxy-Connection: Keep-Alive
>>> User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; 
>>> i-NavFourF; .NET CLR 2.0.40607)
>>> Host: issues.apache.org
>>> Cookie: seraph.os.cookie=GlMlJlOlPmMiPiKiOiIiRiMi; 
>>> JSESSIONID=2E4F5F17ADA0CB9EEF8783685971D156
>>>
>>>
>>> Response:
>>> HTTP/1.1 404 Could not find specified attachment: null
>>> Date: Wed, 03 Aug 2005 10:08:34 GMT
>>> Server: Apache-Coyote/1.1
>>> Content-Type: text/html;charset=utf-8
>>> Content-Length: 1075
>>> Proxy-Connection: close
>>> Connection: close
>>>
>>> <html><head><title>Apache Tomcat/5.0.30 - Error 
>>> report</title><style><!--H1 
>>> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} 
>>> H2 
>>> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} 
>>> H3 
>>> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} 
>>> BODY 
>>> {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} 
>>> B 
>>> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} 
>>> P 
>>> {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A 
>>> {color : black;}A.name {color : black;}HR {color : 
>>> #525D76;}--></style> </head><body><h1>HTTP Status 404 - Could not find 
>>> specified attachment: null</h1><HR size="1" 
>>> noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b> 
>>> <u>Could not find specified attachment: 
>>> null</u></p><p><b>description</b> <u>The requested resource (Could not 
>>> find specified attachment: null) is not available.</u></p><HR size="1" 
>>> noshade="noshade"><h3>Apache Tomcat/5.0.30</h3></body></html>
>>>
>>>
>>> Can you redo uploading new patch?
>>>
>>> Best regards.
>>>
>>> /*
>>>
>>>         Tomohito Nakayama
>>>         tomonaka@basil.ocn.ne.jp
>>>         tomohito@rose.zero.ad.jp
>>>         tmnk@apache.org
>>>
>>>         Naka
>>>         http://www5.ocn.ne.jp/~tomohito/TopPage.html
>>>
>>> */
>>> ----- Original Message ----- From: "David Van Couvering" 
>>> <Da...@Sun.COM>
>>> To: "Derby Development" <de...@db.apache.org>
>>> Sent: Wednesday, August 03, 2005 3:16 AM
>>> Subject: DERBY-412 (Connection.toString() formatting) patch uploaded
>>>
>>>
>>>> FYI, I attached another patch for DERBY-412, based on Tomohito's
>>>> comments.  Tomohito, would you be willing to review the changes?
>>>>
>>>> I don't think I can commit yet (I'm a little  unclear on my current
>>>> status), so perhaps you could also commit it if it looks good, Tomohito?
>>>>
>>>> Thanks,
>>>>
>>>> David
>>>>
>>>
>>>
>>> -------------------------------------------------------------------------------- 
>>>
>>>
>>>
>>> No virus found in this incoming message.
>>> Checked by AVG Anti-Virus.
>>> Version: 7.0.338 / Virus Database: 267.9.7/60 - Release Date: 2005/07/28
>>>
>>>
>>>
>>
> 
> 
> --------------------------------------------------------------------------------
> 
> 
>> Index: java/engine/org/apache/derby/impl/jdbc/EmbedConnection.java
>> ===================================================================
>> --- java/engine/org/apache/derby/impl/jdbc/EmbedConnection.java (revision 226839)
>> +++ java/engine/org/apache/derby/impl/jdbc/EmbedConnection.java (working copy)
>> @@ -145,7 +145,7 @@
>>  private int resultSetId;
>>     
>>     /** Cached string representation of the connection id */
>> -    private String idString;
>> +    private String connString;
>> 
>> 
>>  //////////////////////////////////////////////////////////
>> @@ -1919,7 +1919,8 @@
>> 
>>     /**
>>      * Get a String representation that uniquely identifies
>> -     * this connection
>> +     * this connection.  Include the same information that is
>> +     * printed in the log for various trace and error messages.
>>      *
>>      * In Derby the "physical" connection is a LanguageConnectionContext, 
>>      * or LCC.
>> @@ -1928,18 +1929,27 @@
>>      * Note that this is a big aid in debugging, because much of the
>>      * engine trace and log code prints the LCC id. 
>>      *
>> -     * @return a string representation of the unique id for the
>> -     *    underlying LanguageConnectionContext
>> +     * @return a string representation for this connection
>>      */
>>     public String toString()
>>     {
>> -        if ( idString == null )
>> +        if ( connString == null )
>>         {
>> -            idString = 
>> -              Integer.toString(getLanguageConnection().getInstanceNumber());
>> -        }
>> +            
>> +            LanguageConnectionContext lcc = getLanguageConnection();
>> +
>> +            connString = 
>> +              this.getClass().getName() + "@" + this.hashCode() + " " +
>> +                lcc.xidStr +                  
>> +                    lcc.getTransactionExecute().getTransactionIdString() + 
>> +                    "), " +
>> +                lcc.lccStr + 
>> +                    Integer.toString(lcc.getInstanceNumber()) + "), " +
>> +                lcc.dbnameStr + lcc.getDbname() + "), " +
>> +                lcc.drdaStr + lcc.getDrdaID() + ") ";
>> +        }       
>>         
>> -        return idString;
>> +        return connString;
>>     }
>> 
>> 
>> Index: java/engine/org/apache/derby/iapi/jdbc/BrokeredConnection.java
>> ===================================================================
>> --- java/engine/org/apache/derby/iapi/jdbc/BrokeredConnection.java (revision 226839)
>> +++ java/engine/org/apache/derby/iapi/jdbc/BrokeredConnection.java (working copy)
>> @@ -51,6 +51,7 @@
>> 
>>  protected final BrokeredConnectionControl control;
>>  private boolean isClosed;
>> +        private String connString;
>> 
>>  /**
>>  Maintain state as seen by this Connection handle, not the state
>> @@ -486,33 +487,30 @@
>>  }
>>             
>>     /**
>> -     * Get the string representation for the underlying physical
>> -     * connection.
>> -     *
>> -     *  When a physical connection is created, it is assigned a unique id 
>> -     *  that is unchanged for the lifetime of the connection. When an 
>> -     *  application calls Connection.toString(), it gets the string 
>> -     *  representation of the underlying physical connection, regardless 
>> -     *  of whether the application has a reference to the physical connection 
>> -     *  itself or a reference to a proxy connection (aka brokered connection) 
>> -     *  that wraps the physical connection.
>> -     *
>> -     *  Since this BrokeredConnection is a proxy connection, we return the
>> -     *  string value of its underlying physical connection
>> +     * Get the string representation for this connection.  Return
>> +     * the class name/hash code and various debug information.
>>      * 
>> -     * @return unique string representation of the underlying
>> -     *   physical connection
>> +     * @return unique string representation for this connection
>>      */
>>     public String toString() 
>>     {
>> -        try
>> +        if ( connString == null )
>>         {
>> -            return getRealConnection().toString();
>> +            String wrappedString;
>> +            try
>> +            {
>> +                wrappedString = getRealConnection().toString();
>> +            }
>> +            catch ( SQLException e )
>> +            {
>> +                wrappedString = "<none>";
>> +            }
>> +            
>> +            connString = this.getClass().getName() + "@" + this.hashCode() +
>> +                ", Wrapped Connection = " + wrappedString;
>>         }
>> -        catch ( SQLException e )
>> -        {
>> -            return "<no connection>";
>> -        }
>> +        
>> +        return connString;
>>     }
>> 
>>  protected int getJDBCLevel() { return 2;}
>> Index: java/engine/org/apache/derby/jdbc/EmbedPooledConnection.java
>> ===================================================================
>> --- java/engine/org/apache/derby/jdbc/EmbedPooledConnection.java (revision 226839)
>> +++ java/engine/org/apache/derby/jdbc/EmbedPooledConnection.java (working copy)
>> @@ -63,8 +63,8 @@
>>     /** The id for this connection.  */
>>     private int connectionId;
>>     
>> -    /** String representation of id */
>> -    private String idString;
>> +    /** the connection string */
>> +    private String connString;
>>     
>>  private Vector eventListener; // who wants to know I am closed or error
>> 
>> @@ -459,12 +459,18 @@
>>      */
>>     public String toString()
>>     {
>> -        if ( idString == null )
>> +        if ( connString == null )
>>         {
>> -            idString = Integer.toString(connectionId);
>> -        }
>> +            String physicalConnString = isActive ?
>> +                realConnection.toString() : "<none>";
>> +            
>> +            connString = 
>> +              this.getClass().getName() + "@" + this.hashCode() + " " +
>> +                "(ID = " + connectionId + "), " +
>> +                "Physical Connection = " + physicalConnString;
>> +        }    
>>         
>> -        return idString;
>> +        return connString;
>>     }
>> 
>> }
>> Index: java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/build.xml
>> ===================================================================
>> --- java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/build.xml (revision 226839)
>> +++ java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/build.xml (working copy)
>> @@ -119,8 +119,9 @@
>>       srcdir="${derby.testing.src.dir}"
>>       destdir="${out.dir}">
>>       <classpath>
>> +        <pathelement path="${java13compile.classpath}"/>
>> +        <pathelement location="${oro}"/>
>>         <pathelement location="${jta1_2}"/>
>> -        <pathelement path="${java13compile.classpath}"/>
>>       </classpath>
>>       <!--exclude name=""/-->
>>       <include name="${this.dir}/checkDataSource.java"/>
>> Index: java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/checkDataSource.java
>> ===================================================================
>> --- java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/checkDataSource.java (revision 226839)
>> +++ java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/checkDataSource.java (working copy)
>> @@ -24,6 +24,8 @@
>> import org.apache.derby.jdbc.EmbeddedSimpleDataSource;
>> import org.apache.derby.jdbc.EmbeddedConnectionPoolDataSource;
>> import org.apache.derby.jdbc.EmbeddedXADataSource;
>> +import org.apache.derby.iapi.jdbc.BrokeredConnection;
>> +import org.apache.derby.impl.jdbc.EmbedConnection;
>> 
>> import java.sql.Connection;
>> import java.sql.ResultSet;
>> @@ -49,13 +51,33 @@
>> import java.io.*;
>> import java.util.Hashtable;
>> import java.util.Iterator;
>> -
>> +import org.apache.oro.text.perl.Perl5Util;
>> import javax.naming.*;
>> import javax.naming.directory.*;
>> 
>> public class checkDataSource
>> { 
>> +    /**
>> +     * A hashtable of opened connections.  This is used when checking to
>> +     * make sure connection strings are unique; we need to make sure all
>> +     * the connections are closed when we are done, so they are stored
>> +     * in this hashtable
>> +     */
>>     protected static Hashtable conns = new Hashtable();
>> +    
>> +    /**
>> +     * This is a utility that knows how to do pattern matching.  Used
>> +     * in checking the format of a connection string
>> +     */
>> +    protected static Perl5Util p5u = new Perl5Util();
>> +    
>> +    /** The expected format of a connection string. In English:
>> +     * "<classname>@<hashcode> (XID=<xid>), (SESSION = <sessionid>),
>> +     *  (DATABASE=<dbname>), (DRDAID = <drdaid>)"
>> +     */
>> +    private static final String CONNSTRING_FORMAT = "\\S+@[0-9]+ " +
>> +        "\\(XID = .*\\), \\(SESSIONID = [0-9]+\\), " +
>> +        "\\(DATABASE = [A-Za-z]+\\), \\(DRDAID = .+\\)";
>> 
>>  public static void main(String[] args) throws Exception {
>> 
>> @@ -841,8 +863,9 @@
>>     /**
>>      * Make sure this connection's string is unique (DERBY-243)
>>      */
>> -    protected void checkToString(Connection conn) throws Exception
>> +    protected static void checkToString(Connection conn) throws Exception
>>     {
>> +        checkStringFormat(conn);
>>         String str = conn.toString();
>> 
>>         if ( conns.containsKey(str))
>> @@ -853,11 +876,89 @@
>>         conns.put(str, conn);
>>     }
>>     
>> +    /** 
>> +     * Check the format of a pooled connection
>> +     **/
>> +    protected static void checkStringFormat(PooledConnection pc) throws Exception
>> +    {
>> +        String prefix = checkStringPrefix(pc);
>> +        String connstr = pc.toString();
>> +        String format = "/" + prefix + 
>> +            " \\(ID = [0-9]+\\), Physical Connection = " +
>> +            "<none>|" + CONNSTRING_FORMAT + "/";
>> +        
>> +        if ( ! p5u.match(format, connstr) )
>> +        {
>> +            throw new Exception( "Connection.toString() (" + connstr + ") " +
>> +              "does not match expected format (" + format + ")");
>> +        }
>> +    }
>> +    
>>     /**
>> +     * Check the format for the toString() of a Connection that is an
>> +     * instance of BrokeredConnection.  This is different, as the Brokered
>> +     * Connection prints out its class name and then the toString() value
>> +     * of the underlying, wrapped connection.
>> +     */
>> +    protected static void checkStringFormat(BrokeredConnection conn) throws Exception
>> +    {
>> +        String connstr = conn.toString();
>> +        String prefix = checkStringPrefix(connstr);
>> +        
>> +        String format = "/" + prefix + ", Wrapped Connection = " + 
>> +            "<none>|" + CONNSTRING_FORMAT + "/";
>> +
>> +        if ( ! p5u.match(format, connstr) )
>> +        {
>> +            throw new Exception( "Connection.toString() (" + connstr + ") " +
>> +                "does not match expected format (" + format + ")");
>> +        }
>> +    }
>> +        
>> +     /**
>> +     * Check the format of the connection string.  This is the default test
>> +     * to run if this is not a BrokeredConnection class
>> +     */
>> +    protected static void checkStringFormat(Connection conn) throws Exception
>> +    {
>> +        String prefix = checkStringPrefix(conn);
>> +        
>> +        String str = conn.toString();        
>> +       
>> +        // See if the connection string matches the format pattern    
>> +        if ( ! p5u.match("/" + CONNSTRING_FORMAT + "/", str) )
>> +        {
>> +            throw new Exception( "Connection.toString() (" + str + ") " +
>> +                "does not match expected format (" + CONNSTRING_FORMAT + ")");
>> +        }
>> +    }
>> +    
>> +    /**
>> +     * Make sure the connection string starts with the right prefix, which
>> +     * is the classname@hashcode.
>> +     *
>> +     * @return the expected prefix string, this is used in further string
>> +     *   format checking
>> +     */
>> +    protected static String checkStringPrefix(Object conn) throws Exception
>> +    {
>> +        String connstr = conn.toString();
>> +        String prefix = conn.getClass().getName() + "@" + conn.hashCode();
>> +        if ( ! connstr.startsWith(prefix) )
>> +        {
>> +            throw new Exception("Connection class and hash code for " +
>> +                "connection string (" + connstr + ") does not match expected " +
>> +                "(" + prefix + ")");
>> +        }  
>> +        
>> +        return prefix;
>> +    }
>> +    
>> +    /**
>>      * Clear out and close connections in the connections
>>      * hashtable. 
>>      */
>> -    protected void clearConnections() throws SQLException
>> +    protected static void clearConnections() throws SQLException
>>     {
>>         java.util.Iterator it = conns.values().iterator();
>>         while ( it.hasNext() )
>> @@ -872,7 +973,7 @@
>>      * Get connections  using ij.startJBMS() and make sure
>>      * they're unique
>>      */
>> -    protected void checkJBMSToString() throws Exception
>> +    protected static void checkJBMSToString() throws Exception
>>     {
>>         clearConnections();
>>         // Open ten connections rather than just two to
>> @@ -893,7 +994,7 @@
>>      * Check uniqueness of connection strings coming from a
>>      * DataSouce
>>      */
>> -    protected void checkToString(DataSource ds) throws Exception
>> +    protected static void checkToString(DataSource ds) throws Exception
>>     {
>>         clearConnections();
>>         
>> @@ -912,7 +1013,7 @@
>>      * We want to check the PooledConnection as well as the
>>      * underlying physical connection. 
>>      */
>> -    protected void checkToString(ConnectionPoolDataSource pds)
>> +    protected static void checkToString(ConnectionPoolDataSource pds)
>>         throws Exception
>>     {
>>         int numConnections = 10;
>> @@ -923,6 +1024,7 @@
>>         for ( int i = 0 ; i < numConnections ; i++ )
>>         {
>>             PooledConnection pc = pds.getPooledConnection();
>> +            checkStringFormat(pc);
>>             String str = pc.toString();
>>             if ( pooledConns.get(str) != null )
>>             {
>> @@ -952,26 +1054,12 @@
>>             pc.close();
>>         }
>>         pooledConns.clear();
>> -        
>> -        // Now check that two connections from the same 
>> -        // PooledConnection have the same string value
>> -        PooledConnection pc = pds.getPooledConnection();
>> -        Connection conn = pc.getConnection();
>> -        String str = conn.toString();
>> -        conn = pc.getConnection();
>> -        if ( ! conn.toString().equals(str) )
>> -        {
>> -            throw new Exception("Two connections from the " +
>> -              "same pooled connection have different string " +
>> -              "values: " + str + ", " + conn.toString());
>> -        }
>> -        pc.close();
>>     }
>>     
>>     /**
>>      * Check uniqueness of strings for an XA data source
>>      */
>> -    protected void checkToString(XADataSource xds) throws Exception
>> +    protected static void checkToString(XADataSource xds) throws Exception
>>     {
>>         int numConnections = 10;
>>         
>> @@ -981,6 +1069,7 @@
>>         for ( int i = 0 ; i < numConnections ; i++ )
>>         {
>>             XAConnection xc = xds.getXAConnection();
>> +            checkStringFormat(xc);
>>             String str = xc.toString();
>>             if ( xaConns.get(str) != null )
>>             {
>> @@ -1010,20 +1099,6 @@
>>             xc.close();
>>         }
>>         xaConns.clear();
>> -        
>> -        // Now check that two connections from the same 
>> -        // XAConnection have the same string value
>> -        XAConnection xc = xds.getXAConnection();
>> -        Connection conn = xc.getConnection();
>> -        String str = conn.toString();
>> -        conn = xc.getConnection();
>> -        if ( ! conn.toString().equals(str) )
>> -        {
>> -            throw new Exception("Two connections from the " +
>> -              "same pooled connection have different string " +
>> -              "values: " + str + ", " + conn.toString());
>> -        }
>> -        xc.close();
>>     }
>>     
>>  protected static void checkConnectionPreCloseS(String dsName, Connection conn) throws SQLException {
>>
> 
> 
> --------------------------------------------------------------------------------
> 
> 
> No virus found in this incoming message.
> Checked by AVG Anti-Virus.
> Version: 7.0.338 / Virus Database: 267.9.9/62 - Release Date: 2005/08/02
> 
> 
> 
> -- 
> No virus found in this outgoing message.
> Checked by AVG Anti-Virus.
> Version: 7.0.338 / Virus Database: 267.10.0/63 - Release Date: 2005/08/03
> 
> 
> 
> 
> -- 
> No virus found in this incoming message.
> Checked by AVG Anti-Virus.
> Version: 7.0.338 / Virus Database: 267.10.0/63 - Release Date: 2005/08/03
> 
>


-- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.338 / Virus Database: 267.10.1/64 - Release Date: 2005/08/04


Re: Failed to downloaded , JIRA problem ? (Re: DERBY-412 (Connection.toString() formatting) patch uploaded)

Posted by TomohitoNakayama <to...@basil.ocn.ne.jp>.
Hello.

I recevied it.
//Oh , you removed local variables ....  :o

Well, I will start to run test at my site.

Please wait for a while.

Best regards.

/*

         Tomohito Nakayama
         tomonaka@basil.ocn.ne.jp
         tomohito@rose.zero.ad.jp
         tmnk@apache.org

         Naka
         http://www5.ocn.ne.jp/~tomohito/TopPage.html

*/
----- Original Message ----- 
From: "David Van Couvering" <Da...@Sun.COM>
To: "Derby Development" <de...@db.apache.org>
Sent: Thursday, August 04, 2005 1:10 AM
Subject: Re: Failed to downloaded , JIRA problem ? (Re: DERBY-412 (Connection.toString() formatting) patch uploaded)


> Hi, Tomohito, here is the patch, I'll also try to put it on JIRA again
> 
> TomohitoNakayama wrote:
> 
>> Hello.
>>
>> I try to get 
>> http://issues.apache.org/jira/secure/attachment/12311443/DERBY-412.diff 
>> and failed.
>> Jira seems to have some problem....
>>
>> Next is log of downloading ....
>>
>> Request:
>> GET 
>> http://issues.apache.org/jira/secure/attachment/12311443/DERBY-412.diff 
>> HTTP/1.0
>> Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, 
>> application/x-shockwave-flash, application/vnd.ms-powerpoint, 
>> application/vnd.ms-excel, application/msword, */*
>> Referer: http://issues.apache.org/jira/browse/DERBY-412
>> Accept-Language: ja
>> Proxy-Connection: Keep-Alive
>> User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; 
>> i-NavFourF; .NET CLR 2.0.40607)
>> Host: issues.apache.org
>> Cookie: seraph.os.cookie=GlMlJlOlPmMiPiKiOiIiRiMi; 
>> JSESSIONID=2E4F5F17ADA0CB9EEF8783685971D156
>>
>>
>> Response:
>> HTTP/1.1 404 Could not find specified attachment: null
>> Date: Wed, 03 Aug 2005 10:08:34 GMT
>> Server: Apache-Coyote/1.1
>> Content-Type: text/html;charset=utf-8
>> Content-Length: 1075
>> Proxy-Connection: close
>> Connection: close
>>
>> <html><head><title>Apache Tomcat/5.0.30 - Error 
>> report</title><style><!--H1 
>> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} 
>> H2 
>> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} 
>> H3 
>> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} 
>> BODY 
>> {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} 
>> B 
>> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} 
>> P 
>> {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A 
>> {color : black;}A.name {color : black;}HR {color : 
>> #525D76;}--></style> </head><body><h1>HTTP Status 404 - Could not find 
>> specified attachment: null</h1><HR size="1" 
>> noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b> 
>> <u>Could not find specified attachment: 
>> null</u></p><p><b>description</b> <u>The requested resource (Could not 
>> find specified attachment: null) is not available.</u></p><HR size="1" 
>> noshade="noshade"><h3>Apache Tomcat/5.0.30</h3></body></html>
>>
>>
>> Can you redo uploading new patch?
>>
>> Best regards.
>>
>> /*
>>
>>         Tomohito Nakayama
>>         tomonaka@basil.ocn.ne.jp
>>         tomohito@rose.zero.ad.jp
>>         tmnk@apache.org
>>
>>         Naka
>>         http://www5.ocn.ne.jp/~tomohito/TopPage.html
>>
>> */
>> ----- Original Message ----- From: "David Van Couvering" 
>> <Da...@Sun.COM>
>> To: "Derby Development" <de...@db.apache.org>
>> Sent: Wednesday, August 03, 2005 3:16 AM
>> Subject: DERBY-412 (Connection.toString() formatting) patch uploaded
>>
>>
>>> FYI, I attached another patch for DERBY-412, based on Tomohito's
>>> comments.  Tomohito, would you be willing to review the changes?
>>>
>>> I don't think I can commit yet (I'm a little  unclear on my current
>>> status), so perhaps you could also commit it if it looks good, Tomohito?
>>>
>>> Thanks,
>>>
>>> David
>>>
>>
>>
>> -------------------------------------------------------------------------------- 
>>
>>
>>
>> No virus found in this incoming message.
>> Checked by AVG Anti-Virus.
>> Version: 7.0.338 / Virus Database: 267.9.7/60 - Release Date: 2005/07/28
>>
>>
>>
>


--------------------------------------------------------------------------------


> Index: java/engine/org/apache/derby/impl/jdbc/EmbedConnection.java
> ===================================================================
> --- java/engine/org/apache/derby/impl/jdbc/EmbedConnection.java (revision 226839)
> +++ java/engine/org/apache/derby/impl/jdbc/EmbedConnection.java (working copy)
> @@ -145,7 +145,7 @@
>  private int resultSetId;
>     
>     /** Cached string representation of the connection id */
> -    private String idString;
> +    private String connString;
> 
> 
>  //////////////////////////////////////////////////////////
> @@ -1919,7 +1919,8 @@
> 
>     /**
>      * Get a String representation that uniquely identifies
> -     * this connection
> +     * this connection.  Include the same information that is
> +     * printed in the log for various trace and error messages.
>      *
>      * In Derby the "physical" connection is a LanguageConnectionContext, 
>      * or LCC.
> @@ -1928,18 +1929,27 @@
>      * Note that this is a big aid in debugging, because much of the
>      * engine trace and log code prints the LCC id. 
>      *
> -     * @return a string representation of the unique id for the
> -     *    underlying LanguageConnectionContext
> +     * @return a string representation for this connection
>      */
>     public String toString()
>     {
> -        if ( idString == null )
> +        if ( connString == null )
>         {
> -            idString = 
> -              Integer.toString(getLanguageConnection().getInstanceNumber());
> -        }
> +            
> +            LanguageConnectionContext lcc = getLanguageConnection();
> +
> +            connString = 
> +              this.getClass().getName() + "@" + this.hashCode() + " " +
> +                lcc.xidStr +                  
> +                    lcc.getTransactionExecute().getTransactionIdString() + 
> +                    "), " +
> +                lcc.lccStr + 
> +                    Integer.toString(lcc.getInstanceNumber()) + "), " +
> +                lcc.dbnameStr + lcc.getDbname() + "), " +
> +                lcc.drdaStr + lcc.getDrdaID() + ") ";
> +        }       
>         
> -        return idString;
> +        return connString;
>     }
> 
> 
> Index: java/engine/org/apache/derby/iapi/jdbc/BrokeredConnection.java
> ===================================================================
> --- java/engine/org/apache/derby/iapi/jdbc/BrokeredConnection.java (revision 226839)
> +++ java/engine/org/apache/derby/iapi/jdbc/BrokeredConnection.java (working copy)
> @@ -51,6 +51,7 @@
> 
>  protected final BrokeredConnectionControl control;
>  private boolean isClosed;
> +        private String connString;
> 
>  /**
>  Maintain state as seen by this Connection handle, not the state
> @@ -486,33 +487,30 @@
>  }
>             
>     /**
> -     * Get the string representation for the underlying physical
> -     * connection.
> -     *
> -     *  When a physical connection is created, it is assigned a unique id 
> -     *  that is unchanged for the lifetime of the connection. When an 
> -     *  application calls Connection.toString(), it gets the string 
> -     *  representation of the underlying physical connection, regardless 
> -     *  of whether the application has a reference to the physical connection 
> -     *  itself or a reference to a proxy connection (aka brokered connection) 
> -     *  that wraps the physical connection.
> -     *
> -     *  Since this BrokeredConnection is a proxy connection, we return the
> -     *  string value of its underlying physical connection
> +     * Get the string representation for this connection.  Return
> +     * the class name/hash code and various debug information.
>      * 
> -     * @return unique string representation of the underlying
> -     *   physical connection
> +     * @return unique string representation for this connection
>      */
>     public String toString() 
>     {
> -        try
> +        if ( connString == null )
>         {
> -            return getRealConnection().toString();
> +            String wrappedString;
> +            try
> +            {
> +                wrappedString = getRealConnection().toString();
> +            }
> +            catch ( SQLException e )
> +            {
> +                wrappedString = "<none>";
> +            }
> +            
> +            connString = this.getClass().getName() + "@" + this.hashCode() +
> +                ", Wrapped Connection = " + wrappedString;
>         }
> -        catch ( SQLException e )
> -        {
> -            return "<no connection>";
> -        }
> +        
> +        return connString;
>     }
> 
>  protected int getJDBCLevel() { return 2;}
> Index: java/engine/org/apache/derby/jdbc/EmbedPooledConnection.java
> ===================================================================
> --- java/engine/org/apache/derby/jdbc/EmbedPooledConnection.java (revision 226839)
> +++ java/engine/org/apache/derby/jdbc/EmbedPooledConnection.java (working copy)
> @@ -63,8 +63,8 @@
>     /** The id for this connection.  */
>     private int connectionId;
>     
> -    /** String representation of id */
> -    private String idString;
> +    /** the connection string */
> +    private String connString;
>     
>  private Vector eventListener; // who wants to know I am closed or error
> 
> @@ -459,12 +459,18 @@
>      */
>     public String toString()
>     {
> -        if ( idString == null )
> +        if ( connString == null )
>         {
> -            idString = Integer.toString(connectionId);
> -        }
> +            String physicalConnString = isActive ?
> +                realConnection.toString() : "<none>";
> +            
> +            connString = 
> +              this.getClass().getName() + "@" + this.hashCode() + " " +
> +                "(ID = " + connectionId + "), " +
> +                "Physical Connection = " + physicalConnString;
> +        }    
>         
> -        return idString;
> +        return connString;
>     }
> 
> }
> Index: java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/build.xml
> ===================================================================
> --- java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/build.xml (revision 226839)
> +++ java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/build.xml (working copy)
> @@ -119,8 +119,9 @@
>       srcdir="${derby.testing.src.dir}"
>       destdir="${out.dir}">
>       <classpath>
> +        <pathelement path="${java13compile.classpath}"/>
> +        <pathelement location="${oro}"/>
>         <pathelement location="${jta1_2}"/>
> -        <pathelement path="${java13compile.classpath}"/>
>       </classpath>
>       <!--exclude name=""/-->
>       <include name="${this.dir}/checkDataSource.java"/>
> Index: java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/checkDataSource.java
> ===================================================================
> --- java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/checkDataSource.java (revision 226839)
> +++ java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/checkDataSource.java (working copy)
> @@ -24,6 +24,8 @@
> import org.apache.derby.jdbc.EmbeddedSimpleDataSource;
> import org.apache.derby.jdbc.EmbeddedConnectionPoolDataSource;
> import org.apache.derby.jdbc.EmbeddedXADataSource;
> +import org.apache.derby.iapi.jdbc.BrokeredConnection;
> +import org.apache.derby.impl.jdbc.EmbedConnection;
> 
> import java.sql.Connection;
> import java.sql.ResultSet;
> @@ -49,13 +51,33 @@
> import java.io.*;
> import java.util.Hashtable;
> import java.util.Iterator;
> -
> +import org.apache.oro.text.perl.Perl5Util;
> import javax.naming.*;
> import javax.naming.directory.*;
> 
> public class checkDataSource
> { 
> +    /**
> +     * A hashtable of opened connections.  This is used when checking to
> +     * make sure connection strings are unique; we need to make sure all
> +     * the connections are closed when we are done, so they are stored
> +     * in this hashtable
> +     */
>     protected static Hashtable conns = new Hashtable();
> +    
> +    /**
> +     * This is a utility that knows how to do pattern matching.  Used
> +     * in checking the format of a connection string
> +     */
> +    protected static Perl5Util p5u = new Perl5Util();
> +    
> +    /** The expected format of a connection string. In English:
> +     * "<classname>@<hashcode> (XID=<xid>), (SESSION = <sessionid>),
> +     *  (DATABASE=<dbname>), (DRDAID = <drdaid>)"
> +     */
> +    private static final String CONNSTRING_FORMAT = "\\S+@[0-9]+ " +
> +        "\\(XID = .*\\), \\(SESSIONID = [0-9]+\\), " +
> +        "\\(DATABASE = [A-Za-z]+\\), \\(DRDAID = .+\\)";
> 
>  public static void main(String[] args) throws Exception {
> 
> @@ -841,8 +863,9 @@
>     /**
>      * Make sure this connection's string is unique (DERBY-243)
>      */
> -    protected void checkToString(Connection conn) throws Exception
> +    protected static void checkToString(Connection conn) throws Exception
>     {
> +        checkStringFormat(conn);
>         String str = conn.toString();
> 
>         if ( conns.containsKey(str))
> @@ -853,11 +876,89 @@
>         conns.put(str, conn);
>     }
>     
> +    /** 
> +     * Check the format of a pooled connection
> +     **/
> +    protected static void checkStringFormat(PooledConnection pc) throws Exception
> +    {
> +        String prefix = checkStringPrefix(pc);
> +        String connstr = pc.toString();
> +        String format = "/" + prefix + 
> +            " \\(ID = [0-9]+\\), Physical Connection = " +
> +            "<none>|" + CONNSTRING_FORMAT + "/";
> +        
> +        if ( ! p5u.match(format, connstr) )
> +        {
> +            throw new Exception( "Connection.toString() (" + connstr + ") " +
> +              "does not match expected format (" + format + ")");
> +        }
> +    }
> +    
>     /**
> +     * Check the format for the toString() of a Connection that is an
> +     * instance of BrokeredConnection.  This is different, as the Brokered
> +     * Connection prints out its class name and then the toString() value
> +     * of the underlying, wrapped connection.
> +     */
> +    protected static void checkStringFormat(BrokeredConnection conn) throws Exception
> +    {
> +        String connstr = conn.toString();
> +        String prefix = checkStringPrefix(connstr);
> +        
> +        String format = "/" + prefix + ", Wrapped Connection = " + 
> +            "<none>|" + CONNSTRING_FORMAT + "/";
> +
> +        if ( ! p5u.match(format, connstr) )
> +        {
> +            throw new Exception( "Connection.toString() (" + connstr + ") " +
> +                "does not match expected format (" + format + ")");
> +        }
> +    }
> +        
> +     /**
> +     * Check the format of the connection string.  This is the default test
> +     * to run if this is not a BrokeredConnection class
> +     */
> +    protected static void checkStringFormat(Connection conn) throws Exception
> +    {
> +        String prefix = checkStringPrefix(conn);
> +        
> +        String str = conn.toString();        
> +       
> +        // See if the connection string matches the format pattern    
> +        if ( ! p5u.match("/" + CONNSTRING_FORMAT + "/", str) )
> +        {
> +            throw new Exception( "Connection.toString() (" + str + ") " +
> +                "does not match expected format (" + CONNSTRING_FORMAT + ")");
> +        }
> +    }
> +    
> +    /**
> +     * Make sure the connection string starts with the right prefix, which
> +     * is the classname@hashcode.
> +     *
> +     * @return the expected prefix string, this is used in further string
> +     *   format checking
> +     */
> +    protected static String checkStringPrefix(Object conn) throws Exception
> +    {
> +        String connstr = conn.toString();
> +        String prefix = conn.getClass().getName() + "@" + conn.hashCode();
> +        if ( ! connstr.startsWith(prefix) )
> +        {
> +            throw new Exception("Connection class and hash code for " +
> +                "connection string (" + connstr + ") does not match expected " +
> +                "(" + prefix + ")");
> +        }  
> +        
> +        return prefix;
> +    }
> +    
> +    /**
>      * Clear out and close connections in the connections
>      * hashtable. 
>      */
> -    protected void clearConnections() throws SQLException
> +    protected static void clearConnections() throws SQLException
>     {
>         java.util.Iterator it = conns.values().iterator();
>         while ( it.hasNext() )
> @@ -872,7 +973,7 @@
>      * Get connections  using ij.startJBMS() and make sure
>      * they're unique
>      */
> -    protected void checkJBMSToString() throws Exception
> +    protected static void checkJBMSToString() throws Exception
>     {
>         clearConnections();
>         // Open ten connections rather than just two to
> @@ -893,7 +994,7 @@
>      * Check uniqueness of connection strings coming from a
>      * DataSouce
>      */
> -    protected void checkToString(DataSource ds) throws Exception
> +    protected static void checkToString(DataSource ds) throws Exception
>     {
>         clearConnections();
>         
> @@ -912,7 +1013,7 @@
>      * We want to check the PooledConnection as well as the
>      * underlying physical connection. 
>      */
> -    protected void checkToString(ConnectionPoolDataSource pds)
> +    protected static void checkToString(ConnectionPoolDataSource pds)
>         throws Exception
>     {
>         int numConnections = 10;
> @@ -923,6 +1024,7 @@
>         for ( int i = 0 ; i < numConnections ; i++ )
>         {
>             PooledConnection pc = pds.getPooledConnection();
> +            checkStringFormat(pc);
>             String str = pc.toString();
>             if ( pooledConns.get(str) != null )
>             {
> @@ -952,26 +1054,12 @@
>             pc.close();
>         }
>         pooledConns.clear();
> -        
> -        // Now check that two connections from the same 
> -        // PooledConnection have the same string value
> -        PooledConnection pc = pds.getPooledConnection();
> -        Connection conn = pc.getConnection();
> -        String str = conn.toString();
> -        conn = pc.getConnection();
> -        if ( ! conn.toString().equals(str) )
> -        {
> -            throw new Exception("Two connections from the " +
> -              "same pooled connection have different string " +
> -              "values: " + str + ", " + conn.toString());
> -        }
> -        pc.close();
>     }
>     
>     /**
>      * Check uniqueness of strings for an XA data source
>      */
> -    protected void checkToString(XADataSource xds) throws Exception
> +    protected static void checkToString(XADataSource xds) throws Exception
>     {
>         int numConnections = 10;
>         
> @@ -981,6 +1069,7 @@
>         for ( int i = 0 ; i < numConnections ; i++ )
>         {
>             XAConnection xc = xds.getXAConnection();
> +            checkStringFormat(xc);
>             String str = xc.toString();
>             if ( xaConns.get(str) != null )
>             {
> @@ -1010,20 +1099,6 @@
>             xc.close();
>         }
>         xaConns.clear();
> -        
> -        // Now check that two connections from the same 
> -        // XAConnection have the same string value
> -        XAConnection xc = xds.getXAConnection();
> -        Connection conn = xc.getConnection();
> -        String str = conn.toString();
> -        conn = xc.getConnection();
> -        if ( ! conn.toString().equals(str) )
> -        {
> -            throw new Exception("Two connections from the " +
> -              "same pooled connection have different string " +
> -              "values: " + str + ", " + conn.toString());
> -        }
> -        xc.close();
>     }
>     
>  protected static void checkConnectionPreCloseS(String dsName, Connection conn) throws SQLException {
>


--------------------------------------------------------------------------------


No virus found in this incoming message.
Checked by AVG Anti-Virus.
Version: 7.0.338 / Virus Database: 267.9.9/62 - Release Date: 2005/08/02



-- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.338 / Virus Database: 267.10.0/63 - Release Date: 2005/08/03


Re: Failed to downloaded , JIRA problem ? (Re: DERBY-412 (Connection.toString() formatting) patch uploaded)

Posted by David Van Couvering <Da...@Sun.COM>.
Hi, Tomohito, here is the patch, I'll also try to put it on JIRA again

TomohitoNakayama wrote:

> Hello.
>
> I try to get 
> http://issues.apache.org/jira/secure/attachment/12311443/DERBY-412.diff 
> and failed.
> Jira seems to have some problem....
>
> Next is log of downloading ....
>
> Request:
> GET 
> http://issues.apache.org/jira/secure/attachment/12311443/DERBY-412.diff 
> HTTP/1.0
> Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, 
> application/x-shockwave-flash, application/vnd.ms-powerpoint, 
> application/vnd.ms-excel, application/msword, */*
> Referer: http://issues.apache.org/jira/browse/DERBY-412
> Accept-Language: ja
> Proxy-Connection: Keep-Alive
> User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; 
> i-NavFourF; .NET CLR 2.0.40607)
> Host: issues.apache.org
> Cookie: seraph.os.cookie=GlMlJlOlPmMiPiKiOiIiRiMi; 
> JSESSIONID=2E4F5F17ADA0CB9EEF8783685971D156
>
>
> Response:
> HTTP/1.1 404 Could not find specified attachment: null
> Date: Wed, 03 Aug 2005 10:08:34 GMT
> Server: Apache-Coyote/1.1
> Content-Type: text/html;charset=utf-8
> Content-Length: 1075
> Proxy-Connection: close
> Connection: close
>
> <html><head><title>Apache Tomcat/5.0.30 - Error 
> report</title><style><!--H1 
> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} 
> H2 
> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} 
> H3 
> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} 
> BODY 
> {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} 
> B 
> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} 
> P 
> {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A 
> {color : black;}A.name {color : black;}HR {color : 
> #525D76;}--></style> </head><body><h1>HTTP Status 404 - Could not find 
> specified attachment: null</h1><HR size="1" 
> noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b> 
> <u>Could not find specified attachment: 
> null</u></p><p><b>description</b> <u>The requested resource (Could not 
> find specified attachment: null) is not available.</u></p><HR size="1" 
> noshade="noshade"><h3>Apache Tomcat/5.0.30</h3></body></html>
>
>
> Can you redo uploading new patch?
>
> Best regards.
>
> /*
>
>         Tomohito Nakayama
>         tomonaka@basil.ocn.ne.jp
>         tomohito@rose.zero.ad.jp
>         tmnk@apache.org
>
>         Naka
>         http://www5.ocn.ne.jp/~tomohito/TopPage.html
>
> */
> ----- Original Message ----- From: "David Van Couvering" 
> <Da...@Sun.COM>
> To: "Derby Development" <de...@db.apache.org>
> Sent: Wednesday, August 03, 2005 3:16 AM
> Subject: DERBY-412 (Connection.toString() formatting) patch uploaded
>
>
>> FYI, I attached another patch for DERBY-412, based on Tomohito's
>> comments.  Tomohito, would you be willing to review the changes?
>>
>> I don't think I can commit yet (I'm a little  unclear on my current
>> status), so perhaps you could also commit it if it looks good, Tomohito?
>>
>> Thanks,
>>
>> David
>>
>
>
> -------------------------------------------------------------------------------- 
>
>
>
> No virus found in this incoming message.
> Checked by AVG Anti-Virus.
> Version: 7.0.338 / Virus Database: 267.9.7/60 - Release Date: 2005/07/28
>
>
>

Failed to downloaded , JIRA problem ? (Re: DERBY-412 (Connection.toString() formatting) patch uploaded)

Posted by TomohitoNakayama <to...@basil.ocn.ne.jp>.
Hello.

I try to get http://issues.apache.org/jira/secure/attachment/12311443/DERBY-412.diff and failed.
Jira seems to have some problem....

Next is log of downloading ....

Request:
GET http://issues.apache.org/jira/secure/attachment/12311443/DERBY-412.diff HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, 
application/vnd.ms-excel, application/msword, */*
Referer: http://issues.apache.org/jira/browse/DERBY-412
Accept-Language: ja
Proxy-Connection: Keep-Alive
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; i-NavFourF; .NET CLR 2.0.40607)
Host: issues.apache.org
Cookie: seraph.os.cookie=GlMlJlOlPmMiPiKiOiIiRiMi; JSESSIONID=2E4F5F17ADA0CB9EEF8783685971D156


Response:
HTTP/1.1 404 Could not find specified attachment: null
Date: Wed, 03 Aug 2005 10:08:34 GMT
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=utf-8
Content-Length: 1075
Proxy-Connection: close
Connection: close

<html><head><title>Apache Tomcat/5.0.30 - Error report</title><style><!--H1 
{font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 
{font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 
{font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY 
{font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B 
{font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P 
{font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color 
: #525D76;}--></style> </head><body><h1>HTTP Status 404 - Could not find specified attachment: null</h1><HR size="1" 
noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b> <u>Could not find specified attachment: 
null</u></p><p><b>description</b> <u>The requested resource (Could not find specified attachment: null) is not available.</u></p><HR 
size="1" noshade="noshade"><h3>Apache Tomcat/5.0.30</h3></body></html>


Can you redo uploading new patch?

Best regards.

/*

         Tomohito Nakayama
         tomonaka@basil.ocn.ne.jp
         tomohito@rose.zero.ad.jp
         tmnk@apache.org

         Naka
         http://www5.ocn.ne.jp/~tomohito/TopPage.html

*/
----- Original Message ----- 
From: "David Van Couvering" <Da...@Sun.COM>
To: "Derby Development" <de...@db.apache.org>
Sent: Wednesday, August 03, 2005 3:16 AM
Subject: DERBY-412 (Connection.toString() formatting) patch uploaded


> FYI, I attached another patch for DERBY-412, based on Tomohito's
> comments.  Tomohito, would you be willing to review the changes?
>
> I don't think I can commit yet (I'm a little  unclear on my current
> status), so perhaps you could also commit it if it looks good, Tomohito?
>
> Thanks,
>
> David
>


--------------------------------------------------------------------------------


No virus found in this incoming message.
Checked by AVG Anti-Virus.
Version: 7.0.338 / Virus Database: 267.9.7/60 - Release Date: 2005/07/28



-- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.338 / Virus Database: 267.9.9/62 - Release Date: 2005/08/02