Author: jleroux
Date: Fri Sep 20 08:52:08 2013
New Revision: 1524950

URL: http://svn.apache.org/r1524950
Log:
For "If you clear the last packed item from from a shipment with two items and 
then complete the pack, you get the exception below" 
https://issues.apache.org/jira/browse/OFBIZ-5308


If you clear the last packed item from from a shipment with two items and then 
complete the pack, you get the exception below:

Exception thrown while creating the "newEntity" ....ShipmentPackageContent ... 
Key ... is not present in table shipment_package

This is happening because org.ofbiz.shipment.packing.PackingSession.clearLine() 
around line 600 is decrementing packageSeq from 1 to zero.  This causes 
createPackages() to not generate any ShipmentPackages because of the for 
statement on packageSeq and therefore the subsequent exception.

I fixed this by just commenting out the block starting with "if(line.packageSeq 
==".  I did not submit a patch because I do not fully understand the logic and 
do not have time now to learn it now.

Hopefully the author will be better equipped to deal with it properly.

Skip

jleroux: the path's author (https://issues.apache.org/jira/browse/OFBIZ-2163) 
Karim Rahimpur  did not answer. But by analogy with clearAllLines I decided 
that packageSeq should not be less than 1!

Modified:
    
ofbiz/trunk/applications/product/src/org/ofbiz/shipment/packing/PackingSession.java

Modified: 
ofbiz/trunk/applications/product/src/org/ofbiz/shipment/packing/PackingSession.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/shipment/packing/PackingSession.java?rev=1524950&r1=1524949&r2=1524950&view=diff
==============================================================================
--- 
ofbiz/trunk/applications/product/src/org/ofbiz/shipment/packing/PackingSession.java
 (original)
+++ 
ofbiz/trunk/applications/product/src/org/ofbiz/shipment/packing/PackingSession.java
 Fri Sep 20 08:52:08 2013
@@ -590,7 +590,7 @@ public class PackingSession implements j
             }
             this.packageWeights.put(line.packageSeq, packageWeight);
         }
-        if (line.packageSeq == packageSeq) {
+        if (line.packageSeq == packageSeq && packageSeq > 1) {
             packageSeq--;
         }
     }


Reply via email to