You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oodt.apache.org by "Thomas Bennett (Updated) (JIRA)" <ji...@apache.org> on 2012/03/29 08:37:31 UTC
[jira] [Updated] (OODT-433) filemgr.getProductByName returns empty
product references which results in a bug in --retrieveFilesByName and
--retrieveFilesById
[ https://issues.apache.org/jira/browse/OODT-433?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Thomas Bennett updated OODT-433:
--------------------------------
Comment: was deleted
(was: Hey Brian,
+1 from me to. Excellent idea! Thats a really neat solution and makes perfect sense.)
> filemgr.getProductByName returns empty product references which results in a bug in --retrieveFilesByName and --retrieveFilesById
> ---------------------------------------------------------------------------------------------------------------------------------
>
> Key: OODT-433
> URL: https://issues.apache.org/jira/browse/OODT-433
> Project: OODT
> Issue Type: Bug
> Components: file manager
> Affects Versions: 0.4
> Reporter: Thomas Bennett
> Assignee: Thomas Bennett
> Priority: Minor
> Labels: patch
> Fix For: 0.4
>
>
> --retrieveFilesByName and --retrieveFilesById have a bug.
> Sequence of events:
> Here's the command that I ran:
> filemgr-client --url http://localhost:9101 --operation --retrieveFilesByName --productName 1332838758.h5 --destination /home/kat/ --transferer org.apache.oodt.cas.filemgr.datatransfer.LocalDataTransferFactory
> So, the --retrieveFilesByName calls an XML-RPC "filemgr.getProductByName" to get the product details. However on the File Manager side in org.apache.oodt.cas.filemgr.catalog.LuceneCatalog.java line 412 and 415:
> return getProductByName(productName, false) /*where the call signature is (defined on line 415 of the same file)*/
> getProductByName(String productName, boolean getRefs)
> getRefs is now passed (as false) as a parameter to the toCompleteProduct(..) method, which seems to indicate that the product references should not be returned.
> This is then received by the filemgr client in the methodResponse with the references set as [] i.e. an empty list :)
> On the client side in org.apache.oodt.cas.filemgr.datatransfer.LocalDataTransferer.java line 358 and 359 of the copyFilesToDir() method:
> List<Reference> refs = product.getProductReferences();
> for (Iterator<Reference> i = refs.iterator(); i.hasNext();)
> Since refs is empty the for loop loops zero times.
> Then a bit further up the call chain in org.apache.oodt.cas.filemgr.cli.action.RetrieveFilesCliAction.java line 55 to 60:
> if (product != null) {
> dt.retrieveProduct(product, destination);
> } else {
> throw new Exception("Product was not found");
> }
> dt.retrieveProduct(product, destination);
> It appears that dt.retrieveProduct is called a second time outside the if / else statement.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira