You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2019/04/16 11:28:10 UTC
[maven] branch master updated: [MNG-6405] Fix basedir in
MavenProject.deepCopy (#225)
This is an automated email from the ASF dual-hosted git repository.
olamy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven.git
The following commit(s) were added to refs/heads/master by this push:
new 0940c7c [MNG-6405] Fix basedir in MavenProject.deepCopy (#225)
0940c7c is described below
commit 0940c7c9730eac23fd8598f3fb51520ee774761b
Author: Jesse Glick <jg...@cloudbees.com>
AuthorDate: Tue Apr 16 07:28:03 2019 -0400
[MNG-6405] Fix basedir in MavenProject.deepCopy (#225)
* [MNG-6405] Fix basedir in MavenProject.deepCopy.
* Reproduced bug in test.
Failure without patch:
junit.framework.AssertionFailedError: Base directory is preserved across clone expected:<…/maven-core/target/test-classes> but was:<…/maven-core/target/test-classes/target>
at org.apache.maven.project.MavenProjectTest.testCloneWithBaseDir(MavenProjectTest.java:188)
* Code style. Not enforced in tests during build?
---
.../src/main/java/org/apache/maven/project/MavenProject.java | 3 ++-
.../test/java/org/apache/maven/project/MavenProjectTest.java | 11 +++++++++++
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/maven-core/src/main/java/org/apache/maven/project/MavenProject.java b/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
index fd7ab40..fd02557 100644
--- a/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
+++ b/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
@@ -1207,7 +1207,8 @@ public class MavenProject
// disown the parent
// copy fields
- setFile( project.getFile() );
+ file = project.file;
+ basedir = project.basedir;
// don't need a deep copy, they don't get modified or added/removed to/from - but make them unmodifiable to be
// sure!
diff --git a/maven-core/src/test/java/org/apache/maven/project/MavenProjectTest.java b/maven-core/src/test/java/org/apache/maven/project/MavenProjectTest.java
index 1bc75ab..02d64b2 100644
--- a/maven-core/src/test/java/org/apache/maven/project/MavenProjectTest.java
+++ b/maven-core/src/test/java/org/apache/maven/project/MavenProjectTest.java
@@ -177,6 +177,17 @@ public class MavenProjectTest
activeProfilesClone );
}
+ public void testCloneWithBaseDir()
+ throws Exception
+ {
+ File f = getFileForClasspathResource( "canonical-pom.xml" );
+ MavenProject projectToClone = getProject( f );
+ projectToClone.setPomFile( new File( new File( f.getParentFile(), "target" ), "flattened.xml" ) );
+ MavenProject clonedProject = projectToClone.clone();
+ assertEquals( "POM file is preserved across clone", projectToClone.getFile(), clonedProject.getFile() );
+ assertEquals( "Base directory is preserved across clone", projectToClone.getBasedir(), clonedProject.getBasedir() );
+ }
+
public void testUndefinedOutputDirectory()
throws Exception
{