You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by ba...@apache.org on 2001/05/21 21:43:21 UTC
cvs commit: xml-cocoon2/src/org/apache/cocoon/acting AbstractDatabaseAction.java
balld 01/05/21 12:43:20
Modified: src/org/apache/cocoon/acting AbstractDatabaseAction.java
Log:
fixed blob uploading and image attribute setting
Revision Changes Path
1.4 +24 -5 xml-cocoon2/src/org/apache/cocoon/acting/AbstractDatabaseAction.java
Index: AbstractDatabaseAction.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/acting/AbstractDatabaseAction.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- AbstractDatabaseAction.java 2001/05/18 20:03:16 1.3
+++ AbstractDatabaseAction.java 2001/05/21 19:43:16 1.4
@@ -173,7 +173,7 @@
*
* @author <a href="mailto:bloritsch@apache.org">Berin Loritsch</a>
* @author <a href="mailto:balld@apache.org">Donald Ball</a>
- * @version CVS $Revision: 1.3 $ $Date: 2001/05/18 20:03:16 $
+ * @version CVS $Revision: 1.4 $ $Date: 2001/05/21 19:43:16 $
*/
public abstract class AbstractDatabaseAction extends AbstractComplementaryConfigurableAction implements Configurable, Disposable {
protected Map files = new HashMap();
@@ -395,8 +395,12 @@
*/
if (value == null) {
/** If the value is null, set the column value null and return **/
- statement.setNull(position, typeObject.intValue());
- return;
+ if (typeName.equals("image-width") || typeName.equals("image-height") || typeName.equals("image-size")) {
+ /** these column types are automatically generated so it's ok **/
+ } else {
+ statement.setNull(position, typeObject.intValue());
+ return;
+ }
}
if ("".equals(value)) {
switch (typeObject.intValue()) {
@@ -406,6 +410,11 @@
/** If the value is an empty string and the column is
a string type, we can continue **/
break;
+ case Types.INTEGER:
+ if (typeName.equals("image-width") || typeName.equals("image-height") || typeName.equals("image-size")) {
+ /** again, these types are okay to be absent **/
+ break;
+ }
default:
/** If the value is an empty string and the column
is something else, we treat it as a null value **/
@@ -543,8 +552,15 @@
statement.setTimestamp(position, new Timestamp((new java.util.Date()).getTime()));
break;
case Types.BLOB:
- file = (File)value;
- InputStream input = new BufferedInputStream(new FileInputStream(file));
+ if (value instanceof File) {
+ file = (File)value;
+ } else if (value instanceof String) {
+ file = new File((String)value);
+ } else {
+ throw new SQLException("Invalid type for blob: "+value.getClass().getName());
+ }
+ //InputStream input = new BufferedInputStream(new FileInputStream(file));
+ FileInputStream input = new FileInputStream(file);
statement.setBinaryStream(position, input, (int)file.length());
if ("image".equals(typeName)) {
/** If this column type is an image, store the
@@ -582,6 +598,7 @@
Why do we do this? **/
setRequestAttribute(request,param,parameters.getParameter("image-width",""));
}
+ break;
} else if ("image-height".equals(typeName)) {
/** Get the image height from the cached image data **/
String imageAttr = param.substring(0, (param.length() - "-height".length()));
@@ -591,6 +608,7 @@
statement.setInt(position, parameters.getParameterAsInteger("image-height", -1));
setRequestAttribute(request,param,parameters.getParameter("image-height",""));
}
+ break;
} else if ("image-size".equals(typeName)) {
/** Get the image file size from the cached image data **/
String imageAttr = param.substring(0, (param.length() - "-size".length()));
@@ -600,6 +618,7 @@
statement.setInt(position, parameters.getParameterAsInteger("image-size", -1));
setRequestAttribute(request,param,parameters.getParameter("image-size",""));
}
+ break;
}
default:
throw new SQLException("Impossible exception - invalid type "+typeName);
----------------------------------------------------------------------
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