From df5ced6a1993949cb26a88badfce4f6e70b8d88b Mon Sep 17 00:00:00 2001
From: Olivier Thomann
Date: Thu, 6 Oct 2011 17:11:32 -0400
Subject: 3.6 maintenance java 7 - Fixed bug 359646: Formatter fails silently
if Java source contains 0x8000000000000000L
---
.../core/tests/formatter/FormatterRegressionTests.java | 18 ++++++++++++++++++
org.eclipse.jdt.core/.settings/.api_filters | 9 +++++----
org.eclipse.jdt.core/buildnotes_jdt-core.html | 4 +++-
.../jdt/internal/formatter/CodeFormatterVisitor.java | 13 ++++---------
4 files changed, 30 insertions(+), 14 deletions(-)
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterRegressionTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterRegressionTests.java
index edb9c06eef..f8e971cbeb 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterRegressionTests.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterRegressionTests.java
@@ -12861,4 +12861,22 @@ public void test782() throws Exception {
"}"
);
}
+//https://bugs.eclipse.org/bugs/show_bug.cgi?id=359646
+public void test783() throws Exception {
+ this.formatterPrefs = null;
+ String source =
+ "public class X {public static void main(String[] args) {\n" +
+ " long x = 0x8000000000000000L;\n" +
+ " System.out.println(x);\n" +
+ " }\n" +
+ "}";
+ formatSource(source,
+ "public class X {\n" +
+ " public static void main(String[] args) {\n" +
+ " long x = 0x8000000000000000L;\n" +
+ " System.out.println(x);\n" +
+ " }\n" +
+ "}"
+ );
+}
}
diff --git a/org.eclipse.jdt.core/.settings/.api_filters b/org.eclipse.jdt.core/.settings/.api_filters
index 006c5e5432..0833d40f3f 100644
--- a/org.eclipse.jdt.core/.settings/.api_filters
+++ b/org.eclipse.jdt.core/.settings/.api_filters
@@ -1,8 +1,9 @@
-
+
+
-
+
-
+
@@ -558,4 +559,4 @@
-
\ No newline at end of file
+
diff --git a/org.eclipse.jdt.core/buildnotes_jdt-core.html b/org.eclipse.jdt.core/buildnotes_jdt-core.html
index b2c8790a68..c20e611758 100644
--- a/org.eclipse.jdt.core/buildnotes_jdt-core.html
+++ b/org.eclipse.jdt.core/buildnotes_jdt-core.html
@@ -54,7 +54,9 @@ Eclipse SDK 3.6.50 - %date% - 3.6.50
Problem Reports Fixed
-359495
+359646
+Formatter fails silently if Java source contains 0x8000000000000000L
+
359495
[1.7][compiler] VerifyError in try-finally block with lock encompassing for-each block and unlock in finally clause
358827
[1.7] exception analysis for t-w-r spoils null analysis
diff --git a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/CodeFormatterVisitor.java b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/CodeFormatterVisitor.java
index 488982614d..71e22b6001 100644
--- a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/CodeFormatterVisitor.java
+++ b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/CodeFormatterVisitor.java
@@ -109,7 +109,6 @@ import org.eclipse.jdt.internal.compiler.ast.WhileStatement;
import org.eclipse.jdt.internal.compiler.ast.Wildcard;
import org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants;
import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
-import org.eclipse.jdt.internal.compiler.impl.Constant;
import org.eclipse.jdt.internal.compiler.lookup.BlockScope;
import org.eclipse.jdt.internal.compiler.lookup.ClassScope;
import org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope;
@@ -3670,8 +3669,7 @@ public class CodeFormatterVisitor extends ASTVisitor {
if (numberOfParens > 0) {
manageOpeningParenthesizedExpression(doubleLiteral, numberOfParens);
}
- Constant constant = doubleLiteral.constant;
- if (constant != null && constant.doubleValue() < 0) {
+ if (isNextToken(TerminalTokens.TokenNameMINUS)) {
this.scribe.printNextToken(TerminalTokens.TokenNameMINUS);
}
this.scribe.printNextToken(TerminalTokens.TokenNameDoubleLiteral);
@@ -3895,8 +3893,7 @@ public class CodeFormatterVisitor extends ASTVisitor {
if (numberOfParens > 0) {
manageOpeningParenthesizedExpression(floatLiteral, numberOfParens);
}
- Constant constant = floatLiteral.constant;
- if (constant != null && floatLiteral.constant.floatValue() < 0) {
+ if (isNextToken(TerminalTokens.TokenNameMINUS)) {
this.scribe.printNextToken(TerminalTokens.TokenNameMINUS);
}
this.scribe.printNextToken(TerminalTokens.TokenNameFloatingPointLiteral);
@@ -4209,8 +4206,7 @@ public class CodeFormatterVisitor extends ASTVisitor {
if (numberOfParens > 0) {
manageOpeningParenthesizedExpression(intLiteral, numberOfParens);
}
- Constant constant = intLiteral.constant;
- if (constant != null && constant.intValue() < 0) {
+ if (isNextToken(TerminalTokens.TokenNameMINUS)) {
this.scribe.printNextToken(TerminalTokens.TokenNameMINUS);
}
this.scribe.printNextToken(TerminalTokens.TokenNameIntegerLiteral);
@@ -4260,8 +4256,7 @@ public class CodeFormatterVisitor extends ASTVisitor {
if (numberOfParens > 0) {
manageOpeningParenthesizedExpression(longLiteral, numberOfParens);
}
- Constant constant = longLiteral.constant;
- if (constant != null && constant.longValue() < 0) {
+ if (isNextToken(TerminalTokens.TokenNameMINUS)) {
this.scribe.printNextToken(TerminalTokens.TokenNameMINUS);
}
this.scribe.printNextToken(TerminalTokens.TokenNameLongLiteral);
--
cgit v1.2.3