Description
The karaf-maven-plugin (tested with 4.0.3 and 4.0.4) has an issue when parsing feature xmls with <repository> entries that contain a newline and/or whitespaces.
Having an (eclipse auto-formatted) entry like
<repository>mvn:org.apache.karaf.features/enterprise/${karaf.version}/xml/features
</repository>
causes the plugin to try and create a lock file with the name <path to maven-repository>\apache\karaf\features\enterprise\4.0.4\enterprise-4.0.4-features<newline><tabulator>.xml.part.lock
which in turn causes the following exception to be thrown:
shaded.org.eclipse.aether.resolution.ArtifactResolutionException: Could not transfer artifact org.apache.karaf.features:enterprise:xml:features
:4.0.4 from/to maven-srv (http://maven-srv:8080/nexus/content/groups/kisters-central/): C:\Users\jfrank\.m2\repository\org\apache\karaf\features\enterprise\4.0.4\enterprise-4.0.4-features
.xml.part.lock (Die Syntax f▒r den Dateinamen, Verzeichnisnamen oder die Datentr▒gerbezeichnung ist falsch)
at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:444)
at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:246)
at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:223)
at shaded.org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:294)
at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:615)
at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:570)
at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:548)
at org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:523)
at org.apache.karaf.features.internal.download.impl.MavenDownloadTask.download(MavenDownloadTask.java:34)
at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:58)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: shaded.org.eclipse.aether.transfer.ArtifactTransferException: Could not transfer artifact org.apache.karaf.features:enterprise:xml:features
:4.0.4 from/to maven-srv (http://maven-srv:8080/nexus/content/groups/kisters-central/): C:\Users\jfrank\.m2\repository\org\apache\karaf\features\enterprise\4.0.4\enterprise-4.0.4-features
.xml.part.lock (Die Syntax f▒r den Dateinamen, Verzeichnisnamen oder die Datentr▒gerbezeichnung ist falsch)
at shaded.org.eclipse.aether.connector.basic.ArtifactTransportListener.transferFailed(ArtifactTransportListener.java:43)
at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:355)
at shaded.org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:67)
at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute(BasicRepositoryConnector.java:581)
at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector.get(BasicRepositoryConnector.java:249)
at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:520)
at shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:421)
... 16 more
Caused by: java.io.FileNotFoundException: C:\Users\jfrank\.m2\repository\org\apache\karaf\features\enterprise\4.0.4\enterprise-4.0.4-features
.xml.part.lock (Die Syntax f▒r den Dateinamen, Verzeichnisnamen oder die Datentr▒gerbezeichnung ist falsch)
at java.io.RandomAccessFile.open0(Native Method)
at java.io.RandomAccessFile.open(RandomAccessFile.java:316)
at java.io.RandomAccessFile.<init>(RandomAccessFile.java:243)
at shaded.org.eclipse.aether.connector.basic.PartialFile$LockFile.tryLock(PartialFile.java:123)
at shaded.org.eclipse.aether.connector.basic.PartialFile$LockFile.lock(PartialFile.java:71)
at shaded.org.eclipse.aether.connector.basic.PartialFile$LockFile.<init>(PartialFile.java:58)
at shaded.org.eclipse.aether.connector.basic.PartialFile$Factory.newInstance(PartialFile.java:210)
at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask(BasicRepositoryConnector.java:432)
at shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:350)
... 21 more
Note: the english translation of this localizied System error is "The filename, directory name, or volume label syntax is incorrect." which is no surprise, given that the filename is containing a new-line.
Using the <repository> tag like this:
<repository>mvn:org.apache.karaf.features/enterprise/${karaf.version}/xml/features</repository>
does not yield the exception, the build then completes normally.
Attachments
Issue Links
- is related to
-
KARAF-1066 make features xml parser more forgiving
- Closed