You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by bl...@apache.org on 2001/03/09 16:07:31 UTC
cvs commit: xml-cocoon/src/org/apache/cocoon/reading DatabaseReader.java
bloritsch 01/03/09 07:07:30
Modified: lib Tag: xml-cocoon2 avalonapi.jar
src/org/apache/cocoon/reading Tag: xml-cocoon2
DatabaseReader.java
Log:
Update avalonapi with fixes in datasource code.
Revision Changes Path
No revision
No revision
1.1.2.20 +514 -235 xml-cocoon/lib/Attic/avalonapi.jar
<<Binary file>>
No revision
No revision
1.1.2.2 +21 -3 xml-cocoon/src/org/apache/cocoon/reading/Attic/DatabaseReader.java
Index: DatabaseReader.java
===================================================================
RCS file: /home/cvs/xml-cocoon/src/org/apache/cocoon/reading/Attic/DatabaseReader.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- DatabaseReader.java 2001/02/23 21:36:37 1.1.2.1
+++ DatabaseReader.java 2001/03/09 15:07:29 1.1.2.2
@@ -96,6 +96,7 @@
try {
datasource = (DataSourceComponent) dbselector.select(dsn);
con = datasource.getConnection();
+ con.setAutoCommit(false);
PreparedStatement statement = con.prepareStatement(getQuery());
statement.setString(1, this.source);
ResultSet set = statement.executeQuery();
@@ -104,14 +105,27 @@
HttpServletResponse res = (HttpServletResponse) objectModel.get(Constants.RESPONSE_OBJECT);
HttpServletRequest req = (HttpServletRequest) objectModel.get(Constants.REQUEST_OBJECT);
- if (this.modifiedSince(set, req, res) == false) {
- res.setContentType(this.parameters.getParameter("content-type", null));
- this.serialize(set.getBlob(this.parameters.getParameter("image", null)), res);
+ if (this.modifiedSince(set, req, res)) {
+ Blob object = set.getBlob(1);
+
+ if (object == null) {
+ throw new ResourceNotFoundException("There is no image with that key");
+ }
+
+ res.setContentType(this.parameters.getParameter("content-type", ""));
+ this.serialize(object, res);
}
+
+ con.commit();
} catch (IOException ioe) {
getLogger().debug("Assuming client reset stream");
+
+ if (con != null) try {con.rollback();} catch (SQLException se) {}
} catch (Exception e) {
getLogger().warn("Could not get resource from Database", e);
+
+ if (con != null) try {con.rollback();} catch (SQLException se) {}
+
throw new ResourceNotFoundException("DatabaseReader error:", e);
} finally {
if (con != null) {
@@ -189,6 +203,10 @@
*/
public void serialize(Blob object, HttpServletResponse response)
throws IOException, SQLException {
+ if (object == null) {
+ throw new SQLException("The Blob is empty!");
+ }
+
InputStream is = object.getBinaryStream();
OutputStream os = response.getOutputStream();
----------------------------------------------------------------------
In case of troubles, e-mail: webmaster@xml.apache.org
To unsubscribe, e-mail: cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org