db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DERBY-5317) NullPointerException in org.apache.derby.client.net.Request.sendBytes() with client
Date Mon, 30 Sep 2013 09:50:27 GMT

    [ https://issues.apache.org/jira/browse/DERBY-5317?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13781717#comment-13781717
] 

Knut Anders Hatlen commented on DERBY-5317:
-------------------------------------------

Thanks for the new patch, Dyre. I'm mostly fine with it. I'm still a little worried that applications
might get confused if the WriteChainAlreadyInUseError escapes out to them. Although it's similar
to the NPE or ArrayIndexOutOfBoundsException that would have been thrown without the fix,
I think an application is more likely to have reasonable handlers for Exception than for Error.
So I think I would feel more comfortable if it had been a sub-class of RuntimeException, as
that would make me more confident that if it should escape, the consequences for the application
would be no worse than today (either the application handles RuntimeException and doesn't
care whether it's a NullPointerException or WriteChainAlreadyInUseException, or it doesn't
handle it and will get into trouble either way).

>  NullPointerException in org.apache.derby.client.net.Request.sendBytes()  with client
> -------------------------------------------------------------------------------------
>
>                 Key: DERBY-5317
>                 URL: https://issues.apache.org/jira/browse/DERBY-5317
>             Project: Derby
>          Issue Type: Bug
>          Components: Network Client
>    Affects Versions: 10.9.1.0
>            Reporter: Kathey Marsden
>              Labels: derby_triage10_11, patch
>         Attachments: derby-5317a.diff, derby-5317b.diff, Repro5317.java, Repro5317.java,
traces_10_2and10_9.zip
>
>
> Investigating DERBY-5308, I found that the LobLimits.java test run with client fails
with a NullPointerException.
>  
> END setup
> ========================================
> START ClobTest #1  -insertClob of size = 2147483647
> Rows inserted with clob of size (2147483647) = 2
> ========================================
> ========================================
> START ClobTest #2 - SELECT CLOB of size = 2147483647
> Matched rows selected with clob of size(2147483647) =1
> ========================================
> ========================================
> START ClobTest #3 - SELECT CLOB of size = 2147483647
> Matched rows selected with clob of size(2147483647) =1
> ========================================
> ========================================
> START ClobTest #4 - select and then update clob of size= 2147483647 - Uses setClob api
> FAIL -- Unexpected exception:
> java.lang.NullPointerException
>         at org.apache.derby.client.net.Request.sendBytes(Unknown Source)
>         at org.apache.derby.client.net.Request.flushScalarStreamSegment(Unknown Source)
>         at org.apache.derby.client.net.Request.padScalarStreamForError(Unknown Source)
>         at org.apache.derby.client.net.Request.writePlainScalarStream(Unknown Source)
>         at org.apache.derby.client.net.Request.writeScalarStream(Unknown Source)
>         at org.apache.derby.client.net.Request.writeScalarStream(Unknown Source)
>         at org.apache.derby.client.net.NetStatementRequest.buildEXTDTA(Unknown Source)
>         at org.apache.derby.client.net.NetStatementRequest.writeExecute(Unknown Source)
>         at org.apache.derby.client.net.NetPreparedStatement.writeExecute_(Unknown Source)
>         at org.apache.derby.client.am.PreparedStatement.writeExecute(Unknown Source)
>         at org.apache.derby.client.am.PreparedStatement.flowExecute(Unknown Source)
>         at org.apache.derby.client.am.PreparedStatement.executeUpdateX(Unknown Source)
>         at org.apache.derby.client.am.PreparedStatement.executeUpdate(Unknown Source)
>         at org.apache.derbyTesting.functionTests.tests.largedata.LobLimits.selectUpdateClob(LobLimits.java:115
> 7)
>         at org.apache.derbyTesting.functionTests.tests.largedata.LobLimits.clobTests(LobLimits.java:313)
>         at org.apache.derbyTesting.functionTests.tests.largedata.LobLimits.runTests(LobLimits.java:177)
>         at org.apache.derbyTesting.functionTests.tests.largedata.LobLimits.main(LobLimits.java:151)
> ========================================
> START ClobTest #12.1  -insertClob of size = 104857600
> NEGATIVE TEST - Expected Exception:
> EXPECTED SQL Exception: (08003) No current connection.
> ========================================
> START ClobTest #12.2 - SELECT CLOB of size = 104857600
> FAIL -- Unexpected exception:
> java.sql.SQLNonTransientConnectionException: No current connection.
>         at org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unknown Source)
>         at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
>         at org.apache.derby.client.am.PreparedStatement.setInt(Unknown Source)
>         at org.apache.derbyTesting.functionTests.tests.largedata.LobLimits.selectClob(LobLimits.java:1007)
> In the derby.log I see
> derby.system.home=/local0/kmarsden/repro/largeData/testtrunkdnc/DerbyNetClient/LobLimits
> Database Class Loader started - derby.database.classpath=''
> Tue Jul 05 17:50:01 PDT 2011 Thread[DRDAConnThread_11,5,main] (DATABASE = wombat), (DRDAID
= .-580681567053183
> 269{2}), Execution failed because of a Distributed Protocol Error:  DRDA_Proto_SYNTAXRM;
CODPNT arg  = 200d; E
> rror Code Value = 1d. Plaintext connection attempt from an SSL enabled client?
> Tue Jul 05 17:50:01 PDT 2011 : Execution failed because of a Distributed Protocol Error:
 DRDA_Proto_SYNTAXRM;
