You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by my...@apache.org on 2014/10/02 23:03:47 UTC
svn commit: r1629069 - in /db/derby/code/branches/10.10: ./
java/drda/org/apache/derby/impl/drda/DRDAConnThread.java
java/drda/org/apache/derby/impl/drda/Database.java
java/drda/org/apache/derby/impl/drda/Session.java
Author: myrnavl
Date: Thu Oct 2 21:03:46 2014
New Revision: 1629069
URL: http://svn.apache.org/r1629069
Log:
DERBY-6714; RuntimeInfoTest failed with insufficient data from server
merge of revision 1628842 from 10.11 branch.
Modified:
db/derby/code/branches/10.10/ (props changed)
db/derby/code/branches/10.10/java/drda/org/apache/derby/impl/drda/DRDAConnThread.java
db/derby/code/branches/10.10/java/drda/org/apache/derby/impl/drda/Database.java
db/derby/code/branches/10.10/java/drda/org/apache/derby/impl/drda/Session.java
Propchange: db/derby/code/branches/10.10/
------------------------------------------------------------------------------
Merged /db/derby/code/branches/10.11:r1628842
Merged /db/derby/code/trunk:r1620608
Modified: db/derby/code/branches/10.10/java/drda/org/apache/derby/impl/drda/DRDAConnThread.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.10/java/drda/org/apache/derby/impl/drda/DRDAConnThread.java?rev=1629069&r1=1629068&r2=1629069&view=diff
==============================================================================
--- db/derby/code/branches/10.10/java/drda/org/apache/derby/impl/drda/DRDAConnThread.java (original)
+++ db/derby/code/branches/10.10/java/drda/org/apache/derby/impl/drda/DRDAConnThread.java Thu Oct 2 21:03:46 2014
@@ -9165,10 +9165,13 @@ class DRDAConnThread extends Thread {
protected String buildRuntimeInfo(String indent, LocalizedResource localLangUtil )
{
- if (!hasSession()) {
+ // DERBY-6714: session can be null if the session gets closed just
+ // as we try to read its runtime info.
+ Session s = session;
+ if (s == null) {
return "";
} else {
- return session.buildRuntimeInfo("", localLangUtil) + "\n";
+ return s.buildRuntimeInfo("", localLangUtil) + "\n";
}
}
Modified: db/derby/code/branches/10.10/java/drda/org/apache/derby/impl/drda/Database.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.10/java/drda/org/apache/derby/impl/drda/Database.java?rev=1629069&r1=1629068&r2=1629069&view=diff
==============================================================================
--- db/derby/code/branches/10.10/java/drda/org/apache/derby/impl/drda/Database.java (original)
+++ db/derby/code/branches/10.10/java/drda/org/apache/derby/impl/drda/Database.java Thu Oct 2 21:03:46 2014
@@ -407,20 +407,28 @@ class Database
protected String buildRuntimeInfo(String indent, LocalizedResource localLangUtil)
{
-
+ // DERBY-6714: stmtTable can be null if the session gets closed
+ // while we are constructing the runtime info. Create a local copy
+ // and check for null before accessing it.
+ Hashtable<Object, DRDAStatement> statements = stmtTable;
+
String s = indent +
localLangUtil.getTextMessage("DRDA_RuntimeInfoDatabase.I") +
dbName + "\n" +
localLangUtil.getTextMessage("DRDA_RuntimeInfoUser.I") +
userId + "\n" +
localLangUtil.getTextMessage("DRDA_RuntimeInfoNumStatements.I") +
- stmtTable.size() + "\n";
+ (statements == null ? 0 : statements.size()) + "\n";
s += localLangUtil.getTextMessage("DRDA_RuntimeInfoPreparedStatementHeader.I");
- for (Enumeration e = stmtTable.elements() ; e.hasMoreElements() ;)
+
+ if (statements != null) {
+ for (Enumeration e = statements.elements(); e.hasMoreElements(); )
{
s += ((DRDAStatement) e.nextElement()).toDebugString(indent
+"\t") +"\n";
}
+ }
+
return s;
}
Modified: db/derby/code/branches/10.10/java/drda/org/apache/derby/impl/drda/Session.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.10/java/drda/org/apache/derby/impl/drda/Session.java?rev=1629069&r1=1629068&r2=1629069&view=diff
==============================================================================
--- db/derby/code/branches/10.10/java/drda/org/apache/derby/impl/drda/Session.java (original)
+++ db/derby/code/branches/10.10/java/drda/org/apache/derby/impl/drda/Session.java Thu Oct 2 21:03:46 2014
@@ -286,10 +286,15 @@ class Session
String s = "";
s += indent + localLangUtil.getTextMessage("DRDA_RuntimeInfoSessionNumber.I")
+ connNum + "\n";
- if (database == null)
- return s;
- s += database.buildRuntimeInfo(indent,localLangUtil);
- s += "\n";
+
+ // DERBY-6714: database can be null if the session gets closed
+ // while we construct the runtime info.
+ Database db = database;
+ if (db != null) {
+ s += db.buildRuntimeInfo(indent, localLangUtil);
+ s += "\n";
+ }
+
return s;
}
}