Bug 536673 - Internal Error on copy/paste of the file with a Long number
in the name
Now we can copy/paste projects, files and folders named like
111111111111111111111111111111111113.
Change-Id: Ibf32fc4b0a278a8a3fadf2bb6f677ca184543f11
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
diff --git a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/reorg/ReorgPolicyFactory.java b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/reorg/ReorgPolicyFactory.java
index 585cb97..fdc4dee 100644
--- a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/reorg/ReorgPolicyFactory.java
+++ b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/reorg/ReorgPolicyFactory.java
@@ -12,6 +12,7 @@
*******************************************************************************/
package org.eclipse.jdt.internal.corext.refactoring.reorg;
+import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -2547,8 +2548,14 @@
Matcher m= p.matcher(fileNameNoExtension);
if (m.find()) {
// String ends with a number: increment it by 1
- int newNumber= Integer.parseInt(m.group()) + 1;
- String numberStr= m.replaceFirst(Integer.toString(newNumber));
+ String numberStr;
+ BigDecimal newNumber = null;
+ try {
+ newNumber = new BigDecimal(m.group()).add(new BigDecimal(1));
+ numberStr = m.replaceFirst(newNumber.toPlainString());
+ } catch (NumberFormatException e) {
+ numberStr = m.replaceFirst("2"); //$NON-NLS-1$
+ }
return numberStr + fileExtension;
} else {
return fileNameNoExtension + "2" + fileExtension; //$NON-NLS-1$