From 9c6bdb6e4832e0add8c165ab76f42770f9dc2a13 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Thu, 3 Jan 2019 17:20:05 -0500 Subject: [PATCH 1/3] [MNG-6405] Fix basedir in MavenProject.deepCopy. --- .../src/main/java/org/apache/maven/project/MavenProject.java | 3 ++- 1 file changed, 2 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 fd7ab40ddcf..fd0255780a7 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 @@ private void deepCopy( MavenProject project ) // 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! From 0954d302ebe67a269ab4dd69313bc71511333923 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Mon, 15 Apr 2019 10:13:31 -0400 Subject: [PATCH 2/3] =?UTF-8?q?Reproduced=20bug=20in=20test.=20Failure=20w?= =?UTF-8?q?ithout=20patch:=20junit.framework.AssertionFailedError:=20Base?= =?UTF-8?q?=20directory=20is=20preserved=20across=20clone=20expected:=20but=20was:=20=09at=20org.?= =?UTF-8?q?apache.maven.project.MavenProjectTest.testCloneWithBaseDir(Mave?= =?UTF-8?q?nProjectTest.java:188)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/apache/maven/project/MavenProjectTest.java | 11 +++++++++++ 1 file changed, 11 insertions(+) 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 1bc75abe24b..62eae52d0b9 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 void testCloneWithActiveProfile() 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 { From 2217816d549bc80be8834b5abdb0a1645c2352fd Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Mon, 15 Apr 2019 10:20:33 -0400 Subject: [PATCH 3/3] Code style. Not enforced in tests during build? --- .../test/java/org/apache/maven/project/MavenProjectTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 62eae52d0b9..02d64b2464c 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 @@ -185,7 +185,7 @@ public void testCloneWithBaseDir() 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()); + assertEquals( "Base directory is preserved across clone", projectToClone.getBasedir(), clonedProject.getBasedir() ); } public void testUndefinedOutputDirectory()