@@ -25,7 +25,7 @@ import org.apache.ofbiz.entity.condition.EntityCondition
2525import org.apache.ofbiz.entity.condition.EntityJoinOperator
2626import org.apache.ofbiz.entity.model.ModelViewEntity
2727import org.apache.ofbiz.entity.transaction.TransactionUtil
28- import org.apache.ofbiz.entity.util.EntityFindOptions
28+ import org.apache.ofbiz.entity.util.EntityQuery
2929
3030outpath = parameters. outpath
3131filename = parameters. filename
@@ -188,7 +188,6 @@ if (passedEntityNames) {
188188 session. setAttribute(' xmlrawdump_entitylist' , passedEntityNames)
189189 session. setAttribute(' entityDateCond' , entityDateCond)
190190 } else {
191- efo = new EntityFindOptions (true , EntityFindOptions . TYPE_SCROLL_INSENSITIVE , EntityFindOptions . CONCUR_READ_ONLY , false )
192191 numberOfEntities = passedEntityNames?. size() ?: 0
193192 context. numberOfEntities = numberOfEntities
194193 numberWritten = 0
@@ -213,22 +212,22 @@ if (passedEntityNames) {
213212 beganTransaction = TransactionUtil . begin(3600 )
214213 try {
215214 me = reader. getModelEntity(curEntityName)
216- if (me. getNoAutoStamp() || me instanceof ModelViewEntity ) {
217- values = delegator. find(curEntityName, null , null , null , null , efo)
218- } else {
219- values = delegator. find(curEntityName, entityDateCond, null , null , null , efo)
215+ entityQuery = EntityQuery . use(delegator). from(curEntityName). cursorScrollInsensitive()
216+ if (! me. getNoAutoStamp() && ! (me instanceof ModelViewEntity ) && entityDateCond) {
217+ entityQuery. where(entityDateCond)
220218 }
221219
222220 curNumberWritten = 0
223- while ((value = values. next()) != null ) {
224- value. writeXmlText(writer, ' ' )
225- numberWritten++
226- curNumberWritten++
227- if (curNumberWritten % 500 == 0 || curNumberWritten == 1 ) {
228- Debug . log(" Records written [$curEntityName ]: $curNumberWritten Total: $numberWritten " )
221+ entityQuery. queryIterator(). withCloseable { values ->
222+ while ((value = values. next()) != null ) {
223+ value. writeXmlText(writer, ' ' )
224+ numberWritten++
225+ curNumberWritten++
226+ if (curNumberWritten % 500 == 0 || curNumberWritten == 1 ) {
227+ Debug . log(" Records written [$curEntityName ]: $curNumberWritten Total: $numberWritten " )
228+ }
229229 }
230230 }
231- values. close()
232231 Debug . log(" Wrote [$curNumberWritten ] from entity : $curEntityName " )
233232 TransactionUtil . commit(beganTransaction)
234233 } catch (Exception e) {
@@ -258,7 +257,6 @@ if (passedEntityNames) {
258257 fileName = preConfiguredSetName ? UtilFormatOut . formatPaddedNumber((long ) fileNumber, 3 ) + ' _' : ' '
259258 fileName = fileName + curEntityName
260259
261- values = null
262260 beganTransaction = false
263261 try {
264262 beganTransaction = TransactionUtil . begin(3600 )
@@ -268,47 +266,48 @@ if (passedEntityNames) {
268266 results. add(" [$fileNumber ] [vvv] $curEntityName skipping view entity" )
269267 return
270268 }
271- if (me. getNoAutoStamp() || me instanceof ModelViewEntity ) {
272- values = delegator. find(curEntityName, null , null , null , null , efo)
273- } else {
274- values = delegator. find(curEntityName, entityDateCond, null , null , null , efo)
269+ entityQuery = EntityQuery . use(delegator). from(curEntityName). cursorScrollInsensitive()
270+ if (! me. getNoAutoStamp() && ! (me instanceof ModelViewEntity ) && entityDateCond) {
271+ entityQuery. where(entityDateCond)
275272 }
276273 isFirst = true
277274 writer = null
278275 fileSplitNumber = 1
279- while ((value = values. next()) != null ) {
280- // Don't bother writing the file if there's nothing
281- // to put into it
282- if (isFirst) {
283- writer = new PrintWriter (
284- new BufferedWriter (
285- new OutputStreamWriter (new FileOutputStream (new File (outdir, fileName + ' .xml' )), ' UTF-8' )))
286- writer. println (' <?xml version="1.0" encoding="UTF-8"?>' )
287- writer. println (' <entity-engine-xml>' )
288- isFirst = false
289- }
290- value. writeXmlText(writer, ' ' )
291- numberWritten++
276+ entityQuery. queryIterator(). withCloseable { values ->
277+ while ((value = values. next()) != null ) {
278+ // Don't bother writing the file if there's nothing
279+ // to put into it
280+ if (isFirst) {
281+ writer = new PrintWriter (
282+ new BufferedWriter (
283+ new OutputStreamWriter (new FileOutputStream (new File (outdir, fileName + ' .xml' )), ' UTF-8' )))
284+ writer. println (' <?xml version="1.0" encoding="UTF-8"?>' )
285+ writer. println (' <entity-engine-xml>' )
286+ isFirst = false
287+ }
288+ value. writeXmlText(writer, ' ' )
289+ numberWritten++
292290
293- // split into small files
294- if (maxRecordsPerFile > 0 && (numberWritten % maxRecordsPerFile == 0 )) {
295- fileSplitNumber++
296- // close the file
297- writer. println (' </entity-engine-xml>' )
298- writer. close()
291+ // split into small files
292+ if (maxRecordsPerFile > 0 && (numberWritten % maxRecordsPerFile == 0 )) {
293+ fileSplitNumber++
294+ // close the file
295+ writer. println (' </entity-engine-xml>' )
296+ writer. close()
299297
300- // create a new file
301- splitNumStr = UtilFormatOut . formatPaddedNumber((long ) fileSplitNumber, 3 )
302- writer = new PrintWriter (
303- new BufferedWriter (
304- new OutputStreamWriter (
305- new FileOutputStream (new File (outdir, fileName + ' _' + splitNumStr + ' .xml' )), ' UTF-8' )))
306- writer. println (' <?xml version="1.0" encoding="UTF-8"?>' )
307- writer. println (' <entity-engine-xml>' )
308- }
298+ // create a new file
299+ splitNumStr = UtilFormatOut . formatPaddedNumber((long ) fileSplitNumber, 3 )
300+ writer = new PrintWriter (
301+ new BufferedWriter (
302+ new OutputStreamWriter (
303+ new FileOutputStream (new File (outdir, fileName + ' _' + splitNumStr + ' .xml' )), ' UTF-8' )))
304+ writer. println (' <?xml version="1.0" encoding="UTF-8"?>' )
305+ writer. println (' <entity-engine-xml>' )
306+ }
309307
310- if (numberWritten % 500 == 0 || numberWritten == 1 ) {
311- Debug . log(" Records written [$curEntityName ]: $numberWritten " )
308+ if (numberWritten % 500 == 0 || numberWritten == 1 ) {
309+ Debug . log(" Records written [$curEntityName ]: $numberWritten " )
310+ }
312311 }
313312 }
314313 if (writer) {
@@ -322,11 +321,7 @@ if (passedEntityNames) {
322321 Debug . log(thisResult)
323322 results. add(thisResult)
324323 }
325- values. close()
326324 } catch (Exception ex) {
327- if (values != null ) {
328- values. close()
329- }
330325 thisResult = " [$fileNumber ] [xxx] Error when writing $curEntityName : $ex "
331326 Debug . log(thisResult)
332327 results. add(thisResult)
0 commit comments