Details
diff --git a/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoiceGenerator.java b/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoiceGenerator.java
index 331372a..4ae49e9 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoiceGenerator.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoiceGenerator.java
@@ -92,10 +92,18 @@ public class DefaultInvoiceGenerator implements InvoiceGenerator {
while (proposedItemIterator.hasNext()) {
InvoiceItem proposedItem = proposedItemIterator.next();
- if (existingInvoiceItems.contains(proposedItem)) {
- existingInvoiceItems.remove(proposedItem);
- proposedItemIterator.remove();
+ Iterator<InvoiceItem> existingItemIterator = existingInvoiceItems.iterator();
+ while (existingItemIterator.hasNext()) {
+ InvoiceItem existingItem = existingItemIterator.next();
+ if (existingItem.equals(proposedItem)) {
+ existingItemIterator.remove();
+ proposedItemIterator.remove();
+ }
}
+// if (existingInvoiceItems.contains(proposedItem)) {
+// existingInvoiceItems.remove(proposedItem);
+// proposedItemIterator.remove();
+// }
}
}
diff --git a/invoice/src/main/java/com/ning/billing/invoice/model/FixedPriceInvoiceItem.java b/invoice/src/main/java/com/ning/billing/invoice/model/FixedPriceInvoiceItem.java
index 2b7c12a..2265abd 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/model/FixedPriceInvoiceItem.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/model/FixedPriceInvoiceItem.java
@@ -107,10 +107,10 @@ public class FixedPriceInvoiceItem extends InvoiceItemBase {
FixedPriceInvoiceItem that = (FixedPriceInvoiceItem) o;
- if (amount != null ? !amount.equals(that.amount) : that.amount != null) return false;
+ if (amount != null ? amount.compareTo(that.amount) != 0 : that.amount != null) return false;
if (currency != that.currency) return false;
- if (startDate != null ? !startDate.equals(that.startDate) : that.startDate != null) return false;
- if (endDate != null ? !endDate.equals(that.endDate) : that.endDate != null) return false;
+ if (startDate != null ? startDate.compareTo(that.startDate) != 0 : that.startDate != null) return false;
+ if (endDate != null ? endDate.compareTo(that.endDate) != 0 : that.endDate != null) return false;
if (phaseName != null ? !phaseName.equals(that.phaseName) : that.phaseName != null) return false;
if (planName != null ? !planName.equals(that.planName) : that.planName != null) return false;
if (subscriptionId != null ? !subscriptionId.equals(that.subscriptionId) : that.subscriptionId != null)
diff --git a/invoice/src/main/java/com/ning/billing/invoice/model/RecurringInvoiceItem.java b/invoice/src/main/java/com/ning/billing/invoice/model/RecurringInvoiceItem.java
index 55e5487..93ef474 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/model/RecurringInvoiceItem.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/model/RecurringInvoiceItem.java
@@ -114,15 +114,15 @@ public class RecurringInvoiceItem extends InvoiceItemBase {
RecurringInvoiceItem that = (RecurringInvoiceItem) o;
- if (!amount.equals(that.amount)) return false;
+ if (amount.compareTo(that.amount) != 0) return false;
if (currency != that.currency) return false;
- if (!endDate.equals(that.endDate)) return false;
+ if (startDate.compareTo(that.startDate) != 0) return false;
+ if (endDate.compareTo(that.endDate) != 0) return false;
if (!phaseName.equals(that.phaseName)) return false;
if (!planName.equals(that.planName)) return false;
- if (!rate.equals(that.rate)) return false;
+ if (rate.compareTo(that.rate) != 0) return false;
if (reversedItemId != null ? !reversedItemId.equals(that.reversedItemId) : that.reversedItemId != null)
return false;
- if (!startDate.equals(that.startDate)) return false;
if (!subscriptionId.equals(that.subscriptionId)) return false;
return true;