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

Mamta A. Satoor updated DERBY-4805:
-----------------------------------

    Attachment: DERBY4805_patch2_stat.txt
                DERBY4805_patch2_diff.txt

In the attached DERBY4805_patch2_diff.txt patch, I have made changes so that 
the new RDBNAM length limit is 1024 and have also changed where this length is 
taken into account for calculation for max ddm length for PKGNAMCSN. In 
addition, I have changed the protocol test case to try 1025 bytes as the 
boundary case which should result in a failure.

But, there is something wrong somewhere because even a simple ij connection 
against network server results in null pointer exception where I am trying to 
determine on the client side if we are dealing with a network server that can 
handle the new 1024 length limit. I am pretty certain this piece of code worked 
with the earlier patch where I was experimenting with a very high length for 
RDBNAM so I am not sure why I am getting null pointer exception now. May be 
some code changes went in since my last patch on Dec 30th. I will debug this 
more but was wondering if anyone else might have any ideas why there is NPE now.
$ java  -Dij.exceptionTrace=true org.apache.derby.tools.ij
ij version 10.11
ij> ERROR XJ001: Java exception: 'null: java.lang.NullPointerException'.
java.sql.SQLException: Java exception: 'null: java.lang.NullPointerException'.
        at 
org.apache.derby.client.am.SQLExceptionFactory.getSQLException(SQLExc 
eptionFactory.java:112)
        at 
org.apache.derby.client.am.SqlException.getSQLException(SqlException. java:321)
        at org.apache.derby.jdbc.ClientDriver.connect(ClientDriver.java:176)
        at java.sql.DriverManager.getConnection(DriverManager.java:419)
        at java.sql.DriverManager.getConnection(DriverManager.java:391)
        at org.apache.derby.impl.tools.ij.ij.dynamicConnection(ij.java:1483)
        at org.apache.derby.impl.tools.ij.ij.ConnectStatement(ij.java:1313)
        at org.apache.derby.impl.tools.ij.ij.ijStatement(ij.java:1101)
        at 
org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(utilMain.java:3 47)
        at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:245)
        at org.apache.derby.impl.tools.ij.Main.go(Main.java:229)
        at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java:184)
        at org.apache.derby.impl.tools.ij.Main.main(Main.java:75)
        at org.apache.derby.tools.ij.main(ij.java:59)
Caused by: org.apache.derby.client.am.SqlException: Java exception: 'null: 
java. lang.NullPointerException'.
        at 
org.apache.derby.client.net.NetConnection.flowConnect(NetConnection.j ava:407)
        at 
org.apache.derby.client.net.NetConnection.<init>(NetConnection.java:2 10)
        at 
org.apache.derby.client.net.ClientJDBCObjectFactoryImpl.newNetConnect 
ion(ClientJDBCObjectFactoryImpl.java:278)
        at org.apache.derby.jdbc.ClientDriver.connect(ClientDriver.java:168)
        ... 11 more
Caused by: java.lang.NullPointerException
        at 
org.apache.derby.client.net.NetConnection.serverSupportLongRDBNAM(Net 
Connection.java:1664)
        at 
org.apache.derby.client.net.NetConnectionRequest.buildRDBNAM(NetConne 
ctionRequest.java:496)
        at 
org.apache.derby.client.net.NetConnectionRequest.buildACCSEC(NetConne 
ctionRequest.java:295)
        at 
org.apache.derby.client.net.NetConnectionRequest.writeAccessSecurity( 
NetConnectionRequest.java:70)
        at 
org.apache.derby.client.net.NetConnection.writeServerAttributesAndKey 
Exchange(NetConnection.java:758)
        at 
org.apache.derby.client.net.NetConnection.flowServerAttributesAndKeyE 
xchange(NetConnection.java:706)
        at 
org.apache.derby.client.net.NetConnection.flowUSRIDONLconnect(NetConn 
ection.java:562)
        at 
org.apache.derby.client.net.NetConnection.flowConnect(NetConnection.j ava:359)
        ... 14 more
ij> exit;



> Increase the length of the RDBNAM field in the DRDA implementation
> ------------------------------------------------------------------
>
>                 Key: DERBY-4805
>                 URL: https://issues.apache.org/jira/browse/DERBY-4805
>             Project: Derby
>          Issue Type: Improvement
>          Components: Network Client, Network Server
>    Affects Versions: 10.7.1.1
>            Reporter: Tiago R. Espinha
>            Assignee: Mamta A. Satoor
>              Labels: derby_triage10_9
>         Attachments: DERBY4805_patch2_diff.txt, DERBY4805_patch2_stat.txt, 
> DERBY_4805_diff_patch1.txt
>
>
> Currently, whenever the client driver is used, there is a limit of 255 bytes 
> for the database name. This is defined by the DRDA spec and there has been a 
> discussion on the list [1]/[2] as to whether this limit should be raised due 
> to the introduction of the new ACR that allows for UTF-8 characters.
> UTF-8 characters can take up to four bytes and this reduces the limit in 
> characters dramatically.
> This should be an easy change as there is a codepoint that defines this limit.
> [1] did not work but [2] did
> [1] - http://old.nabble.com/Database-name-length-tt29691419.html
> [2]http://apache-database.10148.n7.nabble.com/Database-name-length-td33182.html



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to