Details
-
Type:
Bug
-
Status: New
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: 2.14.15, 2.14.20
-
Fix Version/s: None
-
Component/s: Upgrade
-
Labels:
-
Notability:3
Description
Issue:
After upgrading from Nexus 2.14.0 to Nexus 2.14.20, the repository list fails to load in Nexus UI (after next restart). This issue affects Nexus running on Windows and where repository storage has been overridden
Root cause:
In Nexus 2.14.15, a property nexus.override.local.storage.whitelist as storage locations must be whitelisted to be available for use in a repository configuration. The property get automatically set during the upgrade in nexus.properties, but for Windows path the backslash is not escaped.
Steps to Reproduce:
1) Install Nexus 2.14.0
2) Create repo maven-hosted in different storage location D:\Test\maven-hosted
3) Upload component to hosted repo to make sure it works
4) Upgrade to Nexus 2.14.20 by starting Nexus 2.14.20
5) Checked that following is set automatically by the upgrade.
nexus.override.local.storage.whitelist=D:\Test\maven-hosted
6) Repo list should load in Nexus UI
7) Restart Nexus. This time it will read in the nexus.override.local.storage.whitelist
8) Repo list fails to load in Nexus UI. The nexus.log has following errors during restart.
Caused by: java.nio.file.FileSystemNotFoundException: Provider "D" not installed at java.nio.file.Paths.get(Paths.java:147) at org.sonatype.nexus.proxy.storage.StorageWhitelist.parse(StorageWhitelist.java:73) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) at org.sonatype.nexus.proxy.storage.StorageWhitelist.<init>(StorageWhitelist.java:52) at org.sonatype.nexus.proxy.storage.StorageWhitelist$$FastClassByGuice$$40eb709.newInstance(<generated>)
Workaround:
The solution is to escape the backslash with a backslash
nexus.override.local.storage.whitelist=D:\\Test\\maven-hosted