diff --git a/subscription/src/main/java/com/ning/billing/subscription/engine/dao/DefaultSubscriptionDao.java b/subscription/src/main/java/com/ning/billing/subscription/engine/dao/DefaultSubscriptionDao.java
index b032e24..07096eb 100644
--- a/subscription/src/main/java/com/ning/billing/subscription/engine/dao/DefaultSubscriptionDao.java
+++ b/subscription/src/main/java/com/ning/billing/subscription/engine/dao/DefaultSubscriptionDao.java
@@ -192,27 +192,29 @@ public class DefaultSubscriptionDao implements SubscriptionDao {
final List<SubscriptionBundleModelDao> bundles = bundleSqlDao.getBundlesForKey(bundleKey, context);
- Iterable<UUID> result = Collections.emptyList();
final SubscriptionSqlDao subscriptionSqlDao = entitySqlDaoWrapperFactory.become(SubscriptionSqlDao.class);
- for (SubscriptionBundleModelDao cur : bundles) {
- final List<SubscriptionModelDao> subscriptions = subscriptionSqlDao.getSubscriptionsFromBundleId(cur.getId().toString(), context);
+ return Iterables.concat(Iterables.transform(bundles, new Function<SubscriptionBundleModelDao, Iterable<UUID>>() {
- final Iterable nonAddonSubscriptions = Iterables.filter(subscriptions, new Predicate<SubscriptionModelDao>() {
- @Override
- public boolean apply(final SubscriptionModelDao input) {
- return input.getCategory() != ProductCategory.ADD_ON;
- }
- });
-
- final Iterable nonAddonSubscriptionIds = Iterables.transform(nonAddonSubscriptions, new Function<SubscriptionModelDao, UUID>() {
- @Override
- public UUID apply(@Nullable final SubscriptionModelDao input) {
- return input.getId();
- }
- });
- result = Iterables.concat(result, nonAddonSubscriptionIds);
- }
- return result;
+ @Override
+ public Iterable<UUID> apply(final SubscriptionBundleModelDao cur) {
+
+ final List<SubscriptionModelDao> subscriptions = subscriptionSqlDao.getSubscriptionsFromBundleId(cur.getId().toString(), context);
+
+ final Iterable<SubscriptionModelDao> nonAddonSubscriptions = Iterables.filter(subscriptions, new Predicate<SubscriptionModelDao>() {
+ @Override
+ public boolean apply(final SubscriptionModelDao input) {
+ return input.getCategory() != ProductCategory.ADD_ON;
+ }
+ });
+
+ return Iterables.transform(nonAddonSubscriptions, new Function<SubscriptionModelDao, UUID>() {
+ @Override
+ public UUID apply(final SubscriptionModelDao input) {
+ return input.getId();
+ }
+ });
+ }
+ }));
}
});
}