db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tiago R. Espinha (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-728) Unable to create databases whose name containg Chinese characters through the client driver
Date Mon, 14 Jun 2010 22:52:18 GMT

     [ https://issues.apache.org/jira/browse/DERBY-728?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Tiago R. Espinha updated DERBY-728:
-----------------------------------

    Attachment: DERBY-728_p2.diff

Here is the list of changes checked in by patch #2:

- Utf8CcsidManager.java is rolled in for the server - This CCSID manager is not yet really
used in practice. Instances are created but no real live code refers to it yet. I'm still
unsure about this implementation and this code might change, but I needed to have a draft
in place to proceed further.

- Both DDMWriter and DDMReader now have three CCSID manager attributes. These two classes
have one instance of each of the available managers (UTF-8 and EBCDIC) and a reference to
the current enabled one (already part of the existing implementation).

These two classes also no longer receive a CCSID manager in their constructor. Instead, they
default to EBCDIC and whenever required we can setUtf8Ccsid() or revert to EBCDIC by doing
setEbcdicCcsid().

- The DRDAConnThread.java class has also lost its own ccsidManager and will be using the one
from its instance of DDMWriter. This class now initializes its DRDAStrings within the initialize()
method, as it is only then that we have a DDMWriter available.

- Finally, the tests ProtocolTest and TestProto have also been changed to accommodate the
constructor changes in DDMWriter and DDMReader.

--

I will be running regressions tonight. Provided that all goes well and there are no objections
to this patch, it is ready for commit.

> Unable to create databases whose name containg Chinese characters through the client
driver
> -------------------------------------------------------------------------------------------
>
>                 Key: DERBY-728
>                 URL: https://issues.apache.org/jira/browse/DERBY-728
>             Project: Derby
>          Issue Type: Bug
>          Components: Network Client
>    Affects Versions: 10.1.2.1
>         Environment: Debian unstable, LInux 2.6.14.2, libc 2.3.5-6
>            Reporter: Andrei Badea
>            Assignee: Tiago R. Espinha
>         Attachments: ACR7007.pdf, BigTableName.java, derby-728-startingpoint.diff, DERBY-728_p1.diff,
DERBY-728_p2.diff, derby-728_proto_diff.txt
>
>
> Trying to create a database with the following URL (note the Chinese character in the
database name):
> jdbc:derby://localhost:1527/\u4e10;create=true
> throws the following exception:
> -----%<-----
> Exception in thread "main" org.apache.derby.client.am.SqlException: Unicode string can't
convert to Ebcdic string
>         at org.apache.derby.client.net.EbcdicCcsidManager.convertFromUCS2(Unknown Source)
>         at org.apache.derby.client.net.Request.writeScalarPaddedString(Unknown Source)
>         at org.apache.derby.client.net.NetConnectionRequest.buildRDBNAM(Unknown Source)
>         at org.apache.derby.client.net.NetConnectionRequest.buildACCSEC(Unknown Source)
>         at org.apache.derby.client.net.NetConnectionRequest.writeAccessSecurity(Unknown
Source)
>         at org.apache.derby.client.net.NetConnection.writeServerAttributesAndKeyExchange(Unknown
Source)
>         at org.apache.derby.client.net.NetConnection.flowServerAttributesAndKeyExchange(Unknown
Source)
>         at org.apache.derby.client.net.NetConnection.flowUSRIDONLconnect(Unknown Source)
>         at org.apache.derby.client.net.NetConnection.flowConnect(Unknown Source)
>         at org.apache.derby.client.net.NetConnection.<init>(Unknown Source)
>         at org.apache.derby.jdbc.ClientDriver.connect(Unknown Source)
>         at java.sql.DriverManager.getConnection(DriverManager.java:525)
>         at java.sql.DriverManager.getConnection(DriverManager.java:193)
>         at jdbctest.Main.main(Main.java:33)
> -----%<-----
> It's possible, however, to create databases using the embedded driver, using an URL like:
> jdbc:derby:\u4e10;create=true
> Tested with both 10.1.1.0 and 10.1.2.1 with the same result.
> Complete code to reproduce the bug:
> -----%<-----
> public static void main(String[] args) throws Exception {
>     Class.forName("org.apache.derby.jdbc.ClientDriver");
>     Connection conn = DriverManager.getConnection("jdbc:derby://localhost:1527/\u4e10;create=true");
> }
> -----%<-----

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message