java/code/src/com/redhat/rhn/frontend/xmlrpc/channel/software/ChannelSoftwareHandler.java
| 7 ----
java/code/src/com/redhat/rhn/manager/channel/ChannelEditor.java
| 16 +++++++---
2 files changed, 13 insertions(+), 10 deletions(-)
New commits:
commit 248aa632f6ad1fce21f916e5c8750ff21a29c8f2
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Wed Mar 23 10:43:59 2011 +0100
make sure we work with long ids when removing packages
diff --git
a/java/code/src/com/redhat/rhn/frontend/xmlrpc/channel/software/ChannelSoftwareHandler.java
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/channel/software/ChannelSoftwareHandler.java
index 6863d6e..7914dba 100644
---
a/java/code/src/com/redhat/rhn/frontend/xmlrpc/channel/software/ChannelSoftwareHandler.java
+++
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/channel/software/ChannelSoftwareHandler.java
@@ -1117,12 +1117,7 @@ public class ChannelSoftwareHandler extends BaseHandler {
// Try to add the list of packages to the channel. Catch any exceptions and
// convert to FaultExceptions
try {
- // we need long values to pass
- List<Long> longPackageIds = new ArrayList();
- for (Iterator it = packageIds.iterator(); it.hasNext();) {
- longPackageIds.add(new Long((Integer) it.next()));
- }
- ChannelEditor.getInstance().addPackages(loggedInUser, channel,
longPackageIds);
+ ChannelEditor.getInstance().addPackages(loggedInUser, channel, packageIds);
}
catch (PermissionException e) {
throw new PermissionCheckFailureException(e.getMessage());
diff --git a/java/code/src/com/redhat/rhn/manager/channel/ChannelEditor.java
b/java/code/src/com/redhat/rhn/manager/channel/ChannelEditor.java
index c84a98c..b7fb4cc 100644
--- a/java/code/src/com/redhat/rhn/manager/channel/ChannelEditor.java
+++ b/java/code/src/com/redhat/rhn/manager/channel/ChannelEditor.java
@@ -24,8 +24,10 @@ import com.redhat.rhn.domain.user.User;
import com.redhat.rhn.manager.rhnpackage.PackageManager;
import com.redhat.rhn.manager.user.UserManager;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -92,19 +94,25 @@ public class ChannelEditor {
throw pex;
}
+ // make sure we work with long ids
+ List<Long> longPackageIds = new ArrayList();
+ for (Iterator it = packageIds.iterator(); it.hasNext();) {
+ longPackageIds.add(new Long((Integer) it.next()));
+ }
+
List<Long> existingPids = ChannelFactory.getPackageIds(channel.getId());
if (add) {
- packageIds.removeAll(existingPids);
+ longPackageIds.removeAll(existingPids);
}
PackageManager.verifyPackagesChannelArchCompatAndOrgAccess(user,
- channel, (List<Long>) packageIds, add);
+ channel, longPackageIds, add);
if (add) {
- ChannelManager.addPackages(channel, (List<Long>) packageIds, user);
+ ChannelManager.addPackages(channel, longPackageIds, user);
}
else {
- ChannelManager.removePackages(channel, (List<Long>) packageIds, user);
+ ChannelManager.removePackages(channel, longPackageIds, user);
}
// Mark the affected channel to have it smetadata evaluated, where necessary