Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 164162 Details for
Bug 308428
Possible problem to get corrections with surrogate characters
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Proposed fix + regression test
patch_308428.txt (text/plain), 5.67 KB, created by
Olivier Thomann
on 2010-04-07 22:31:46 EDT
(
hide
)
Description:
Proposed fix + regression test
Filename:
MIME Type:
Creator:
Olivier Thomann
Created:
2010-04-07 22:31:46 EDT
Size:
5.67 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.core >Index: model/org/eclipse/jdt/core/CorrectionEngine.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/core/CorrectionEngine.java,v >retrieving revision 1.58 >diff -u -r1.58 CorrectionEngine.java >--- model/org/eclipse/jdt/core/CorrectionEngine.java 27 Aug 2009 15:27:02 -0000 1.58 >+++ model/org/eclipse/jdt/core/CorrectionEngine.java 8 Apr 2010 02:30:14 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2000, 2009 IBM Corporation and others. >+ * Copyright (c) 2000, 2010 IBM Corporation and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -235,7 +235,20 @@ > private void correct(char[] argument) { > try { > String source = this.compilationUnit.getSource(); >- Scanner scanner = new Scanner(); >+ Map currentProjectOptions = this.compilationUnit.getJavaProject().getOptions(true); >+ long sourceLevel = CompilerOptions.versionToJdkLevel(currentProjectOptions.get(JavaCore.COMPILER_SOURCE)); >+ long complianceLevel = CompilerOptions.versionToJdkLevel(currentProjectOptions.get(JavaCore.COMPILER_COMPLIANCE)); >+ >+ Scanner scanner = >+ new Scanner( >+ false /*comment*/, >+ false /*whitespace*/, >+ false /*nls*/, >+ sourceLevel, >+ complianceLevel, >+ null/*taskTag*/, >+ null/*taskPriorities*/, >+ true /*taskCaseSensitive*/); > scanner.setSource(source.toCharArray()); > > scanner.resetTo(this.correctionStart, this.correctionEnd); >#P org.eclipse.jdt.core.tests.model >Index: src/org/eclipse/jdt/core/tests/model/CodeCorrectionTests.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CodeCorrectionTests.java,v >retrieving revision 1.25 >diff -u -r1.25 CodeCorrectionTests.java >--- src/org/eclipse/jdt/core/tests/model/CodeCorrectionTests.java 27 Jun 2008 16:02:40 -0000 1.25 >+++ src/org/eclipse/jdt/core/tests/model/CodeCorrectionTests.java 8 Apr 2010 02:30:16 -0000 >@@ -10,14 +10,25 @@ > *******************************************************************************/ > package org.eclipse.jdt.core.tests.model; > >-import junit.framework.*; >+import junit.framework.Test; > >-import org.eclipse.core.resources.*; >-import org.eclipse.core.runtime.*; >-import org.eclipse.jdt.core.*; >+import org.eclipse.core.resources.IMarker; >+import org.eclipse.core.resources.IResource; >+import org.eclipse.core.resources.IncrementalProjectBuilder; >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.jdt.core.CorrectionEngine; >+import org.eclipse.jdt.core.ICompilationUnit; >+import org.eclipse.jdt.core.IJavaElement; >+import org.eclipse.jdt.core.IJavaModelMarker; >+import org.eclipse.jdt.core.IJavaProject; >+import org.eclipse.jdt.core.JavaCore; >+import org.eclipse.jdt.core.JavaModelException; > import org.eclipse.jdt.core.compiler.IProblem; >-import org.eclipse.jdt.core.search.*; >- >+import org.eclipse.jdt.core.search.IJavaSearchConstants; >+import org.eclipse.jdt.core.search.IJavaSearchScope; >+import org.eclipse.jdt.core.search.SearchEngine; >+import org.eclipse.jdt.core.search.SearchPattern; >+import org.eclipse.jdt.core.search.TypeNameRequestor; > > public class CodeCorrectionTests extends AbstractJavaModelTests { > public static boolean DEBUG = false; >@@ -54,7 +65,7 @@ > public void setUpSuite() throws Exception { > super.setUpSuite(); > >- IJavaProject project = setUpJavaProject("CodeCorrection"); >+ IJavaProject project = setUpJavaProject("CodeCorrection", "1.5"); > > // dummy query for waiting until the indexes are ready > SearchEngine engine = new SearchEngine(); >@@ -659,6 +670,32 @@ > ""+end, > requestor.getEnds()); > } >+public void testCorrectLocalVariable2() throws JavaModelException { >+ CorrectionEngine engine = new CorrectionEngine(JavaCore.getOptions()); >+ CodeCorrectionTestsRequestor requestor = new CodeCorrectionTestsRequestor(); >+ ICompilationUnit cu= getCompilationUnit("CodeCorrection", "src", "", "CorrectLocalVariable2.java"); >+ IMarker[] markers = getMarkers(cu); >+ assertTrue("should have one problem",markers.length == 1); >+ engine.computeCorrections(markers[0], null, 0, requestor); >+ >+ String src = cu.getSource(); >+ String error = "ba\\ud842\\udf9fr"; >+ int start = src.lastIndexOf(error); >+ int end = start + error.length(); >+ >+ assertEquals( >+ "should have one suggestion", >+ "ba\ud842\udf9fr0", >+ requestor.getSuggestions()); >+ assertEquals( >+ "a start of a suggestion is not correct", >+ ""+start, >+ requestor.getStarts()); >+ assertEquals( >+ "a end of a suggestion is not correct", >+ ""+end, >+ requestor.getEnds()); >+} > public void testCorrectArgument1() throws JavaModelException { > CorrectionEngine engine = new CorrectionEngine(JavaCore.getOptions()); > CodeCorrectionTestsRequestor requestor = new CodeCorrectionTestsRequestor(); >Index: workspace/CodeCorrection/src/CorrectLocalVariable2.java >=================================================================== >RCS file: workspace/CodeCorrection/src/CorrectLocalVariable2.java >diff -N workspace/CodeCorrection/src/CorrectLocalVariable2.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ workspace/CodeCorrection/src/CorrectLocalVariable2.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,6 @@ >+public class CorrectLocalVariable2 { >+ void foo(){ >+ int ba\ud842\udf9fr0; >+ ba\ud842\udf9fr = 5; >+ } >+} >\ No newline at end of file
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 308428
: 164162