[ 
https://issues.apache.org/jira/browse/OODT-626?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tom Barber updated OODT-626:
----------------------------
    Fix Version/s:     (was: 0.8)
                   0.9

> Unit tests for TestDeleteProductByName and TestDeleteProductById don't 
> override all needed methods in getClient
> ---------------------------------------------------------------------------------------------------------------
>
>                 Key: OODT-626
>                 URL: https://issues.apache.org/jira/browse/OODT-626
>             Project: OODT
>          Issue Type: Bug
>          Components: file manager
>         Environment: Mac OS X 10.8.3
> [chipotle:oodt/trunk/filemgr] mattmann% java -version
> java version "1.6.0_45"
> Java(TM) SE Runtime Environment (build 1.6.0_45-b06-451-11M4406)
> Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01-451, mixed mode)
> [chipotle:oodt/trunk/filemgr] mattmann% 
>            Reporter: Chris A. Mattmann
>             Fix For: 0.9
>
>
> While investigating a possible policy bug, I ran into the issue with the 
> following two hanging action tests:
> * TestDeleteProductByIdAction
> * TestDeleteProductByNameAction
> Take the first action test, TestDeleteProductByIdAction. While investigating, 
> I found that it hangs in this method on line 75 where it is creating a mock 
> object FalseDeleteProductByNameCliAction. 
> {code:java}
>       cliAction = new FalseDeleteProductByNameCliAction();
>       cliAction.setProductName(PRODUCT_NAME);
>       try {
>          cliAction.execute(printer);
>          fail("Expected throw CmdLineActionException");
>       } catch (CmdLineActionException ignore) {
>       }
> {code}
> The actual line it hangs in is in cliAction.execute. Looking in that line it 
> seems to hang because in AbstractDeleteProductionAction, line 50, due to this 
> code block:
> {code:java}
>          for (Reference ref : refs) {
>             if (!client.removeFile(new File(new 
> URI(ref.getDataStoreReference()))
>                   .getAbsolutePath())) {
>                throw new Exception("Failed to delete file '"
>                      + ref.getDataStoreReference() + "'");
>             }
>          }
> {code}
> Basically it seems that TestGetDeleteProductByIdAction and its subclass 
> FalseDeleteProductByNameCliAction do not define the method, removeFile, which 
> in turn is called by the above code. The only problem is that version of that 
> function that is called is the XmlRpcFileManagerClient#removeFile, which 
> actually tries to make an XmlRpc connection. Because of the code here:
> {code:java}
>                 CommonsXmlRpcTransport transport = new CommonsXmlRpcTransport(
>                         url, client);
>                 transport
>                         .setConnectionTimeout(Integer
>                                 .getInteger(
>                                         
> "org.apache.oodt.cas.filemgr.system.xmlrpc.connectionTimeout.minutes",
>                                         20).intValue() * 60 * 1000);
>                 transport
>                         .setTimeout(Integer
>                                 .getInteger(
>                                         
> "org.apache.oodt.cas.filemgr.system.xmlrpc.requestTimeout.minutes",
>                                         60).intValue() * 60 * 1000);
> {code}
> it seems like this test should hang forever, and time out (or at least for 60 
> minutes). However, we don't notice this...on tests that run on our own 
> Jenkins server:
> https://builds.apache.org/job/oodt-trunk/964/org.apache.oodt$cas-filemgr/console
> Or on some of our dev computers (e.g., Andrew Hart's ubtuntu VM). 
> Also I don't remember this failing over the past year too much and this code 
> has existed for well over this time. So, I'm stumped. In the interest of 
> helping anyone else that has this problem I attach a patch that fixes these 2 
> tests by adding local override implementations of the methods removeFile and 
> others required to intercept the calls and to stay away from XML-RPC calls.
> Brian Foster or anyone else it would be great if you can comment here.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to