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