[
https://issues.apache.org/jira/browse/MRESOLVER-216?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17460031#comment-17460031
]
Michael Osipov edited comment on MRESOLVER-216 at 12/15/21, 3:13 PM:
---------------------------------------------------------------------
[~rodwiddowson], no issue, take your time. One of the reasons, if there is no
bug, there has been an intentional change in Resolver: All calls to properties
files are supposed to run inside a {{SynContext}}, additionally the
{{TrackingFileManager}} was synchronized. Double synchronization does not make
sense. We removed this in {{TrackingFileManager}} because we expect this to be
properly solved in {{SynContext}}. The default impl in Maven 3.8.x is no-op,
read no synchronization at all. Hence the issues. You have an additional
problem, your local repo is changed on the Jenkins agent between multiple
builds, which makes is multiprocess. For this you *must* use Redis or
Hazelcast-based synchronization [~loginatnine] has this exact setup and it runs
flawlessly for him with Redis.
Please also read:
https://maven.apache.org/resolver/maven-resolver-named-locks/index.html
Note: Upcoming Maven 3.9.x will include Resolver 1.7.x which will make solving
those kind of problems much easier.
was (Author: michael-o):
[~rodwiddowson], no issue, take your time. One of the reasons, if there is no
bug, there has been an intentional change in Resolver: All calls to properties
files are supposed to run inside a {{SynContext}}, additionally the
{{TrackingFileManager}} was synchronized. Double synchronization does not make
sense. We removed this in {{TrackingFileManager}} because we expect this to be
properly solved in {{SynContext}}. The default impl in Maven 3.8.x is no-op,
read no synchronization at all. Hence the issues. You have an additional
problem, your local repo is changed on the Jenkins agent between multiple
builds, which makes is multiprocess. For this you *must* use Redis or
Hazelcast-based synchronization [~loginatnine] has this exact setup and it runs
flawlessly for him with Redis.
> [ERROR] Malformed \uxxxx encoding.
> ----------------------------------
>
> Key: MRESOLVER-216
> URL: https://issues.apache.org/jira/browse/MRESOLVER-216
> Project: Maven Resolver
> Issue Type: Bug
> Components: Resolver
> Affects Versions: 1.6.3
> Reporter: Lado Kumsiashvili
> Assignee: Michael Osipov
> Priority: Major
> Fix For: waiting-for-feedback
>
> Attachments: consoleText.txt
>
>
> We do still experience this "supposed to be fixed" Bug in maven resolver in
> our team. We use maven 3.8.2 and I guess it is packaged with 1.6.3 resolver.
> It occurs sometimes and never with
> {code:java}
> -Daether.metadataResolver.threads=1 {code}
>
> {code:java}
> Apache Maven 3.8.2 (ea98e05a04480131370aa0c110b8c54cf726c06f)
> Maven home: /usr/local/Cellar/maven/3.8.2/libexec
> Java version: 1.8.0_301, vendor: Oracle Corporation, runtime:
> /Library/Java/JavaVirtualMachines/jdk1.8.0_301.jdk/Contents/Home/jre
> Default locale: en_GB, platform encoding: UTF-8
> OS name: "mac os x", version: "10.16", arch: "x86_64", family: "mac" {code}
>
> This is how the maven run with
> {code:java}
> mvn -X install {code}
> fails
> {code:java}
> [INFO]
> ------------------------------------------------------------------------
> [INFO] BUILD FAILURE
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Total time: 8.035 s
> [INFO] Finished at: 2021-10-06T10:04:20+02:00
> [INFO]
> ------------------------------------------------------------------------
> [ERROR] Malformed \uxxxx encoding.
> java.lang.IllegalArgumentException: Malformed \uxxxx encoding.
> at java.util.Properties.loadConvert (Properties.java:574)
> at java.util.Properties.load0 (Properties.java:391)
> at java.util.Properties.load (Properties.java:341)
> at org.eclipse.aether.internal.impl.TrackingFileManager.read
> (TrackingFileManager.java:56)
> at org.eclipse.aether.internal.impl.DefaultUpdateCheckManager.read
> (DefaultUpdateCheckManager.java:511)
> at
> org.eclipse.aether.internal.impl.DefaultUpdateCheckManager.checkMetadata
> (DefaultUpdateCheckManager.java:250)
> at org.eclipse.aether.internal.impl.DefaultMetadataResolver.resolve
> (DefaultMetadataResolver.java:302)
> at
> org.eclipse.aether.internal.impl.DefaultMetadataResolver.resolveMetadata
> (DefaultMetadataResolver.java:181)
> at
> org.apache.maven.repository.internal.DefaultVersionResolver.resolveVersion
> (DefaultVersionResolver.java:213)
> at
> org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom
> (DefaultArtifactDescriptorReader.java:204)
> at
> org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor
> (DefaultArtifactDescriptorReader.java:171)
> at
> org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.resolveCachedArtifactDescriptor
> (DefaultDependencyCollector.java:538)
> at
> org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.getArtifactDescriptorResult
> (DefaultDependencyCollector.java:523)
> at
> org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency
> (DefaultDependencyCollector.java:410)
> at
> org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency
> (DefaultDependencyCollector.java:362)
> at
> org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.process
> (DefaultDependencyCollector.java:349)
> at
> org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.doRecurse
> (DefaultDependencyCollector.java:506)
> at
> org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency
> (DefaultDependencyCollector.java:458)
> at
> org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency
> (DefaultDependencyCollector.java:362)
> at
> org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.process
> (DefaultDependencyCollector.java:349)
> at
> org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.collectDependencies
> (DefaultDependencyCollector.java:254)
> at
> org.eclipse.aether.internal.impl.DefaultRepositorySystem.collectDependencies
> (DefaultRepositorySystem.java:284)
> at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve
> (DefaultProjectDependenciesResolver.java:170)
> at
> org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies
> (LifecycleDependencyResolver.java:243)
> at
> org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies
> (LifecycleDependencyResolver.java:147)
> at
> org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved
> (MojoExecutor.java:248)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:202)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:156)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:148)
> at
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
> (LifecycleModuleBuilder.java:117)
> at
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
> (LifecycleModuleBuilder.java:81)
> at
> org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
> (SingleThreadedBuilder.java:56)
> at org.apache.maven.lifecycle.internal.LifecycleStarter.execute
> (LifecycleStarter.java:128)
> at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
> at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
> at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
> at org.apache.maven.cli.MavenCli.execute (MavenCli.java:972)
> at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
> at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
> at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke
> (NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke
> (DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke (Method.java:498)
> at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
> (Launcher.java:282)
> at org.codehaus.plexus.classworlds.launcher.Launcher.launch
> (Launcher.java:225)
> at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode
> (Launcher.java:406)
> at org.codehaus.plexus.classworlds.launcher.Launcher.main
> (Launcher.java:347)
> [ERROR]
> {code}
--
This message was sent by Atlassian Jira
(v8.20.1#820001)