diff --git a/framework/webtools/src/main/groovy/org/apache/ofbiz/webtools/entity/XmlDsDump.groovy b/framework/webtools/src/main/groovy/org/apache/ofbiz/webtools/entity/XmlDsDump.groovy
index 59d8367fe82..861d871c77a 100644
--- a/framework/webtools/src/main/groovy/org/apache/ofbiz/webtools/entity/XmlDsDump.groovy
+++ b/framework/webtools/src/main/groovy/org/apache/ofbiz/webtools/entity/XmlDsDump.groovy
@@ -25,7 +25,7 @@ import org.apache.ofbiz.entity.condition.EntityCondition
import org.apache.ofbiz.entity.condition.EntityJoinOperator
import org.apache.ofbiz.entity.model.ModelViewEntity
import org.apache.ofbiz.entity.transaction.TransactionUtil
-import org.apache.ofbiz.entity.util.EntityFindOptions
+import org.apache.ofbiz.entity.util.EntityQuery
outpath = parameters.outpath
filename = parameters.filename
@@ -188,7 +188,6 @@ if (passedEntityNames) {
session.setAttribute('xmlrawdump_entitylist', passedEntityNames)
session.setAttribute('entityDateCond', entityDateCond)
} else {
- efo = new EntityFindOptions(true, EntityFindOptions.TYPE_SCROLL_INSENSITIVE, EntityFindOptions.CONCUR_READ_ONLY, false)
numberOfEntities = passedEntityNames?.size() ?: 0
context.numberOfEntities = numberOfEntities
numberWritten = 0
@@ -213,22 +212,22 @@ if (passedEntityNames) {
beganTransaction = TransactionUtil.begin(3600)
try {
me = reader.getModelEntity(curEntityName)
- if (me.getNoAutoStamp() || me instanceof ModelViewEntity) {
- values = delegator.find(curEntityName, null, null, null, null, efo)
- } else {
- values = delegator.find(curEntityName, entityDateCond, null, null, null, efo)
+ entityQuery = EntityQuery.use(delegator).from(curEntityName).cursorScrollInsensitive()
+ if (!me.getNoAutoStamp() && !(me instanceof ModelViewEntity) && entityDateCond) {
+ entityQuery.where(entityDateCond)
}
curNumberWritten = 0
- while ((value = values.next()) != null) {
- value.writeXmlText(writer, '')
- numberWritten++
- curNumberWritten++
- if (curNumberWritten % 500 == 0 || curNumberWritten == 1) {
- Debug.log("Records written [$curEntityName]: $curNumberWritten Total: $numberWritten")
+ entityQuery.queryIterator().withCloseable { values ->
+ while ((value = values.next()) != null) {
+ value.writeXmlText(writer, '')
+ numberWritten++
+ curNumberWritten++
+ if (curNumberWritten % 500 == 0 || curNumberWritten == 1) {
+ Debug.log("Records written [$curEntityName]: $curNumberWritten Total: $numberWritten")
+ }
}
}
- values.close()
Debug.log("Wrote [$curNumberWritten] from entity : $curEntityName")
TransactionUtil.commit(beganTransaction)
} catch (Exception e) {
@@ -258,7 +257,6 @@ if (passedEntityNames) {
fileName = preConfiguredSetName ? UtilFormatOut.formatPaddedNumber((long) fileNumber, 3) + '_' : ''
fileName = fileName + curEntityName
- values = null
beganTransaction = false
try {
beganTransaction = TransactionUtil.begin(3600)
@@ -268,47 +266,48 @@ if (passedEntityNames) {
results.add("[$fileNumber] [vvv] $curEntityName skipping view entity")
return
}
- if (me.getNoAutoStamp() || me instanceof ModelViewEntity) {
- values = delegator.find(curEntityName, null, null, null, null, efo)
- } else {
- values = delegator.find(curEntityName, entityDateCond, null, null, null, efo)
+ entityQuery = EntityQuery.use(delegator).from(curEntityName).cursorScrollInsensitive()
+ if (!me.getNoAutoStamp() && !(me instanceof ModelViewEntity) && entityDateCond) {
+ entityQuery.where(entityDateCond)
}
isFirst = true
writer = null
fileSplitNumber = 1
- while ((value = values.next()) != null) {
- //Don't bother writing the file if there's nothing
- //to put into it
- if (isFirst) {
- writer = new PrintWriter(
- new BufferedWriter(
- new OutputStreamWriter(new FileOutputStream(new File(outdir, fileName + '.xml')), 'UTF-8')))
- writer.println('')
- writer.println('')
- isFirst = false
- }
- value.writeXmlText(writer, '')
- numberWritten++
+ entityQuery.queryIterator().withCloseable { values ->
+ while ((value = values.next()) != null) {
+ //Don't bother writing the file if there's nothing
+ //to put into it
+ if (isFirst) {
+ writer = new PrintWriter(
+ new BufferedWriter(
+ new OutputStreamWriter(new FileOutputStream(new File(outdir, fileName + '.xml')), 'UTF-8')))
+ writer.println('')
+ writer.println('')
+ isFirst = false
+ }
+ value.writeXmlText(writer, '')
+ numberWritten++
- // split into small files
- if (maxRecordsPerFile > 0 && (numberWritten % maxRecordsPerFile == 0)) {
- fileSplitNumber++
- // close the file
- writer.println('')
- writer.close()
+ // split into small files
+ if (maxRecordsPerFile > 0 && (numberWritten % maxRecordsPerFile == 0)) {
+ fileSplitNumber++
+ // close the file
+ writer.println('')
+ writer.close()
- // create a new file
- splitNumStr = UtilFormatOut.formatPaddedNumber((long) fileSplitNumber, 3)
- writer = new PrintWriter(
- new BufferedWriter(
- new OutputStreamWriter(
- new FileOutputStream(new File(outdir, fileName + '_' + splitNumStr + '.xml')), 'UTF-8')))
- writer.println('')
- writer.println('')
- }
+ // create a new file
+ splitNumStr = UtilFormatOut.formatPaddedNumber((long) fileSplitNumber, 3)
+ writer = new PrintWriter(
+ new BufferedWriter(
+ new OutputStreamWriter(
+ new FileOutputStream(new File(outdir, fileName + '_' + splitNumStr + '.xml')), 'UTF-8')))
+ writer.println('')
+ writer.println('')
+ }
- if (numberWritten % 500 == 0 || numberWritten == 1) {
- Debug.log("Records written [$curEntityName]: $numberWritten")
+ if (numberWritten % 500 == 0 || numberWritten == 1) {
+ Debug.log("Records written [$curEntityName]: $numberWritten")
+ }
}
}
if (writer) {
@@ -322,11 +321,7 @@ if (passedEntityNames) {
Debug.log(thisResult)
results.add(thisResult)
}
- values.close()
} catch (Exception ex) {
- if (values != null) {
- values.close()
- }
thisResult = "[$fileNumber] [xxx] Error when writing $curEntityName: $ex"
Debug.log(thisResult)
results.add(thisResult)