]
Matous Jobanek commented on SHRINKRES-219:
------------------------------------------
Hi [~FroMage] I've reproduced it with the previous version. After the update to the
newer versions of Aether and Maven if the checksum doesn't match, Shrinkwrap Resolver
still warns about the mismatch but the NPE is never thrown so the artifact is resolved.
[~kpiwko] I'll create a reproducer
NPE on some metadata error due to bad checksum
----------------------------------------------
Key: SHRINKRES-219
URL:
https://issues.jboss.org/browse/SHRINKRES-219
Project: ShrinkWrap Resolvers
Issue Type: Bug
Affects Versions: 2.2.0-beta-1
Reporter: Stephane Epardaud
Assignee: Matous Jobanek
Fix For: 2.2.0-beta-2
If I try to resolve org.eclipse.jetty:jetty-util:9.2.9.v20150224 from Aether using
Shrinkwrap Resolver I get the following exceptions:
{quote}
Mar 05, 2015 11:11:09 AM
org.jboss.shrinkwrap.resolver.impl.maven.logging.LogTransferListener transferCorrupted
WARNING: Corrupted download of org/eclipse/jetty/jetty-util/maven-metadata.xml from
http://repo1.maven.org/maven2/. Reason:
org.eclipse.aether.transfer.ChecksumFailureException: Checksum validation failed,
expected aa9a47a6b065b471fa6302c2f031757fff2774d9 but is
ab31eef7c4b6c6c2b074ba461bb816b776b95458
Mar 05, 2015 11:11:09 AM
org.jboss.shrinkwrap.resolver.impl.maven.logging.LogTransferListener transferFailed
WARNING: Failed downloading org/eclipse/jetty/jetty-util/maven-metadata.xml from
http://repo1.maven.org/maven2/. Reason:
org.eclipse.aether.transfer.MetadataTransferException: Could not transfer metadata
org.eclipse.jetty:jetty-util/maven-metadata.xml from/to central
(
http://repo1.maven.org/maven2): NullPointerException
Mar 05, 2015 11:11:09 AM org.jboss.shrinkwrap.resolver.impl.maven.MavenWorkingSessionImpl
resolveVersionRange
SEVERE: Version range request failed
org.eclipse.aether.transfer.MetadataNotFoundException: Could not find metadata
org.eclipse.jetty:jetty-util/maven-metadata.xml in local (/home/stephane/.m2/repository)
at
org.eclipse.aether.internal.impl.DefaultMetadataResolver.resolve(DefaultMetadataResolver.java:260)
at
org.eclipse.aether.internal.impl.DefaultMetadataResolver.resolveMetadata(DefaultMetadataResolver.java:218)
at
org.apache.maven.repository.internal.DefaultVersionRangeResolver.getVersions(DefaultVersionRangeResolver.java:232)
at
org.apache.maven.repository.internal.DefaultVersionRangeResolver.resolveVersionRange(DefaultVersionRangeResolver.java:182)
at
org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveVersionRange(DefaultRepositorySystem.java:280)
at
org.jboss.shrinkwrap.resolver.impl.maven.bootstrap.MavenRepositorySystem.resolveVersionRange(MavenRepositorySystem.java:148)
at
org.jboss.shrinkwrap.resolver.impl.maven.MavenWorkingSessionImpl.resolveVersionRange(MavenWorkingSessionImpl.java:294)
at
org.jboss.shrinkwrap.resolver.impl.maven.MavenResolveStageBaseImpl.resolveVersionRange(MavenResolveStageBaseImpl.java:36)
at
org.jboss.shrinkwrap.resolver.impl.maven.PomlessResolveStageBaseImpl.resolveVersionRange(PomlessResolveStageBaseImpl.java:36)
at
org.jboss.shrinkwrap.resolver.impl.maven.MavenResolveStageBaseImpl.resolveVersionRange(MavenResolveStageBaseImpl.java:16)
at
org.jboss.shrinkwrap.resolver.impl.maven.MavenResolverSystemBaseImpl.resolveVersionRange(MavenResolverSystemBaseImpl.java:163)
at
org.jboss.shrinkwrap.resolver.impl.maven.MavenResolverSystemBaseImpl.resolveVersionRange(MavenResolverSystemBaseImpl.java:44)
at com.redhat.ceylon.cmr.maven.AetherUtils.search(AetherUtils.java:316)
at
com.redhat.ceylon.cmr.maven.AetherRepository.completeVersions(AetherRepository.java:118)
at
com.redhat.ceylon.cmr.impl.AbstractNodeRepositoryManager.completeVersions(AbstractNodeRepositoryManager.java:532)
at com.redhat.ceylon.cmr.ceylon.RepoUsingTool.getModuleVersions(RepoUsingTool.java:213)
at com.redhat.ceylon.tools.info.CeylonInfoTool.run(CeylonInfoTool.java:250)
at com.redhat.ceylon.tools.test.InfoToolTests.testAetherModule(InfoToolTests.java:82)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Mar 05, 2015 11:11:09 AM org.jboss.shrinkwrap.resolver.impl.maven.MavenWorkingSessionImpl
resolveVersionRange
SEVERE: Version range request failed
org.eclipse.aether.transfer.MetadataTransferException: Could not transfer metadata
org.eclipse.jetty:jetty-util/maven-metadata.xml from/to central
(
http://repo1.maven.org/maven2): NullPointerException
at
org.eclipse.aether.connector.wagon.WagonRepositoryConnector$5.wrap(WagonRepositoryConnector.java:995)
at
org.eclipse.aether.connector.wagon.WagonRepositoryConnector$5.wrap(WagonRepositoryConnector.java:983)
at
org.eclipse.aether.connector.wagon.WagonRepositoryConnector$GetTask.run(WagonRepositoryConnector.java:725)
at
org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:67)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
at
org.jboss.shrinkwrap.resolver.impl.maven.logging.LogTransferListener.transferProgressed(LogTransferListener.java:81)
at
org.eclipse.aether.connector.wagon.WagonTransferListenerAdapter.transferProgress(WagonTransferListenerAdapter.java:72)
at
org.apache.maven.wagon.events.TransferEventSupport.fireTransferProgress(TransferEventSupport.java:121)
at org.apache.maven.wagon.AbstractWagon.fireTransferProgress(AbstractWagon.java:554)
at org.apache.maven.wagon.AbstractWagon.transfer(AbstractWagon.java:539)
at org.apache.maven.wagon.AbstractWagon.getTransfer(AbstractWagon.java:354)
at org.apache.maven.wagon.AbstractWagon.getTransfer(AbstractWagon.java:317)
at org.apache.maven.wagon.AbstractWagon.getTransfer(AbstractWagon.java:286)
at org.apache.maven.wagon.StreamWagon.getIfNewer(StreamWagon.java:97)
at org.apache.maven.wagon.StreamWagon.get(StreamWagon.java:61)
at
org.eclipse.aether.connector.wagon.WagonRepositoryConnector$GetTask.run(WagonRepositoryConnector.java:660)
... 4 more
Mar 05, 2015 11:11:12 AM
org.jboss.shrinkwrap.resolver.impl.maven.logging.LogTransferListener transferFailed
WARNING: Failed downloading
javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.pom from
https://oss.sonatype.org/content/groups/jetty/. Reason:
org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find artifact
javax.servlet:javax.servlet-api:pom:3.1.0 in sonatype-snapshots
(
https://oss.sonatype.org/content/groups/jetty)
Mar 05, 2015 11:11:13 AM
org.jboss.shrinkwrap.resolver.impl.maven.logging.LogTransferListener transferFailed
WARNING: Failed downloading net/java/jvnet-parent/3/jvnet-parent-3.pom from
https://oss.sonatype.org/content/groups/jetty/. Reason:
org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find artifact
net.java:jvnet-parent:pom:3 in sonatype-snapshots
(
https://oss.sonatype.org/content/groups/jetty)
Mar 05, 2015 11:11:14 AM
org.jboss.shrinkwrap.resolver.impl.maven.logging.LogTransferListener transferFailed
WARNING: Failed downloading net/java/jvnet-parent/3/jvnet-parent-3.pom from
http://download.java.net/maven/glassfish/. Reason:
org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find artifact
net.java:jvnet-parent:pom:3 in glassfish-repository
(
http://download.java.net/maven/glassfish)
{quote}
Not sure if the checksum is a problem of Maven Central or not, but pretty sure the NPE is
a bug. As for the ArtifactNotFoundException I can't make much sense of it.
The code I use is:
{code:java}
MavenVersionRangeResult resolveVersionRange =
resolver.resolveVersionRange(groupId+":"+artifactId+":["+version+",]");
List<MavenCoordinate> versions = resolveVersionRange.getVersions();
{code}
With a resolver:
{code:java}
ConfigurableMavenResolverSystem factory =
Resolvers.use(ConfigurableMavenResolverSystem.class, classLoader);
return factory.fromClassloaderResource(settings.xml, classLoader);
{code}
And settings.xml:
{code:xml}
<settings
xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<pluginGroups/>
<servers/>
<mirrors/>
<proxies/>
<profiles/>
<activeProfiles/>
</settings>
{code}