import java.io.File;
import java.io.IOException;
import java.io.InputStream;
+import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
+import java.sql.SQLException;
import java.sql.Statement;
import mir.config.MirPropertiesConfiguration;
+import mir.log.LoggerWrapper;
import mir.misc.FileUtil;
import mir.misc.WebdbImage;
import mir.storage.StorageObject;
* Diese Klasse enth?lt die Daten eines MetaObjekts
*
* @author RK, mh, mir-coders
- * @version $Id: EntityImages.java,v 1.14 2003/01/25 17:50:34 idfx Exp $
+ * @version $Id: EntityImages.java,v 1.19 2003/03/08 17:18:19 idfx Exp $
*/
public EntityImages()
{
super();
+
+ logger = new LoggerWrapper("Entity.UploadedMedia.Images");
}
public EntityImages(StorageObject theStorage) {
// methods
- public InputStream getImage() throws StorageObjectFailure
- {
- theLog.printDebugInfo("--getimage started");
- java.sql.Connection con=null;Statement stmt=null;
- BlobInputStream in; InputStream img_in = null;
-
+ public InputStream getImage() throws StorageObjectFailure {
+ logger.debug("EntityImages.getimage started");
+ java.sql.Connection con=null;
+ Statement stmt=null;
+ BlobInputStream in;
+ InputStream img_in = null;
try {
con = theStorageObject.getPooledCon();
con.setAutoCommit(false);
rs.close();
}
}
- catch (Exception e) {
- e.printStackTrace();
- theLog.printError("EntityImages -- getImage failed"+e.toString());
+ catch (Throwable t) {
+ logger.error("EntityImages.getImage failed: " + t.toString());
+ t.printStackTrace(logger.asPrintWriter(LoggerWrapper.DEBUG_MESSAGE));
+
try {
con.setAutoCommit(true);
- } catch (Exception e2) {
- e.printStackTrace();
- theLog.printError(
- "EntityImages -- getImage reseting transaction mode failed"
- +e2.toString());
}
- theStorageObject.freeConnection(con,stmt);
- throwStorageObjectFailure(e, "EntityImages -- getImage failed: ");
+ catch (Throwable e) {
+ logger.error("EntityImages.getImage resetting transaction mode failed: " + e.toString());
+ e.printStackTrace(logger.asPrintWriter(LoggerWrapper.DEBUG_MESSAGE));
+ }
+
+ try {
+ theStorageObject.freeConnection(con, stmt);
+ }
+ catch (Throwable e) {
+ logger.error("EntityImages.getImage freeing connection failed: " +e.toString());
+ }
+
+ throwStorageObjectFailure(t, "EntityImages -- getImage failed: ");
}
- //}
return img_in;
}
public void setImage(InputStream in, String type)
- throws StorageObjectFailure {
+ throws StorageObjectFailure {
- if (in!=null) {
- java.sql.Connection con=null;PreparedStatement pstmt=null;
+ if (in != null) {
+ Connection con = null;
+ PreparedStatement pstmt = null;
File f = null;
try {
-
- theLog.printDebugInfo("settimage :: making internal representation of image");
+ logger.debug("EntityImages.settimage :: making internal representation of image");
File tempDir = new File(MirPropertiesConfiguration.instance().getString("TempDir"));
f = File.createTempFile("mir", ".tmp", tempDir);
FileUtil.write(f, in);
WebdbImage webdbImage= new WebdbImage(f, type);
- theLog.printDebugInfo("settimage :: made internal representation of image");
+ logger.debug("EntityImages.settimage :: made internal representation of image");
con = theStorageObject.getPooledCon();
con.setAutoCommit(false);
- theLog.printDebugInfo("settimage :: trying to insert image");
+ logger.debug("EntityImages.settimage :: trying to insert image");
// setting values
LargeObjectManager lom;
lobImage.close();
lobIcon.close();
- setValueForProperty("img_height",
- new Integer(webdbImage.getImageHeight()).toString());
- setValueForProperty("img_width",
- new Integer(webdbImage.getImageWidth()).toString());
- setValueForProperty("icon_height",
- new Integer(webdbImage.getIconHeight()).toString());
- setValueForProperty("icon_width",
- new Integer(webdbImage.getIconWidth()).toString());
+ setValueForProperty("img_height", new Integer(webdbImage.getImageHeight()).toString());
+ setValueForProperty("img_width", new Integer(webdbImage.getImageWidth()).toString());
+ setValueForProperty("icon_height", new Integer(webdbImage.getIconHeight()).toString());
+ setValueForProperty("icon_width", new Integer(webdbImage.getIconWidth()).toString());
setValueForProperty("image_data", new Integer(oidImage).toString());
setValueForProperty("icon_data", new Integer(oidIcon).toString());
update();
- }
- catch (Exception e) {
+ } catch (Exception e) {
throwStorageObjectFailure(e, "settimage :: setImage gescheitert: ");
- }
- finally {
+ } finally {
try {
if (con!=null)
con.setAutoCommit(true);
// get rid of the temp. file
f.delete();
+ } catch (SQLException e) {
+ throwStorageObjectFailure(e,"Resetting transaction-mode failed");
}
- catch (Exception e) {
- }
-
if (con!=null)
theStorageObject.freeConnection(con,pstmt);
}
*
* It will also take care of closing the OutputStream.
*/
- public InputStream getIcon() throws StorageObjectFailure
- {
- java.sql.Connection con=null;Statement stmt=null;
- BlobInputStream in=null;ImageInputStream img_in=null;
+ public InputStream getIcon() throws StorageObjectFailure {
+ Connection con=null;
+ Statement stmt=null;
+ BlobInputStream in=null;
+ ImageInputStream img_in=null;
try {
con = theStorageObject.getPooledCon();
LargeObjectManager lom;
java.sql.Connection jCon;
stmt = con.createStatement();
- ResultSet rs = theStorageObject.executeSql(stmt,
- "select icon_data from images where id="+getId());
+ ResultSet rs = theStorageObject.executeSql(stmt, "select icon_data from images where id="+getId());
jCon = ((com.codestudio.sql.PoolManConnectionHandle)con)
.getNativeConnection();
lom = ((org.postgresql.Connection)jCon).getLargeObjectAPI();
rs.close();
}
}
- catch (Exception e) {
- e.printStackTrace();
- theLog.printError("EntityImages -- getIcon failed"+e.toString());
+ catch (Throwable t) {
+ logger.error("EntityImages.getIcon failed: "+t.toString());
+ t.printStackTrace(logger.asPrintWriter(LoggerWrapper.DEBUG_MESSAGE));
+
try {
con.setAutoCommit(true);
}
- catch (Exception e2) {
- e.printStackTrace();
- theLog.printError(
- "EntityImages -- getIcon reseting transaction mode failed"
- +e2.toString());
+ catch (SQLException e) {
+ logger.error("EntityImages.getIcon resetting transaction mode failed: " + e.toString());
+ e.printStackTrace(logger.asPrintWriter(LoggerWrapper.DEBUG_MESSAGE));
+ }
+ try {
+ theStorageObject.freeConnection(con, stmt);
+ }
+ catch (Throwable e) {
+ logger.error("EntityImages -- freeing connection failed: " + e.getMessage());
}
- theStorageObject.freeConnection(con,stmt);
- throwStorageObjectFailure(e, "EntityImages -- getIcon failed:");
+
+ throwStorageObjectFailure(t, "EntityImages -- getIcon failed:");
}
return img_in;
private class ImageInputStream extends InputStream {
InputStream _in;
- java.sql.Connection _con;
+ Connection _con;
Statement _stmt;
- public ImageInputStream(BlobInputStream in, java.sql.Connection con,
- Statement stmt )
- {
+ public ImageInputStream(BlobInputStream in, Connection con,
+ Statement stmt ) {
_in = in;
_con = con;
_stmt = stmt;
public void close () throws IOException {
_in.close();
-
try {
_con.setAutoCommit(true);
theStorageObject.freeConnection(_con,_stmt);
- }
- catch (Exception e) {
+ } catch (Exception e) {
throw new IOException("close(): "+e.toString());
}
}
public int read() throws IOException {
return _in.read();
}
-
}
}