diff --git a/base/src/org/adempiere/util/ProcessUtil.java b/base/src/org/adempiere/util/ProcessUtil.java
index 3fcd6884f8..57b47ac5cf 100644
--- a/base/src/org/adempiere/util/ProcessUtil.java
+++ b/base/src/org/adempiere/util/ProcessUtil.java
@@ -28,6 +28,7 @@ import org.compiere.wf.MWorkflow;
* @author Teo Sarca, SC ARHIPAC SERVICE SRL
*
BF [ 1757523 ] Server Processes are using Server's context
* BF [ 2528297 ] Poor error message on jasper fail
+ * BF [ 2530847 ] Report is displayed even if java process fails
*/
public final class ProcessUtil {
@@ -112,27 +113,33 @@ public final class ProcessUtil {
return false;
}
+ boolean success = false;
try
{
- process.startProcess(ctx, pi, trx);
- if (trx != null)
+ success = process.startProcess(ctx, pi, trx);
+ if (success && trx != null)
{
trx.commit(true);
trx.close();
+ trx = null;
}
}
catch (Exception e)
+ {
+ pi.setSummary (Msg.getMsg(Env.getCtx(), "ProcessError") + " " + e.getLocalizedMessage(), true);
+ log.log(Level.SEVERE, pi.getClassName(), e);
+ return false;
+ }
+ finally
{
if (trx != null)
{
trx.rollback();
trx.close();
+ trx = null;
}
- pi.setSummary (Msg.getMsg(Env.getCtx(), "ProcessError") + " " + e.getLocalizedMessage(), true);
- log.log(Level.SEVERE, pi.getClassName(), e);
- return false;
}
- return true;
+ return success;
}
public static boolean startScriptProcess(Properties ctx, ProcessInfo pi, Trx trx) {