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

Suresh Marru closed AIRAVATA-1864.
----------------------------------
    Resolution: Fixed

cleaning up old JIRA's, GFac is now deprecated and replaced by Apache Helix 
based DAGs

> GFAC-core - fix to NPE when no DataMovementInterfaces defined
> -------------------------------------------------------------
>
>                 Key: AIRAVATA-1864
>                 URL: https://issues.apache.org/jira/browse/AIRAVATA-1864
>             Project: Airavata
>          Issue Type: Bug
>          Components: GFac
>    Affects Versions: 0.15
>         Environment: java gfac core 
>            Reporter: Emre Brookes
>            Assignee: Suresh Marru
>            Priority: Major
>              Labels: patch
>             Fix For: 0.17
>
>
> In BetterGfacImpl.java,  job submission protocol is being checked as part of 
> data movement protocol setting.  I believe you want to check if the data 
> movement protocol is null.  Also, the .get(0) will throw an NPE if you don't 
> check that the getHostPrioritizedDataMovementInterfaces() has at least one 
> element (in this case I'm checking for not null && not empty).
> Likely, similar code should be applied to the previous .get(0) in the job 
> submission protocol previous to this block. 
> Here's the patch as a simple diff -u
> --- BetterGfacImpl.java~        2015-10-28 12:39:17.586646368 -0500
> +++ BetterGfacImpl.java 2015-10-29 15:01:48.300713817 -0500
> @@ -345,7 +345,7 @@
>              // set gatewayUserPreferred data movement protocol and interface
> jobExecutionContext.setPreferredDataMovementProtocol(gatewayResourcePreferences.getPreferredDataMovementProtocol());
> -            if 
> (gatewayResourcePreferences.getPreferredJobSubmissionProtocol() == null) {
> +            if 
> (gatewayResourcePreferences.getPreferredDataMovementProtocol() == null && 
> jobExecutionContext.getHostPrioritizedDataMovementInterfaces() != null && 
> !jobExecutionContext.getHostPrioritizedDataMovementInterfaces().isEmpty() ) {
> jobExecutionContext.setPreferredDataMovementInterface(jobExecutionContext.getHostPrioritizedDataMovementInterfaces().get(0));
>                  if (jobExecutionContext.getPreferredDataMovementInterface() 
> != null){
> jobExecutionContext.setPreferredDataMovementProtocol(jobExecutionContext.getPreferredDataMovementInterface().getDataMovementProtocol());
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to