apache / apache/maven-build-cache-extension
[MBUILDCACHE-102] mvn build cache extension config parsing issues on windows
- Dominant language
- Java
- Stars
- 163
- Forks
- 77
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 4
Description
**[Scott Feldstein](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=scottmf)** opened **[MBUILDCACHE-102](https://issues.apache.org/jira/browse/MBUILDCACHE-102?redirect=false)** and commented
Hello,
My colleague is having issues on his windows development laptop building with the maven build-cache extension enabled. The issue appears to be associated with the configuration file when parsing '`***`' in an ant path expression element (stack below). The configuration file is based on the [config example](https://maven.apache.org/extensions/maven-build-cache-extension/maven-build-cache-config.xml) in the [getting started guide](https://maven.apache.org/extensions/maven-build-cache-extension/getting-started.html) (see below for my exact configuration). When we remove '`src/main/javagen/***`' from the config then everything works fine.
# Stacktrace
```java
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.159 s
[INFO] Finished at: 2024-08-15T10:04:09-07:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to calculate checksums for cs-parent: Illegal char <*> at index 17: src\main\javagen\**
java.lang.RuntimeException: Failed to calculate checksums for cs-parent
at org.apache.maven.buildcache.DefaultProjectInputCalculator.calculateInputInternal (DefaultProjectInputCalculator.java:114)
at org.apache.maven.buildcache.DefaultProjectInputCalculator.calculateInput (DefaultProjectInputCalculator.java:89)
at org.apache.maven.buildcache.CacheControllerImpl.findCachedBuild (CacheControllerImpl.java:180)
at org.apache.maven.buildcache.BuildCacheMojosExecutionStrategy.execute (BuildCacheMojosExecutionStrategy.java:128)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:568)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:568)
at org.apache.maven.wrapper.BootstrapMainStarter.start (BootstrapMainStarter.java:53)
at org.apache.maven.wrapper.WrapperExecutor.execute (WrapperExecutor.java:152)
at org.apache.maven.wrapper.MavenWrapperMain.main (MavenWrapperMain.java:76)
Caused by: java.nio.file.InvalidPathException: Illegal char <*> at index 17: src\main\javagen\**
at sun.nio.fs.WindowsPathParser.normalize (WindowsPathParser.java:182)
at sun.nio.fs.WindowsPathParser.parse (WindowsPathParser.java:153)
at sun.nio.fs.WindowsPathParser.parse (WindowsPathParser.java:77)
at sun.nio.fs.WindowsPath.parse (WindowsPath.java:92)
at sun.nio.fs.WindowsFileSystem.getPath (WindowsFileSystem.java:232)
at java.nio.file.Path.of (Path.java:147)
at java.nio.file.Paths.get (Paths.java:69)
at org.apache.maven.buildcache.checksum.exclude.Exclusion. (Exclusion.java:70)
at org.apache.maven.buildcache.checksum.exclude.ExclusionResolver.addExclusion (ExclusionResolver.java:104)
at org.apache.maven.buildcache.checksum.exclude.ExclusionResolver. (ExclusionResolver.java:73)
at org.apache.maven.buildcache.checksum.MavenProjectInput. (MavenProjectInput.java:169)
at org.apache.maven.buildcache.DefaultProjectInputCalculator.calculateInputInternal (DefaultProjectInputCalculator.java:103)
at org.apache.maven.buildcache.DefaultProjectInputCalculator.calculateInput (DefaultProjectInputCalculator.java:89)
at org.apache.maven.buildcache.CacheControllerImpl.findCachedBuild (CacheControllerImpl.java:180)
at org.apache.maven.buildcache.BuildCacheMojosExecutionStrategy.execute (BuildCacheMojosExecutionStrategy.java:128)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:568)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:568)
at org.apache.maven.wrapper.BootstrapMainStarter.start (BootstrapMainStarter.java:53)
at org.apache.maven.wrapper.WrapperExecutor.execute (WrapperExecutor.java:152)
at org.apache.maven.wrapper.MavenWrapperMain.main (MavenWrapperMain.java:76)
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
```
# My Configuration
```java
true
SHA-256
true
http://host:port
3
{*.java,*.groovy,*.yaml,*.svcd,*.proto,*assembly.xml,assembly*.xml,*logback.xml,*.vm,*.ini,*.jks,*.properties,*.sh,*.bat}
src/
pom.xml
src/main/javagen/**
111
1
2
my-execution-id
install
deploy
deploy-local
```
---
No further details from [MBUILDCACHE-102](https://issues.apache.org/jira/browse/MBUILDCACHE-102?redirect=false)
Contributor guide
No contributing guide indexed for this repository
Research direction
Reproduce the Windows failure with the configuration from the issue, especially the src/main/javagen/** exclusion. Start with Exclusion.java, then follow ExclusionResolver and MavenProjectInput from the stack trace. Done means the wildcard exclusion is handled without InvalidPathException and the Maven build-cache extension can calculate project inputs successfully.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100