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

Dyre Tjeldvoll updated DERBY-5806:
----------------------------------

    Attachment: derby-5806a.diff

Attaching a patch which:
* Addresses the root cause which appears to be that 
{{DRDAConnThread.parseCcsidMBC()}} incorrectly returns {{null}} for a 
zero-length string value.
* Fixes {{DRDAStatement.isCallableSQL()}} so that it handles an empty string, 
(it uses {{StringTokenizer}} and assumed that it would always be safe to call 
{{nextToken()}}).
* Extends {{NullSQLTextTest}} with test cases where the input is an empty 
string.
* Fixes an additional problem uncovered by the new test cases where the client 
driver sets {{ClientStatement.sqlMode_}} to {{ClientStatement.isQuery_\_}} for 
all empty statements, which causes the client driver to fail in the cases where 
{{sqlMode_}} is not compatible with {{executeType}}, and throw a different 
error than the expected syntax error thrown by the embedded driver.

> Trying to prepare statement with no text causes DRDA protocol exception
> -----------------------------------------------------------------------
>
>                 Key: DERBY-5806
>                 URL: https://issues.apache.org/jira/browse/DERBY-5806
>             Project: Derby
>          Issue Type: Bug
>          Components: Network Client, Network Server
>    Affects Versions: 10.10.1.1
>            Reporter: Bryan Pendleton
>            Assignee: Dyre Tjeldvoll
>            Priority: Minor
>              Labels: derby_triage10_10, derby_triage10_11
>         Attachments: derby-5806a.diff
>
>
> I accidentally stumbled into a rather awkward bit of error handling.
> On an IJ session running client/server, I tried:
> ij> connect 'jdbc:derby://localhost:1527/brydb';
> ij> prepare seeMenu as '';
> ERROR 08006: A network protocol error was encountered and the connection has 
> been terminated: A PROTOCOL Data Stream Syntax Error was detected.  Reason: 
> 0x9,236. Plaintext connection attempt to an SSL enabled server?
> On the Network Server side, I see:
> Sat Jun 09 09:28:51 PDT 2012 : Execution failed because of a Distributed 
> Protocol Error:  DRDA_Proto_SYNTAXRM; CODPNT arg  = 2414; Error Code Value = 
> e. Plaintext connection attempt from an SSL enabled client?
> org.apache.derby.impl.drda.DRDAProtocolException: Execution failed because of 
> a Distributed Protocol Error:  DRDA_Proto_SYNTAXRM; CODPNT arg  = 2414; Error 
> Code Value = e. Plaintext connection attempt from an SSL enabled client?
>       at 
> org.apache.derby.impl.drda.DRDAConnThread.throwSyntaxrm(DRDAConnThread.java:537)
>       at 
> org.apache.derby.impl.drda.DRDAConnThread.missingCodePoint(DRDAConnThread.java:567)
>       at 
> org.apache.derby.impl.drda.DRDAConnThread.parsePRPSQLSTTobjects(DRDAConnThread.java:3858)
>       at 
> org.apache.derby.impl.drda.DRDAConnThread.parsePRPSQLSTT(DRDAConnThread.java:3788)
>       at 
> org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:831)
>       at 
> org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:295)
> It seems like the error handling could be improved here, for what is 
> essentially a syntax error on my part.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to