>  CODPNT arg  = 200d; Error Code Value = 1d. Plaintext connection attempt from an SSL
enabled client?
> org.apache.derby.impl.drda.DRDAProtocolException: Execution failed because of a Distributed
Protocol Error:  D
> RDA_Proto_SYNTAXRM; CODPNT arg  = 200d; Error Code Value = 1d. Plaintext connection attempt
from an SSL enable
> d client?
>         at org.apache.derby.impl.drda.DRDAConnThread.throwSyntaxrm(Unknown Source)
>         at org.apache.derby.impl.drda.DRDAConnThread.invalidCodePoint(Unknown Source)
>         at org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTTobjects(Unknown Source)
>         at org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTT(Unknown Source)
>         at org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown Source)
>         at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source)
> Tue Jul 05 17:50:01 PDT 2011 Thread[DRDAConnThread_11,5,main] (DATABASE = wombat), (DRDAID
= .-580681567053183
> 269{2}), Execution failed because of a Distributed Protocol Error:  DRDA_Proto_SYNTAXRM;
CODPNT arg  = 200d; E
> rror Code Value = 1d. Plaintext connection attempt from an SSL enabled client?
> Tue Jul 05 17:50:01 PDT 2011 : Execution failed because of a Distributed Protocol Error:
 DRDA_Proto_SYNTAXRM;
>  CODPNT arg  = 200d; Error Code Value = 1d. Plaintext connection attempt from an SSL
enabled client?
> org.apache.derby.impl.drda.DRDAProtocolException: Execution failed because of a Distributed
Protocol Error:  D
> RDA_Proto_SYNTAXRM; CODPNT arg  = 200d; Error Code Value = 1d. Plaintext connection attempt
from an SSL enable
> d client?
>         at org.apache.derby.impl.drda.DRDAConnThread.throwSyntaxrm(Unknown Source)
>         at org.apache.derby.impl.drda.DRDAConnThread.invalidCodePoint(Unknown Source)
>         at org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTTobjects(Unknown Source)
>         at org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTT(Unknown Source)
>         at org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown Source)
>         at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source)
> ----------------------------------------------------------------
> Tue Jul 05 17:50:07 PDT 2011: Shutting down Derby engine
> ----------------------------------------------------------------
> Tue Jul 05 17:50:07 PDT 2011:
> To run the test, you have to remove largeData from DerbyNetClient.exclude and run
> java -Dframework=DerbyNetClient org.apache.derbyTesting.functionTests.harness.RunTest
 org.apache.derbyTesting.functionTests.tests.lageData.LobLimits.
> It took about 3.5 hours to occur.
> I will work on a smaller reproduction.
>                                                                                     
       5,9           36%



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

Mime
View raw message