java/code/src/com/redhat/rhn/common/db/datasource/xml/System_queries.xml | 10
+++++-----
java/code/src/com/redhat/rhn/manager/system/SystemManager.java | 8 +++++++-
2 files changed, 12 insertions(+), 6 deletions(-)
New commits:
commit 5c8acab5438496c77ea1dda2c4e2ec02e5c60efd
Author: Justin Sherrill <jsherril(a)redhat.com>
Date: Mon Jul 26 15:25:55 2010 -0400
616267 - fixing issue where system.listPackages api call would return nothing if the
client had not uploaded the arch for the installed packages (older rhel 4 clients)
diff --git a/java/code/src/com/redhat/rhn/common/db/datasource/xml/System_queries.xml
b/java/code/src/com/redhat/rhn/common/db/datasource/xml/System_queries.xml
index 35b3d85..d1032ab 100644
--- a/java/code/src/com/redhat/rhn/common/db/datasource/xml/System_queries.xml
+++ b/java/code/src/com/redhat/rhn/common/db/datasource/xml/System_queries.xml
@@ -1284,14 +1284,14 @@ ORDER BY UPPER(S.name)
SELECT PN.name,
PE.version,
PE.release,
- NVL(PE.epoch, ' ') as epoch,
+ coalesce(PE.epoch, ' ') as epoch,
PA.name as arch,
SP.installtime
- FROM rhnPackageName PN, rhnPackageEVR PE, rhnServerPackage SP, rhnPackageArch PA
+ FROM rhnServerPackage SP inner join
+ rhnPackageName PN on PN.id = SP.name_id inner join
+ rhnPackageEVR PE on PE.id = SP.evr_id left join
+ rhnPackageArch PA on SP.package_arch_id = PA.id
WHERE SP.server_id = :sid
- AND PN.id = SP.name_id
- AND PE.id = SP.evr_id
- AND PA.id = SP.package_arch_id
ORDER BY PN.name, PE.evr
</query>
</mode>
diff --git a/java/code/src/com/redhat/rhn/manager/system/SystemManager.java
b/java/code/src/com/redhat/rhn/manager/system/SystemManager.java
index 2092303..1bb9557 100644
--- a/java/code/src/com/redhat/rhn/manager/system/SystemManager.java
+++ b/java/code/src/com/redhat/rhn/manager/system/SystemManager.java
@@ -230,7 +230,13 @@ public class SystemManager extends BaseManager {
Map.class);
Map params = new HashMap();
params.put("sid", sid);
- return m.execute(params);
+ DataResult<Map> pkgs = m.execute(params);
+ for (Map pkg : pkgs) {
+ if (pkg.get("arch") == null) {
+ pkg.put("arch",
LocalizationService.getInstance().getMessage("Unknown"));
+ }
+ }
+ return pkgs;
}
/**