IDEMPIERE-3017 CSV Importer leaving open trx (DB locks)
This commit is contained in:
parent
0c28fbc7b6
commit
7cbee09a69
|
@ -238,7 +238,7 @@ public class GridTabCSVImporter implements IGridTabImporter
|
||||||
createTrx(gridTab);
|
createTrx(gridTab);
|
||||||
}
|
}
|
||||||
|
|
||||||
String recordResult = processRecord(importMode, gridTab, indxDetail, isDetail, idx, rowResult);
|
String recordResult = processRecord(importMode, gridTab, indxDetail, isDetail, idx, rowResult, childs);
|
||||||
rowResult.append(recordResult);
|
rowResult.append(recordResult);
|
||||||
|
|
||||||
// write
|
// write
|
||||||
|
@ -272,6 +272,13 @@ public class GridTabCSVImporter implements IGridTabImporter
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gridTab.getTableModel().setImportingMode(false,null);
|
||||||
|
for (GridTab detail : childs) {
|
||||||
|
detail.getTableModel().setImportingMode(false,null);
|
||||||
|
}
|
||||||
|
gridTab.dataRefreshAll();
|
||||||
|
|
||||||
}
|
}
|
||||||
if (logFile != null)
|
if (logFile != null)
|
||||||
return logFile;
|
return logFile;
|
||||||
|
@ -521,6 +528,7 @@ public class GridTabCSVImporter implements IGridTabImporter
|
||||||
if( trx != null ){
|
if( trx != null ){
|
||||||
|
|
||||||
if( isError() ) {
|
if( isError() ) {
|
||||||
|
gridTab.dataDelete();
|
||||||
rollbackTrx();
|
rollbackTrx();
|
||||||
setError(false);
|
setError(false);
|
||||||
}else {
|
}else {
|
||||||
|
@ -542,6 +550,7 @@ public class GridTabCSVImporter implements IGridTabImporter
|
||||||
}
|
}
|
||||||
|
|
||||||
if( isError ){
|
if( isError ){
|
||||||
|
gridTab.dataDelete();
|
||||||
rollbackTrx();
|
rollbackTrx();
|
||||||
}else{
|
}else{
|
||||||
commitTrx();
|
commitTrx();
|
||||||
|
@ -551,18 +560,6 @@ public class GridTabCSVImporter implements IGridTabImporter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( childs != null ){
|
|
||||||
if( masterRecord != null ){
|
|
||||||
gridTab.query(false);
|
|
||||||
gridTab.getTableModel().setImportingMode(false,null);
|
|
||||||
for( GridTab detail : childs )
|
|
||||||
if( detail.getTableModel().isOpen() ){
|
|
||||||
detail.query(true);
|
|
||||||
detail.getTableModel().setImportingMode(false,null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
trx.close();
|
trx.close();
|
||||||
trx=null;
|
trx=null;
|
||||||
}
|
}
|
||||||
|
@ -597,7 +594,7 @@ public class GridTabCSVImporter implements IGridTabImporter
|
||||||
* @param rowResult
|
* @param rowResult
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private String processRecord(String importMode, GridTab gridTab, int indxDetail, boolean isDetail, int idx, StringBuilder rowResult){
|
private String processRecord(String importMode, GridTab gridTab, int indxDetail, boolean isDetail, int idx, StringBuilder rowResult, List<GridTab> childs){
|
||||||
|
|
||||||
String logMsg = null;
|
String logMsg = null;
|
||||||
GridTab currentGridTab = null;
|
GridTab currentGridTab = null;
|
||||||
|
@ -633,6 +630,11 @@ public class GridTabCSVImporter implements IGridTabImporter
|
||||||
logMsg = "["+currentGridTab.getName()+"]"+"- Was not able to create a new record!";
|
logMsg = "["+currentGridTab.getName()+"]"+"- Was not able to create a new record!";
|
||||||
}else{
|
}else{
|
||||||
currentGridTab.navigateCurrent();
|
currentGridTab.navigateCurrent();
|
||||||
|
if (! isDetail) {
|
||||||
|
for (GridTab child : childs) {
|
||||||
|
child.query(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue