Author: jleroux
Date: Sun Jun 11 10:12:32 2017 New Revision: 1798353 URL: http://svn.apache.org/viewvc?rev=1798353&view=rev Log: Fixed: ERROR: Cannot do a find that returns an EntityListIterator with no transaction in place (OFBIZ-9286) While "Use try-with-resources statement wherever it's possible" I missed that you must begin the transaction before the try-with-resources, this fixes last cases, lesson learned! Modified: ofbiz/ofbiz-framework/trunk/applications/content/src/main/java/org/apache/ofbiz/content/survey/SurveyWrapper.java ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/product/product/ProductEvents.java Modified: ofbiz/ofbiz-framework/trunk/applications/content/src/main/java/org/apache/ofbiz/content/survey/SurveyWrapper.java URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/content/src/main/java/org/apache/ofbiz/content/survey/SurveyWrapper.java?rev=1798353&r1=1798352&r2=1798353&view=diff ============================================================================== --- ofbiz/ofbiz-framework/trunk/applications/content/src/main/java/org/apache/ofbiz/content/survey/SurveyWrapper.java (original) +++ ofbiz/ofbiz-framework/trunk/applications/content/src/main/java/org/apache/ofbiz/content/survey/SurveyWrapper.java Sun Jun 11 10:12:32 2017 @@ -43,6 +43,7 @@ import org.apache.ofbiz.entity.GenericEn import org.apache.ofbiz.entity.GenericValue; import org.apache.ofbiz.entity.condition.EntityCondition; import org.apache.ofbiz.entity.condition.EntityOperator; +import org.apache.ofbiz.entity.transaction.GenericTransactionException; import org.apache.ofbiz.entity.transaction.TransactionUtil; import org.apache.ofbiz.entity.util.EntityListIterator; import org.apache.ofbiz.entity.util.EntityQuery; @@ -398,8 +399,12 @@ public class SurveyWrapper { List<GenericValue> resp = null; boolean beganTransaction = false; int maxRows = startIndex + number; - try (EntityListIterator eli = this.getEli(question, maxRows)) { + try { beganTransaction = TransactionUtil.begin(); + } catch (GenericTransactionException gte) { + Debug.logError(gte, "Unable to begin transaction", module); + } + try (EntityListIterator eli = this.getEli(question, maxRows)) { if (startIndex > 0 && number > 0) { resp = eli.getPartialList(startIndex, number); } else { @@ -574,9 +579,13 @@ public class SurveyWrapper { // index 2 = average boolean beganTransaction = false; - try (EntityListIterator eli = this.getEli(question, -1)) { + try { beganTransaction = TransactionUtil.begin(); - + } catch (GenericTransactionException gte) { + Debug.logError(gte, "Unable to begin transaction", module); + } + + try (EntityListIterator eli = this.getEli(question, -1)) { if (eli != null) { GenericValue value; while (((value = eli.next()) != null)) { @@ -660,8 +669,13 @@ public class SurveyWrapper { long total = 0; boolean beganTransaction = false; - try (EntityListIterator eli = this.getEli(question, -1)) { + try { beganTransaction = TransactionUtil.begin(); + } catch (GenericTransactionException gte) { + Debug.logError(gte, "Unable to begin transaction", module); + } + + try (EntityListIterator eli = this.getEli(question, -1)) { if (eli != null) { GenericValue value; while (((value = eli.next()) != null)) { Modified: ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/product/product/ProductEvents.java URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/product/product/ProductEvents.java?rev=1798353&r1=1798352&r2=1798353&view=diff ============================================================================== --- ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/product/product/ProductEvents.java (original) +++ ofbiz/ofbiz-framework/trunk/applications/product/src/main/java/org/apache/ofbiz/product/product/ProductEvents.java Sun Jun 11 10:12:32 2017 @@ -113,9 +113,13 @@ public class ProductEvents { int errProds = 0; boolean beganTx = false; - try (EntityListIterator entityListIterator = EntityQuery.use(delegator).from("Product").where(condition).queryIterator()) { + try { // begin the transaction beganTx = TransactionUtil.begin(7200); + } catch (GenericTransactionException gte) { + Debug.logError(gte, "Unable to begin transaction", module); + } + try (EntityListIterator entityListIterator = EntityQuery.use(delegator).from("Product").where(condition).queryIterator()) { try { if (Debug.infoOn()) { long count = EntityQuery.use(delegator).from("Product").where(condition).queryCount(); @@ -126,7 +130,7 @@ public class ProductEvents { Map<String, String> messageMap = UtilMisc.toMap("gee", gee.toString()); errMsg = UtilProperties.getMessage(resource,"productevents.error_getting_product_list", messageMap, UtilHttp.getLocale(request)); request.setAttribute("_ERROR_MESSAGE_", errMsg); - throw gee; + return "error"; } GenericValue product; |
Free forum by Nabble | Edit this page |