public void fillPackageDetails(@NonNls String packageName, final AsyncCallback callback) {
   final Hashtable details = getPackageDetails(packageName);
   if (details == null) {
     final Vector<String> params = new Vector<String>();
     params.add(packageName);
     try {
       params.add(getPyPIPackages().get(packageName));
       myXmlRpcClient.executeAsync("release_data", params, callback);
     } catch (Exception ignored) {
       LOG.info(ignored);
     }
   } else callback.handleResult(details, null, "");
 }
 public void usePackageReleases(@NonNls String packageName, final AsyncCallback callback) {
   final List<String> releases = getPackageReleases(packageName);
   if (releases == null) {
     final Vector<String> params = new Vector<String>();
     params.add(packageName);
     myXmlRpcClient.executeAsync("package_releases", params, callback);
   } else {
     callback.handleResult(releases, null, "");
   }
 }