Source:
public boolean releaseExistsForSnapshot( Gav snapshotGav, Map<String, Object> context ) { long releaseTimestamp = -1; for ( Repository repository : repositoryRegistry.getRepositories() ) { if ( repository.getRepositoryKind().isFacetAvailable( MavenHostedRepository.class ) || repository.getRepositoryKind().isFacetAvailable( MavenProxyRepository.class ) ) { MavenRepository mrepository = repository.adaptToFacet( MavenRepository.class ); if ( mrepository.isUserManaged() && RepositoryPolicy.RELEASE.equals( mrepository.getRepositoryPolicy() ) ) { try { String releaseVersion = null; if ( snapshotGav.getBaseVersion().endsWith( "-SNAPSHOT" ) ) { releaseVersion = snapshotGav.getBaseVersion().substring( 0, snapshotGav.getBaseVersion().length() - 9 ); } else { releaseVersion = snapshotGav.getBaseVersion().substring( 0, snapshotGav.getBaseVersion().length() - 8 ); } Gav releaseGav = new Gav( snapshotGav.getGroupId(), snapshotGav.getArtifactId(), releaseVersion, snapshotGav.getClassifier(), snapshotGav.getExtension(), null, null, null, false, null, false, null ); String path = mrepository.getGavCalculator().gavToPath( releaseGav ); ResourceStoreRequest req = new ResourceStoreRequest( path, true ); req.getRequestContext().putAll( context ); getLogger().debug( "Checking for release counterpart in repository '{}' and path '{}'", mrepository.getId(), req.toString() ); final StorageItem item = mrepository.retrieveItem( false, req ); releaseTimestamp = item.getCreated(); break; } catch ( ItemNotFoundException e ) { } catch ( Exception e ) { getLogger().debug( "Unexpected exception!", e ); } } } } getLogger().info( "--------- {}", snapshotGav.getName(), new Date(releaseTimestamp), new Date(startTime), new Date(releaseTimestamp + gracePeriodInMillis) ); return releaseTimestamp == 0 || ( releaseTimestamp > 0 && startTime > releaseTimestamp + gracePeriodInMillis ); }

Target:
public boolean releaseExistsForSnapshot( Gav snapshotGav, Map<String, Object> context ) { long releaseTimestamp = -1; for ( Repository repository : repositoryRegistry.getRepositories() ) { if ( repository.getRepositoryKind().isFacetAvailable( MavenHostedRepository.class ) || repository.getRepositoryKind().isFacetAvailable( MavenProxyRepository.class ) ) { MavenRepository mrepository = repository.adaptToFacet( MavenRepository.class ); if ( mrepository.isUserManaged() && RepositoryPolicy.RELEASE.equals( mrepository.getRepositoryPolicy() ) ) { try { String releaseVersion = null; if ( snapshotGav.getBaseVersion().endsWith( "-SNAPSHOT" ) ) { releaseVersion = snapshotGav.getBaseVersion().substring( 0, snapshotGav.getBaseVersion().length() - 9 ); } else { releaseVersion = snapshotGav.getBaseVersion().substring( 0, snapshotGav.getBaseVersion().length() - 8 ); } Gav releaseGav = new Gav( snapshotGav.getGroupId(), snapshotGav.getArtifactId(), releaseVersion, snapshotGav.getClassifier(), snapshotGav.getExtension(), null, null, null, false, null, false, null ); String path = mrepository.getGavCalculator().gavToPath( releaseGav ); ResourceStoreRequest req = new ResourceStoreRequest( path, true ); req.getRequestContext().putAll( context ); getLogger().debug( "Checking for release counterpart in repository '{}' and path '{}'", mrepository.getId(), req.toString() ); final StorageItem item = mrepository.retrieveItem( false, req ); releaseTimestamp = item.getCreated(); break; } catch ( ItemNotFoundException e ) { } catch ( Exception e ) { getLogger().debug( "Unexpected exception!", e ); } } } } return releaseTimestamp == 0 || ( releaseTimestamp > 0 && startTime > releaseTimestamp + gracePeriodInMillis ); }