* Always use stream interface for retrieving BLOB and LONGVARBINARY columns.
* Check for null reader in streamy LONGVARCHAR code.
This commit is contained in:
parent
b783016a6b
commit
bf95a9c036
1 changed files with 9 additions and 6 deletions
|
@ -1747,11 +1747,9 @@ public final class NodeManager {
|
||||||
case Types.NUMERIC:
|
case Types.NUMERIC:
|
||||||
|
|
||||||
BigDecimal num = rs.getBigDecimal(columnNumber);
|
BigDecimal num = rs.getBigDecimal(columnNumber);
|
||||||
|
|
||||||
if (num == null) {
|
if (num == null) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (num.scale() > 0) {
|
if (num.scale() > 0) {
|
||||||
newprop.setFloatValue(num.doubleValue());
|
newprop.setFloatValue(num.doubleValue());
|
||||||
} else {
|
} else {
|
||||||
|
@ -1768,10 +1766,11 @@ public final class NodeManager {
|
||||||
|
|
||||||
case Types.BLOB:
|
case Types.BLOB:
|
||||||
case Types.LONGVARBINARY:
|
case Types.LONGVARBINARY:
|
||||||
try {
|
{
|
||||||
newprop.setJavaObjectValue(rs.getBytes(columnNumber));
|
|
||||||
} catch (SQLException x) {
|
|
||||||
InputStream in = rs.getBinaryStream(columnNumber);
|
InputStream in = rs.getBinaryStream(columnNumber);
|
||||||
|
if (in == null) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
ByteArrayOutputStream bout = new ByteArrayOutputStream();
|
ByteArrayOutputStream bout = new ByteArrayOutputStream();
|
||||||
byte[] buffer = new byte[2048];
|
byte[] buffer = new byte[2048];
|
||||||
int read;
|
int read;
|
||||||
|
@ -1788,6 +1787,10 @@ public final class NodeManager {
|
||||||
newprop.setStringValue(rs.getString(columnNumber));
|
newprop.setStringValue(rs.getString(columnNumber));
|
||||||
} catch (SQLException x) {
|
} catch (SQLException x) {
|
||||||
Reader in = rs.getCharacterStream(columnNumber);
|
Reader in = rs.getCharacterStream(columnNumber);
|
||||||
|
if (in == null) {
|
||||||
|
newprop.setStringValue(null);
|
||||||
|
break;
|
||||||
|
}
|
||||||
StringBuffer out = new StringBuffer();
|
StringBuffer out = new StringBuffer();
|
||||||
char[] buffer = new char[2048];
|
char[] buffer = new char[2048];
|
||||||
int read;
|
int read;
|
||||||
|
@ -1820,7 +1823,7 @@ public final class NodeManager {
|
||||||
|
|
||||||
case Types.CLOB:
|
case Types.CLOB:
|
||||||
Clob cl = rs.getClob(columnNumber);
|
Clob cl = rs.getClob(columnNumber);
|
||||||
if (cl==null) {
|
if (cl == null) {
|
||||||
newprop.setStringValue(null);
|
newprop.setStringValue(null);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue