diff --git a/migration/i9/oracle/202205101725_IDEMPIERE-5288.sql b/migration/i9/oracle/202205101725_IDEMPIERE-5288.sql new file mode 100644 index 0000000000..d8c01a49f3 --- /dev/null +++ b/migration/i9/oracle/202205101725_IDEMPIERE-5288.sql @@ -0,0 +1,10 @@ +-- IDEMPIERE-5288 org.zkoss.poi.POIXMLException attaching XLSX file +SELECT register_migration_script('202205101725_IDEMPIERE-5288.sql') FROM dual; + +SET SQLBLANKLINES ON +SET DEFINE OFF + +-- May 10, 2022, 5:25:40 PM CEST +INSERT INTO AD_Message (MsgType,MsgText,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Message_ID,Value,EntityType,AD_Message_UU) VALUES ('I','There was an error previewing this file.',0,0,'Y',TO_TIMESTAMP('2022-05-10 17:25:40','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2022-05-10 17:25:40','YYYY-MM-DD HH24:MI:SS'),100,200749,'ErrorPreviewingFile','D','67f5c60d-50c0-467b-af04-d46a95555c57') +; + diff --git a/migration/i9/postgresql/202205101725_IDEMPIERE-5288.sql b/migration/i9/postgresql/202205101725_IDEMPIERE-5288.sql new file mode 100644 index 0000000000..c0f4e5c4bc --- /dev/null +++ b/migration/i9/postgresql/202205101725_IDEMPIERE-5288.sql @@ -0,0 +1,7 @@ +-- IDEMPIERE-5288 org.zkoss.poi.POIXMLException attaching XLSX file +SELECT register_migration_script('202205101725_IDEMPIERE-5288.sql') FROM dual; + +-- May 10, 2022, 5:25:40 PM CEST +INSERT INTO AD_Message (MsgType,MsgText,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Message_ID,Value,EntityType,AD_Message_UU) VALUES ('I','There was an error previewing this file.',0,0,'Y',TO_TIMESTAMP('2022-05-10 17:25:40','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2022-05-10 17:25:40','YYYY-MM-DD HH24:MI:SS'),100,200749,'ErrorPreviewingFile','D','67f5c60d-50c0-467b-af04-d46a95555c57') +; + diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/WAttachment.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/WAttachment.java index 98883f6d03..40c2529c82 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/WAttachment.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/WAttachment.java @@ -495,7 +495,19 @@ public class WAttachment extends Window implements EventListener { if (data.length <= maxPreviewSize) { AMedia media = new AMedia(entry.getName(), null, mimeType, entry.getData()); - customPreviewComponent = view.renderMediaView(previewPanel, media, true); + try { + customPreviewComponent = view.renderMediaView(previewPanel, media, true); + } catch (Exception e) { + log.warning("Error previewing file in attachment entry " + entry.getName() + " -> " + e.getLocalizedMessage()); + e.printStackTrace(); + clearPreview(); + String msg = WTextEditorDialog.sanitize(Msg.getMsg(Env.getCtx(), "ErrorPreviewingFile")); + Media mediaErr = new AMedia(null, null, "text/html", msg.getBytes()); + preview.setContent(mediaErr); + preview.setVisible(true); + bPreview.setEnabled(true); + return false; + } return true; } else { return false; diff --git a/org.idempiere.keikai/src/org/idempiere/keikai/view/ExcelMediaView.java b/org.idempiere.keikai/src/org/idempiere/keikai/view/ExcelMediaView.java index 096cb072a0..f4901ec228 100644 --- a/org.idempiere.keikai/src/org/idempiere/keikai/view/ExcelMediaView.java +++ b/org.idempiere.keikai/src/org/idempiere/keikai/view/ExcelMediaView.java @@ -24,8 +24,6 @@ **********************************************************************/ package org.idempiere.keikai.view; -import java.io.IOException; - import org.idempiere.ui.zk.media.IMediaView; import org.zkoss.util.media.AMedia; import org.zkoss.zk.ui.Component; @@ -68,7 +66,8 @@ public class ExcelMediaView implements IMediaView { Book book; try { book = importer.imports(media.getStreamData(), media.getName()); - } catch (IOException e) { + } catch (Exception e) { + container.removeChild(spreadsheet); throw new RuntimeException(e.getMessage(), e); } spreadsheet.setBook(book);