diff --git a/WHATSNEW b/WHATSNEW
index 951b3e1cd..8e363ff4f 100644
--- a/WHATSNEW
+++ b/WHATSNEW
@@ -322,6 +322,10 @@ Fixed bugs:
miss some files and directories in the presence of recursive
exclude patterns.
+ * globmapper didn't work properly if the "to" pattern didn't contain
+ a *.
+ Bugzilla Report 46506.
+
Other changes:
--------------
diff --git a/src/etc/testcases/taskdefs/pathconvert.xml b/src/etc/testcases/taskdefs/pathconvert.xml
index 1a00bd937..a9b109ef6 100755
--- a/src/etc/testcases/taskdefs/pathconvert.xml
+++ b/src/etc/testcases/taskdefs/pathconvert.xml
@@ -31,7 +31,7 @@
-
+
diff --git a/src/main/org/apache/tools/ant/util/GlobPatternMapper.java b/src/main/org/apache/tools/ant/util/GlobPatternMapper.java
index 076efd6be..d302d70f4 100644
--- a/src/main/org/apache/tools/ant/util/GlobPatternMapper.java
+++ b/src/main/org/apache/tools/ant/util/GlobPatternMapper.java
@@ -68,6 +68,7 @@ public class GlobPatternMapper implements FileNameMapper {
// CheckStyle:VisibilityModifier ON
+ private boolean toContainsStar = false;
private boolean handleDirSep = false;
private boolean caseSensitive = true;
@@ -126,6 +127,7 @@ public class GlobPatternMapper implements FileNameMapper {
} else {
toPrefix = to.substring(0, index);
toPostfix = to.substring(index + 1);
+ toContainsStar = true;
}
} else {
throw new BuildException("this mapper requires a 'to' attribute");
@@ -148,8 +150,10 @@ public class GlobPatternMapper implements FileNameMapper {
return null;
}
return new String[] {toPrefix
- + extractVariablePart(sourceFileName)
- + toPostfix};
+ + (toContainsStar
+ ? extractVariablePart(sourceFileName)
+ + toPostfix
+ : "")};
}
/**
diff --git a/src/tests/antunit/types/glob-test.xml b/src/tests/antunit/types/glob-test.xml
index 77d796de4..9222dbb17 100644
--- a/src/tests/antunit/types/glob-test.xml
+++ b/src/tests/antunit/types/glob-test.xml
@@ -47,7 +47,7 @@
-
@@ -58,7 +58,7 @@
-
+