Jdbc4SqlXmlHandler returns null as documented (instead of throwing NPE)

Issue: SPR-13782
(cherry picked from commit 78dad4c)
This commit is contained in:
Juergen Hoeller
2015-12-09 16:09:11 +01:00
parent 73823151bf
commit c0e5d00e56
2 changed files with 28 additions and 15 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2015 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -51,37 +51,51 @@ public class Jdbc4SqlXmlHandler implements SqlXmlHandler {
//-------------------------------------------------------------------------
public String getXmlAsString(ResultSet rs, String columnName) throws SQLException {
return rs.getSQLXML(columnName).getString();
SQLXML xmlObject = rs.getSQLXML(columnName);
return (xmlObject != null ? xmlObject.getString() : null);
}
public String getXmlAsString(ResultSet rs, int columnIndex) throws SQLException {
return rs.getSQLXML(columnIndex).getString();
SQLXML xmlObject = rs.getSQLXML(columnIndex);
return (xmlObject != null ? xmlObject.getString() : null);
}
public InputStream getXmlAsBinaryStream(ResultSet rs, String columnName) throws SQLException {
return rs.getSQLXML(columnName).getBinaryStream();
SQLXML xmlObject = rs.getSQLXML(columnName);
return (xmlObject != null ? xmlObject.getBinaryStream() : null);
}
public InputStream getXmlAsBinaryStream(ResultSet rs, int columnIndex) throws SQLException {
return rs.getSQLXML(columnIndex).getBinaryStream();
SQLXML xmlObject = rs.getSQLXML(columnIndex);
return (xmlObject != null ? xmlObject.getBinaryStream() : null);
}
public Reader getXmlAsCharacterStream(ResultSet rs, String columnName) throws SQLException {
return rs.getSQLXML(columnName).getCharacterStream();
SQLXML xmlObject = rs.getSQLXML(columnName);
return (xmlObject != null ? xmlObject.getCharacterStream() : null);
}
public Reader getXmlAsCharacterStream(ResultSet rs, int columnIndex) throws SQLException {
return rs.getSQLXML(columnIndex).getCharacterStream();
SQLXML xmlObject = rs.getSQLXML(columnIndex);
return (xmlObject != null ? xmlObject.getCharacterStream() : null);
}
@SuppressWarnings("unchecked")
public Source getXmlAsSource(ResultSet rs, String columnName, Class sourceClass) throws SQLException {
return rs.getSQLXML(columnName).getSource(sourceClass != null ? sourceClass : DOMSource.class);
SQLXML xmlObject = rs.getSQLXML(columnName);
if (xmlObject == null) {
return null;
}
return xmlObject.getSource(sourceClass != null ? sourceClass : DOMSource.class);
}
@SuppressWarnings("unchecked")
public Source getXmlAsSource(ResultSet rs, int columnIndex, Class sourceClass) throws SQLException {
return rs.getSQLXML(columnIndex).getSource(sourceClass != null ? sourceClass : DOMSource.class);
SQLXML xmlObject = rs.getSQLXML(columnIndex);
if (xmlObject == null) {
return null;
}
return xmlObject.getSource(sourceClass != null ? sourceClass : DOMSource.class);
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2015 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,7 +20,6 @@ import java.io.InputStream;
import java.io.Reader;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.xml.transform.Source;
import org.w3c.dom.Document;
@@ -112,7 +111,7 @@ public interface SqlXmlHandler {
* database and driver.
* @param rs the ResultSet to retrieve the content from
* @param columnName the column name to use
* @return the content as character stream
* @return the content as character stream, or {@code null} in case of SQL NULL
* @throws SQLException if thrown by JDBC methods
* @see java.sql.ResultSet#getSQLXML
* @see java.sql.SQLXML#getCharacterStream
@@ -126,7 +125,7 @@ public interface SqlXmlHandler {
* database and driver.
* @param rs the ResultSet to retrieve the content from
* @param columnIndex the column index to use
* @return the content as character stream
* @return the content as character stream, or {@code null} in case of SQL NULL
* @throws SQLException if thrown by JDBC methods
* @see java.sql.ResultSet#getSQLXML
* @see java.sql.SQLXML#getCharacterStream
@@ -141,7 +140,7 @@ public interface SqlXmlHandler {
* @param rs the ResultSet to retrieve the content from
* @param columnName the column name to use
* @param sourceClass the implementation class to be used
* @return the content as character stream
* @return the content as character stream, or {@code null} in case of SQL NULL
* @throws SQLException if thrown by JDBC methods
* @see java.sql.ResultSet#getSQLXML
* @see java.sql.SQLXML#getSource
@@ -156,7 +155,7 @@ public interface SqlXmlHandler {
* @param rs the ResultSet to retrieve the content from
* @param columnIndex the column index to use
* @param sourceClass the implementation class to be used
* @return the content as character stream
* @return the content as character stream, or {@code null} in case of SQL NULL
* @throws SQLException if thrown by JDBC methods
* @see java.sql.ResultSet#getSQLXML
* @see java.sql.SQLXML#getSource