[ 
https://issues.apache.org/jira/browse/MRESOLVER-362?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17726555#comment-17726555
 ] 

Tamas Cservenak commented on MRESOLVER-362:
-------------------------------------------

So far, to me it seems is bug in your JarSkippingTransportFactory, it violates 
API contract. The reproducer passes OK when I comment out these lines:

[https://github.com/snicoll-scratches/MRESOLVER-362/blob/main/src/main/java/com/example/mresolver362/DependencyResolver.java#L250-L252]

For ref, I have locally this:
{noformat}
          @Override
          public void get(GetTask task) throws Exception {
//           if (task.getLocation().getPath().endsWith(".jar")) {
//              return;
//           }
             this.delegate.get(task);
          } {noformat}
Problem occurs later, as from debug logs (thanks for setting that up!) it 
becomes apparent, that resolver NEVER asks for JAR, but does these two requests:

GET 
https://repo.spring.io/snapshot/org/springframework/cloud/spring-cloud-contract-stub-runner/4.0.3/spring-cloud-contract-stub-runner-4.0.3.jar.sha1
 (receives 404)

GET 
https://repo.spring.io/snapshot/org/springframework/cloud/spring-cloud-contract-stub-runner/4.0.3/spring-cloud-contract-stub-runner-4.0.3.jar.md5
 (receives 404)

Then it reports validation error (as validation is WARN, so is reported and it 
goes on)
{noformat}
 2023-05-26 10:31:11,049 WARN [main] o.e.a.i.i.WarnChecksumPolicy 
[WarnChecksumPolicy.java : 35] -- Could not validate integrity of download from 
https://repo.spring.io/snapshot/org/springframework/cloud/spring-cloud-contract-stub-runner/4.0.3/spring-clou
d-contract-stub-runner-4.0.3.jar
org.eclipse.aether.transfer.ChecksumFailureException: Checksum validation 
failed, no checksums available
        at 
org.eclipse.aether.internal.impl.AbstractChecksumPolicy.onNoMoreChecksums(AbstractChecksumPolicy.java:63)
{noformat}
and finally it arrives here: 
[https://github.com/apache/maven-resolver/blob/maven-resolver-1.9.10/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java#L500]

Now, the problem is, that at this point, code expected: that "main payload" is 
downloaded, as transport did not throw anything (it was just return). This is 
violation of transport contract.

https://github.com/apache/maven-resolver/blob/maven-resolver-1.9.10/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/Transporter.java#L74-L81

No, as I see, you want POMs only? Or even only GAs? Or this is just for demo 
purposes?

> NoSuchFileException moving .tmp to .jar
> ---------------------------------------
>
>                 Key: MRESOLVER-362
>                 URL: https://issues.apache.org/jira/browse/MRESOLVER-362
>             Project: Maven Resolver
>          Issue Type: Bug
>    Affects Versions: 1.9.10
>            Reporter: Stephane Nicoll
>            Priority: Major
>             Fix For: 1.9.11
>
>
> It looks like MRESOLVER-290 broke our metadata verification tests. We have a 
> test that uses the resolver API to collect a bunch of dependencies, and 
> checking the state is correct. Since the upgrade to 1.9 we get this
> {noformat}
> Caused by: org.eclipse.aether.transfer.ArtifactTransferException: Could not 
> transfer artifact 
> org.springframework.boot:spring-boot-starter:jar:3.0.8-20230525.115211-13 
> from/to spring-snapshots (https://repo.spring.io/snapshot): 
> /var/folders/46/2wr2nf9x0nzd1220xfnp1nzr0000gn/T/metadata-validation-m28912614894186841938/org/springframework/boot/spring-boot-starter/3.0.8-SNAPSHOT/spring-boot-starter-3.0.8-20230525.115211-13.jar.4959477968260906889.tmp
>  -> 
> /var/folders/46/2wr2nf9x0nzd1220xfnp1nzr0000gn/T/metadata-validation-m28912614894186841938/org/springframework/boot/spring-boot-starter/3.0.8-SNAPSHOT/spring-boot-starter-3.0.8-20230525.115211-13.jar
>       at 
> org.eclipse.aether.connector.basic.ArtifactTransportListener.transferFailed(ArtifactTransportListener.java:44)
>       at 
> org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:417)
>       at 
> org.eclipse.aether.connector.basic.BasicRepositoryConnector.get(BasicRepositoryConnector.java:260)
>       at 
> org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:536)
>       at 
> org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:448)
>       ... 45 more
> Caused by: java.nio.file.NoSuchFileException: 
> /var/folders/46/2wr2nf9x0nzd1220xfnp1nzr0000gn/T/metadata-validation-m28912614894186841938/org/springframework/boot/spring-boot-starter/3.0.8-SNAPSHOT/spring-boot-starter-3.0.8-20230525.115211-13.jar.4959477968260906889.tmp
>  -> 
> /var/folders/46/2wr2nf9x0nzd1220xfnp1nzr0000gn/T/metadata-validation-m28912614894186841938/org/springframework/boot/spring-boot-starter/3.0.8-SNAPSHOT/spring-boot-starter-3.0.8-20230525.115211-13.jar
>       at 
> java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
>       at 
> java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
>       at java.base/sun.nio.fs.UnixCopyFile.move(UnixCopyFile.java:416)
>       at 
> java.base/sun.nio.fs.UnixFileSystemProvider.move(UnixFileSystemProvider.java:266)
>       at java.base/java.nio.file.Files.move(Files.java:1432)
>       at org.eclipse.aether.util.FileUtils$2.move(FileUtils.java:108)
>       at 
> org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask(BasicRepositoryConnector.java:500)
>       at 
> org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:414)
> {noformat}
> The test is here 
> https://github.com/spring-io/start.spring.io/tree/main/start-site-verification/src/test/java/io/spring/start/site



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to