addons/promote/common/src/main/java/org/commonjava/indy/promote/data/PromotionManager.java
public PathsPromoteResult resumePathsPromote( final PathsPromoteResult result, final String baseUrl )
            throws PromotionException, IndyWorkflowException
    {
        final PathsPromoteRequest request = result.getRequest();

        Future<PathsPromoteResult> future = submitResumePathsPromote( result, baseUrl );
        if ( request.isAsync() )
        {
            return new PathsPromoteResult( request ).accepted();
        }
        else
        {
            try
            {
                return future.get();
            }
            catch ( InterruptedException | ExecutionException e )
            {
                logger.error( "Path promotion resume failed: " + request.getSource() + " -> " + request.getTargetKey(), e );
                throw new PromotionException( "Execution of path promotion resume failed.", e );
            }
        }
    }
public PathsPromoteResult resumePathsPromote( final PathsPromoteResult result, final String baseUrl )
            throws PromotionException, IndyWorkflowException
    {
        final PathsPromoteRequest request = result.getRequest();

        Future<PathsPromoteResult> future = submitResumePathsPromote( result, baseUrl );
        if ( request.isAsync() )
        {
            return new PathsPromoteResult( request ).accepted();
        }
        else
        {
            try
            {
                return future.get();
            }
            catch ( InterruptedException | ExecutionException e )
            {
                logger.error( "Path promotion resume failed: " + request.getSource() + " -> " + request.getTargetKey(), e );
                throw new PromotionException( "Execution of path promotion resume failed.", e );
            }
        }
    }
public PathsPromoteResult resumePathsPromote ( final PathsPromoteResult result , final String baseUrl ) throws PromotionException , IndyWorkflowException { final PathsPromoteRequest request = result . getRequest ( ) ; Future < PathsPromoteResult > future = submitResumePathsPromote ( result , baseUrl ) ; if ( request . isAsync ( ) ) { return new PathsPromoteResult ( request ) . accepted ( ) ; } else { try { return future . get ( ) ; } catch ( InterruptedException | ExecutionException e ) { logger . error ( "Path promotion resume failed: " + request . getSource ( ) + " -> " + request . getTargetKey ( ) , e ) ; throw new PromotionException ( "Execution of path promotion resume failed." , e ) ; } } }
Attempt to resumePathsPromote from a previously failing {@link PathsPromoteResult}. This is meant to handle cases where a transient (or correctable) error
occurs on the server side, and promotion can proceed afterward. It works much like the {@link #promotePaths(PathsPromoteRequest, String)} call, using the pending
paths list from the input result as the list of paths to process. The output {@link PathsPromoteResult} contains all previous completed paths PLUS
any additional completed transfers when it is returned, thus providing a cumulative result to the user.

@param result The result to resumePathsPromote

@return The same result, with any successful path promotions moved from the pending to completed paths list, and the error cleared (or set to a
new error)

@throws PromotionException
@throws IndyWorkflowException
Attempt to resumePathsPromote from a previously failing { @link PathsPromoteResult } . This is meant to handle cases where a transient ( or correctable ) error occurs on the server side and promotion can proceed afterward . It works much like the { @link #promotePaths ( PathsPromoteRequest String ) } call using the pending paths list from the input result as the list of paths to process . The output { @link PathsPromoteResult } contains all previous completed paths PLUS any additional completed transfers when it is returned thus providing a cumulative result to the user .