blob: a61c0444195fb6686943063bfb5e56a19af50d89 [file] [log] [blame]
Stephan Herrmann7b7062f2010-04-01 19:56:59 +00001<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
4 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
5 <meta name="Author" content="IBM">
6 <title>JDT/Core Release Notes 3.4</title>
7 <link rel="stylesheet" href="jdt_core_style.css" charset="iso-8859-1" type="text/css">
9<body text="#000000" bgcolor="#FFFFFF">
10<table border=0 cellspacing=5 cellpadding=2 width="100%" >
11 <tr>
12 <td align="left" width="72%" class="title1">
13 <font size="+3"><b>jdt core - build notes 3.4 stream</b></font>
14 </td>
15 </tr>
16 <tr><td align="left" width="72%" class="title2"><font size="-2">Java development tools core</font></td></tr>
17 <tr><td>&nbsp;</td></tr>
18 <tr>
19 <td class="title3">
20 <font size="-1">
21 Here are the build notes for the Eclipse JDT/Core plug-in project
22 <a href=""><b>org.eclipse.jdt.core</b></a>,
23 describing <a href="" target=new>bug</a> resolution and substantial changes in the <a href=""><b>HEAD</b></a> branch.
24 For more information on 3.4 planning, please refer to <a href="">JDT/Core release plan</a>,
25 the next <a href="">milestone plan</a>,
26 the overall <a href="">official plan</a>,
27 or the <a href="">build schedule</a>.
28 This present document covers all changes since Release 3.3 (also see a summary of <a href="">API changes</a>).
29 <br>Maintenance of previous releases of JDT/Core is performed in parallel branches:
30 <a href="">R3.3.x</a>,
31 <a href="">R3.2.x</a>,
32 <a href="">R3.1.x</a>,
33 <a href="">R3.0.x</a>,
34 <a href="">R2.1.x</a>,
35 <a href="">R2.0.x</a>,
36 <a href="">R1.0.x</a>.
37 </font>
38 </td>
39 </tr>
42<a name="v_874"></a>
44Eclipse Platform Build Notes<br>
45Java development tools core</h1>
46Eclipse SDK 3.4.0 - June 13, 2008 - 3.4.0
47<br>Project org.eclipse.jdt.core v_874
48(<a href="">cvs</a>).
49<h2>What's new in this drop</h2>
51<h3>Problem Reports Fixed</h3>
52<a href="">236599</a>
53Fix wording of JDT
55<a name="v_873"></a>
57Eclipse Platform Build Notes<br>
58Java development tools core</h1>
59Eclipse SDK 3.4.0 - June 9, 2008
60<br>Project org.eclipse.jdt.core v_873
61(<a href="">cvs</a>).
62<h2>What's new in this drop</h2>
64<h3>Problem Reports Fixed</h3>
65<a href="">236252</a>
66Batch compiler's help should not have 'release candidate-4' in the version name
68<a name="v_872"></a>
70Eclipse Platform Build Notes<br>
71Java development tools core</h1>
72Eclipse SDK 3.4RC4 - June 3, 2008 - 3.4 RELEASE CANDIDATE 4
73<br>Project org.eclipse.jdt.core v_872
74(<a href="">cvs</a>).
75<h2>What's new in this drop</h2>
77<h3>Problem Reports Fixed</h3>
78<a href="">234718</a>
79JarPackageFragmentRoot.computeChildren(..) is slow
80<br><a href="">234848</a>
81Need to trace classpath container initialization failures
83<a name="v_871"></a>
85Eclipse Platform Build Notes<br>
86Java development tools core</h1>
87Eclipse SDK 3.4RC3 - May 29, 2008 - 3.4 RELEASE CANDIDATE 3
88<br>Project org.eclipse.jdt.core v_871
89(<a href="">cvs</a>).
90<h2>What's new in this drop</h2>
92<h3>Problem Reports Fixed</h3>
93<a href="">234307</a>
94Java Model Exception from
96<a name="v_870"></a>
98Eclipse Platform Build Notes<br>
99Java development tools core</h1>
100Eclipse SDK 3.4RC3 - May 29, 2008
101<br>Project org.eclipse.jdt.core v_870
102(<a href="">cvs</a>).
103<h2>What's new in this drop</h2>
105<h3>Problem Reports Fixed</h3>
106<a href="">234336</a>
107[formatter] JavaDocTestCase.testMultiLineCommentIndent* tests fail in I20080527-2000 build
108<br><a href="">233800</a>
109[1.5][compiler] Internal compiler NPE on checkUnsafeCast
111<a name="v_869"></a>
113Eclipse Platform Build Notes<br>
114Java development tools core</h1>
115Eclipse SDK 3.4RC3 - May 27, 2008
116<br>Project org.eclipse.jdt.core v_869
117(<a href="">cvs</a>).
118<h2>What's new in this drop</h2>
120<h3>Problem Reports Fixed</h3>
121<a href="">234120</a>
122PublicScanner not in sync with internal Scanner
123<br><a href="">233625</a>
124Content Assist outof memory
125<br><a href="">232768</a>
126[formatter] does not format block and single line comment if too much selected
127<br><a href="">233887</a>
128[javadoc][1.5] Build of Eclipse project stop by NullPointerException and will not continue on Eclipse version later than 3.4M7
129<br><a href="">232814</a>
130[compiler] Testcase with &quot;value1 - (-value2)&quot; not working when value2 is final
132<a name="v_868"></a>
134Eclipse Platform Build Notes<br>
135Java development tools core</h1>
136Eclipse SDK 3.4RC2 - May 22, 2008 - 3.4 RELEASE CANDIDATE 2
137<br>Project org.eclipse.jdt.core v_868
138(<a href="">cvs</a>).
139<h2>What's new in this drop</h2>
141<h3>Problem Reports Fixed</h3>
142<a href="">230944</a>
143[formatter] Formatter does not respect /*-
145<a name="v_867"></a>
147Eclipse Platform Build Notes<br>
148Java development tools core</h1>
149Eclipse SDK 3.4RC2 - May 22, 2008
150<br>Project org.eclipse.jdt.core v_867
151(<a href="">cvs</a>).
152<h2>What's new in this drop</h2>
154<h3>Problem Reports Fixed</h3>
155<a href="">232788</a>
156[formatter] Formatter misaligns stars when formatting block comments
157<br><a href="">233228</a>
158[formatter] line comments which contains \\u are not correctly formatted
159<br><a href="">233224</a>
160[formatter] Xdoclet tags looses @ on format
161<br><a href="">232466</a>
162[formatter] References of inlined tags are still split in certain circumstances
163<br><a href="">228648</a>
164AST: no binding for Javadoc reference to inner class
166<a name="v_866"></a>
168Eclipse Platform Build Notes<br>
169Java development tools core</h1>
170Eclipse SDK 3.4RC2 - May 20, 2008
171<br>Project org.eclipse.jdt.core v_866
172(<a href="">cvs</a>).
173<h2>What's new in this drop</h2>
175<h3>Problem Reports Fixed</h3>
176<a href="">232803</a>
177Reconcile doesn't find methods with a $ in parameter types
178<br><a href="">232488</a>
179[formatter] Code formatter scrambles JavaDoc of Generics
180<br><a href="">225737</a>
181[compiler][1.5] Generics - JDT cannot compile hudson-core when javac can
182<br><a href="">231861</a>
183[1.5][compiler] Generics: problem with partial generics
186<a name="v_865"></a>
188Eclipse Platform Build Notes<br>
189Java development tools core</h1>
190Eclipse SDK 3.4RC1 - May 15, 2008- 3.4 RELEASE CANDIDATE 1
191<br>Project org.eclipse.jdt.core v_865
192(<a href="">cvs</a>).
193<h2>What's new in this drop</h2>
195<h3>Problem Reports Fixed</h3>
196<a href="">232285</a>
197[formatter] New comment formatter wrongly formats javadoc header/footer with several contiguous stars
198<br><a href="">229480</a>
199[builder] compiler exception causes NPE in AbstractImageBuilder.acceptResult()
201<a name="v_864"></a>
203Eclipse Platform Build Notes<br>
204Java development tools core</h1>
205Eclipse SDK 3.4RC1 - May 14, 2008
206<br>Project org.eclipse.jdt.core v_864
207(<a href="">cvs</a>).
208<h2>What's new in this drop</h2>
210<h3>Problem Reports Fixed</h3>
211<a href="">232037</a>
212CompilationUnit#equals(Object) throws NPE if owner is null
213<br><a href="">227185</a>
214[1.5][compiler] Compiler error using generics with static class
217<a name="v_863"></a>
219Eclipse Platform Build Notes<br>
220Java development tools core</h1>
221Eclipse SDK 3.4RC1 - May 13, 2008
222<br>Project org.eclipse.jdt.core v_863
223(<a href="">cvs</a>).
224<h2>What's new in this drop</h2>
226<h3>Problem Reports Fixed</h3>
227<a href="">231297</a>
228[formatter] New JavaDoc formatter wrongly split inline tags before reference
229<br><a href="">231263</a>
230[formatter] New JavaDoc formatter wrongly indent tags description
231<br><a href="">229682</a>
232[formatter] New comment put text over the max line length in some cases
233<br><a href="">231293</a>
234New errors about indirectly referenced classes from required .class files in 20080508-200
235<br><a href="">231622</a>
236Some classes from Missing classes from Cntrl-Shift-T
237<br><a href="">231747</a>
238[assist] UnsupportedOperationException even when the context is extended
240<a name="v_862"></a>
242Eclipse Platform Build Notes<br>
243Java development tools core</h1>
244Eclipse SDK 3.4RC1 - May 12, 2008
245<br>Project org.eclipse.jdt.core v_862
246(<a href="">cvs</a>).
247<h2>What's new in this drop</h2>
249<h3>Problem Reports Fixed</h3>
250<a href="">231579</a>
251Converting compiler.tool to API tools support
252<br><a href="">231367</a>
253org.eclipse.jdt.compiler.tool is not singleton
254<br><a href="">230026</a>
255[1.5][compiler] CCE during static import resolution with parameterized type
256<br><a href="">230885</a>
257[content assist] NPE at ParameterGuesser.createVariable()
258<br><a href="">163200</a>
259Moving code with compile errors outside of a source folder preserve compile errors
260<br><a href="">229951</a>
261StackOverflowError during JavaSearchScope.add for large workspace
262<br><a href="">230864</a>
263[assist] Code assist do not work in parameterized method with 'this' as receive
265<a name="v_861"></a>
267Eclipse Platform Build Notes<br>
268Java development tools core</h1>
269Eclipse SDK 3.4RC1 - May 8, 2008
270<br>Project org.eclipse.jdt.core v_861
271(<a href="">cvs</a>).
272<h2>What's new in this drop</h2>
274<h3>Problem Reports Fixed</h3>
275<a href="">230127</a>
276[clean up] NPE in Organize Imports save action
277<br><a href="">231053</a>
278[formatter] Comment formatter fails to format long strings in @see references
279<br><a href="">231060</a>
280[formatter] '*' are not preserved in Javadoc comments when located at the beginning of the line
282<a name="v_860"></a>
284Eclipse Platform Build Notes<br>
285Java development tools core</h1>
286Eclipse SDK 3.4RC1 - May 7, 2008
287<br>Project org.eclipse.jdt.core v_860
288(<a href="">cvs</a>).
289<h2>What's new in this drop</h2>
291<h3>Problem Reports Fixed</h3>
292<a href="">222284</a>
293[search] ZipException while searching if linked jar doesn't exist any longer
294<br><a href="">191322</a>
295[javadoc] @see or @link reference to method without signature fails to resolve to base class method
296<br><a href="">194743</a>
297Constructor tooltip does not show constructor javadoc without source attachment
298<br><a href="">228464</a>
299Annotation.getMemberValuePairs() empty for single attribute with empty value
300<br><a href="">229128</a>
301[search] Search finding matches in working copies that are not part of scope
302<br><a href="">230391</a>
303[organize imports] unmatched packages group is always first
304<br><a href="">229927</a>
305No code assist in array initializer
307<a name="v_859"></a>
309Eclipse Platform Build Notes<br>
310Java development tools core</h1>
311Eclipse SDK 3.4RC1 - May 5, 2008
312<br>Project org.eclipse.jdt.core v_859
313(<a href="">cvs</a>).
314<h2>What's new in this drop</h2>
316<h3>Problem Reports Fixed</h3>
317<a href="">230364</a>
318[formatter] Test failure in CleanUpStressTest after changes to comment formatter
319<br><a href="">214558</a>
320[1.5][compiler] javac reports ambiguous method ref that Eclipse does not identify
321<br><a href="">228291</a>
322[1.5][compiler] Incorrect unsafe warning for casting complex but static types.
323<br><a href="">230070</a>
324[1.5][compiler] Internal compiler error: NullPointerException at org.eclipse.jdt.internal.compiler.ast.CastExpression.checkUnsafeCast()
325<br><a href="">230230</a>
326[formatter] New comment formatter does not handle properly all scanner exceptions
327<br><a href="">230184</a>
328[formatter] New comment formatter split comment line between contiguous tokens
329<br><a href="">229954</a>
330[formatter] New comment formatter fails to format correctly when invalid throws reference
331<br><a href="">229932</a>
332[formatter] New comment formatter wrongly formats @param tags with wrong syntax
333<br><a href="">229683</a>
334[formatter] New comment formatter takes 2 passes to format when tags are inside text
335<br><a href="">229968</a>
336Perf regression while computing type hierarchy
337<br><a href="">229636</a>
338JavaModelException should stay instanciatable
339<br><a href="">228109</a>
340[1.5][compiler] Enum static field initializer in enum constructor failed to give compilation error
342<a name="v_858"></a>
344Eclipse Platform Build Notes<br>
345Java development tools core</h1>
346Eclipse SDK 3.4M7 - April 30, 2008 - 3.4 MILESTONE 7
347<br>Project org.eclipse.jdt.core v_858
348(<a href="">cvs</a>).
349<h2>What's new in this drop</h2>
351<h3>Problem Reports Fixed</h3>
352<a href="">228651</a>
353[dom] NPE in MemberValuePairBinding.isDefault()
354<br><a href="">229569</a>
355[formatter] New comments formatter does not indent lines inside immutable tags
356<br><a href="">229526</a>
357Conversion to Api tools adds a new internal method inside an API class
358<br><a href="">229595</a>
359OptionTests.testBug68993() failing due to wrong assumption
361<a name="v_857"></a>
363Eclipse Platform Build Notes<br>
364Java development tools core</h1>
365Eclipse SDK 3.4M7 - April 29, 2008
366<br>Project org.eclipse.jdt.core v_857
367(<a href="">cvs</a>).
368<h2>What's new in this drop</h2>
370<h3>Problem Reports Fixed</h3>
371<a href="">229373</a>
372[formatter] New comment formatter gets lost when encountering invalid closing tags
373<br><a href="">229304</a>
374cannot 'Open Type' a binary type that is present in an external folder
375<br><a href="">229326</a>
376[formatter] New comment formatter takes 2 passes to format some block comments
377<br><a href="">227730</a>
378[Javadoc] Missing description should not be warned for {@inheritDoc}
380<a name="v_856"></a>
382Eclipse Platform Build Notes<br>
383Java development tools core</h1>
384Eclipse SDK 3.4M7 - April 28, 2008
385<br>Project org.eclipse.jdt.core v_856
386(<a href="">cvs</a>).
387<h2>What's new in this drop</h2>
389<h3>Problem Reports Fixed</h3>
390<a href="">229108</a>
391[formatter] New comment formatter adds unnecessary spaces before and after &lt;code&gt; tags
392<br><a href="">229107</a>
393[formatter] New comment formatter fails to format correctly when &lt;table ...&gt; tags is used
394<br><a href="">229103</a>
395[formatter] New comment formatter split inlined tags incorrectly
397<a name="v_855"></a>
399Eclipse Platform Build Notes<br>
400Java development tools core</h1>
401Eclipse SDK 3.4M7 - April 27, 2008
402<br>Project org.eclipse.jdt.core v_855
403(<a href="">cvs</a>).
404<h2>What's new in this drop</h2>
406<h3>Problem Reports Fixed</h3>
407<a href="">227043</a>
408[formatter] CodeFormatter does not format line and block comments
409<br><a href="">228528</a>
410NPE when interrupting the build
411<br><a href="">228639</a>
412Source attachment root detection doesn't work if source folder contains META-INF
413<br><a href="">79798</a>
414[compiler] Wrong compiler error when interface overrides two methods with same signature but different exceptions
415<br><a href="">227546</a>
416[assist] No method declaration completion in enum constant
417<br><a href="">158526</a>
418[search] NPE in JavaSearchScope.addEnclosingProjectOrJar(..)
419<br><a href="">182738</a>
420[search] Avoid keeping list of roots in JavaWorkspaceScope
421<br><a href="">228193</a>
422[formatter] Javadoc comments are still formatted using JavaDocRegion!
423<br><a href="">227822</a>
424[select] ClassCastException thrown if unable to resolve core Java types
425<br><a href="">227855</a>
426incorrect compilation errors related to annotations
427<br><a href="">208010</a>
428[compiler] Compiler reports unneccessary warning for static members
429<br><a href="">222735</a>
430DOM AST: hide recovered bindings unless 'recovered bindings' is enabled
432<a name="v_854"></a>
434Eclipse Platform Build Notes<br>
435Java development tools core</h1>
436Eclipse SDK 3.4M7 - April 22, 2008
437<br>Project org.eclipse.jdt.core v_854
438(<a href="">cvs</a>).
439<h2>What's new in this drop</h2>
441<li>ZIP archives that have an extension other than <code>.zip</code> and <code>.jar</code> can now be put on the classpath as well.
442 See <a href="">bug 182360</a> for details.</li>
445<h3>Problem Reports Fixed</h3>
446<a href="">209643</a>
447keyword completion proposals for @interface and enum
448<br><a href="">227531</a>
449add one exception logging in ASTParser
450<br><a href="">227941</a>
451org.eclipse.jdt.internal.compiler.batch.Main writes bad characters to an xml log file
452<br><a href="">227930</a>
453[compiler] NPE during exception reporting
454<br><a href="">227502</a>
455[1.5][compiler] Bad error message for abstract enum
456<br><a href="">227761</a>
457NPE from CompletionContext.getVisibleElements
458<br><a href="">227813</a>
459root detection in in external linked source folders
460<br><a href="">209149</a>
461[1.7][compiler] 1.7 compliance allows type params to be declared in any order
462<br><a href="">182360</a>
463Only Jar and Zip files allowed for in ClasspathContainers using
464<br><a href="">222326</a>
465[1.5][compiler] NullPointerException during: "Compute launch button tooltip"
466<br><a href="">161030</a>
467add code assist for enum values
468<br><a href="">207631</a>
469[Content Assist] Autocompletion fails after use of binary right-shift operators
470<br><a href="">226918</a>
471[jsr199] the standard java file manager returned by the Eclipse compiler does not accept non-modifiable iterators as remaining arg to JavaFileManager#handleOption
473<a name="v_853"></a>
475Eclipse Platform Build Notes<br>
476Java development tools core</h1>
477Eclipse SDK 3.4M7 - April 15, 2008
478<br>Project org.eclipse.jdt.core v_853
479(<a href="">cvs</a>).
480<h2>What's new in this drop</h2>
482<li>The Java compiler now uses multiple CPUs when running in batch mode. See bug <a href="">142126</a>.</li>
483<li>In order to avoid breaking existing clients while fixing bug
484<a href="">102780</a>,
485the new formatter behavior (i.e. format comments while formatting the whole
486compilation unit) will be activated only if a specific flag was set.
488This flag is defined in CodeFormatter and named <code>'F_INCLUDE_COMMENTS'</code>.
489Clients will have to combine it with existing CodeFormatter.K_COMPILATION_UNIT
490or CodeFormatter.UNKNOWN kinds to see the fix for this bug activated...
492Here's its complete new API changes done on
496 * Flag used to include the comments during the formatting of the code
497 * snippet.
498 *
499 * This flag can only be combined with following kinds:
500 * . {@link #K_COMPILATION_UNIT}
501 * . {@link #K_UNKNOWN}
502 *
503 * Note also that it has an effect only when the option
504 * {@link DefaultCodeFormatterConstants
506 * is set to {@link DefaultCodeFormatterConstants#TRUE} while calling
507 * {@link #format(int, String, int, int, int, String)} or
508 * {@link #format(int, String, IRegion[], int, String)} methods
509 *
510 * For example, with the Eclipse default formatter options, the formatting of
511 * the following code snippet using {@link #K_COMPILATION_UNIT}:
512 *
513 * public class X {
514 * /**
515 * * This is just a simple example to show that comments will be formatted while processing a compilation unit only if the constant flag <code>F_INCLUDE_COMMENT</code> flag is set.
516 * * @param str The input string */
517 * void foo(String str){}}
518 *
519 * will produce the following output:
520 *
521 * public class X {
522 * /**
523 * * This is just a simple example to show that comments will be formatted while processing a compilation unit only if the constant flag <code>F_INCLUDE_COMMENT</code> flag is set.
524 * *
525 * * @param str The input string
526 * */
527 * void foo(String str){
528 * }
529 * }
530 *
531 * Adding this flavor to the kind given while formatting the same source
532 * (e.g. {@link #K_COMPILATION_UNIT} | {@link #F_INCLUDE_COMMENTS})
533 * will produce the following output instead:
534 *
535 * public class X {
536 * /**
537 * * This is just a simple example to show that comments will be formatted
538 * * while processing a compilation unit only if the constant flag
539 * * <code>F_INCLUDE_COMMENT</code> flag is set.
540 * *
541 * * @param str
542 * * The input string
543 * */
544 * void foo(String str){
545 * }
546 * }
547 *
548 * <i><u>Note</u>: Although we're convinced that the formatter should
549 * always include the comments while processing a
550 * {@link #K_COMPILATION_UNIT kind of compilation unit}, we
551 * have decided to add a specific flag to fix this formatter incorrect behavior.
552 * This will prevent all existing clients using the {@link #K_COMPILATION_UNIT}
553 * kind to be broken while formatting.</i>
554 *
555 * @since 3.4
556 */
557public static final int F_INCLUDE_COMMENTS = 0x1000;
559Note that CodeFormatter.UNKNOWN and CodeFormatter.K_COMPILATION_UNIT
560specification will be updated to include this new possible combination:
563 * Unknown kind
564 *
565 * Note that since 3.4, the {@link #F_INCLUDE_COMMENTS} flag can be added
566 * to this constant in order to get the comments formatted if a
567 * compilation unit is processed.
568 */
569public static final int K_UNKNOWN = 0x00;
572 * Kind used to format a compilation unit
573 *
574 * Note that using this constant, the javadoc comments are only indented while
575 * processing the compilation unit.
576 *
577 * <b>Since 3.4</b>, if the corresponding comment option is set to
578 * <code>true</code> then it is also possible to format the comments on the fly
579 * by adding the {@link #F_INCLUDE_COMMENTS} flag to this kind of format.
580 */
581public static final int K_COMPILATION_UNIT = 0x08;
586<h3>Problem Reports Fixed</h3>
587<a href="">142126</a>
588utilizing multiple CPUs for Java compiler
589<br><a href="">102780</a>
590[formatter] CodeFormatter does not format Javadoc
591<br><a href="">219855</a>
592[1.5][compiler] StackOverflowError during: "Requesting Java AST from selection"
593<br><a href="">223986</a>
594Invalid incompatible return type error
595<br><a href="">226890</a>
596[jsr199] enable CompilerToolTests#testCompilerOneClassWithEclipseCompiler4 on Linux
597<br><a href="">226673</a>
598CompletionContext.getVisibleElements(..) doesn't find assignable fields
599<br><a href="">178982</a>
600[assist] Bad static import relevance in content assist
601<br><a href="">225563</a>
602Class with compile errors results in invalid class file format
603<br><a href="">226313</a>
604Anonymous enum type has wrong name and source range
605<br><a href="">223685</a>
606[clean-up] Necessary cast removed
607<br><a href="">82712</a>
608[1.5] Code assist does not show method parameters from static imports
609<br><a href="">226134</a>
610CCE in SourceMethod.getDefaultValue() for constructor
611<br><a href="">97310</a>
612code assist for type variable bounds: should not suggest classes
613<br><a href="">224402</a>
614[compiler] CCE in compiler: MissingTypeBinding cannot be cast to ProblemReferenceBinding
615<br><a href="">96604</a>
616[1.5][codeassist] missing proposals for wildcard capture
618<a name="v_852"></a>
620Eclipse Platform Build Notes<br>
621Java development tools core</h1>
622Eclipse SDK 3.4M7 - April 8, 2008
623<br>Project org.eclipse.jdt.core v_852
624(<a href="">cvs</a>).
625<h2>What's new in this drop</h2>
627<h3>Problem Reports Fixed</h3>
628<a href="">215331</a>
629[assist] Inconsistent completions for member types
630<br><a href="">221904</a>
631Java Model Exception while trying to open *.class file
632<br><a href="">223488</a>
633'' does not exist in PackageBinding.getAnnotations()
634<br><a href="">193045</a>
635[1.5][assist] Code completion fails in inner class w/ foreach loop
636<br><a href="">223899</a>
637Base type var should not be proposed before Object var in == case
638<br><a href="">225577</a>
639[compiler] Default abstract methods should be tagged as synthetic
640<br><a href="">133005</a>
641BinaryTypeConverter cannot convert generic type reference.
642<br><a href="">224351</a>
643Regression in performance test FullSourceWorkspaceModelTests#testFindType
644<br><a href="">215975</a>
645new field declaration CompletionProposal cuts changes initial prefix
646<br><a href="">217078</a>
647[compiler] compiler.regression.RuntimeTests#test0001_memory_exhaustion failing when using IBM JRE
648<br><a href="">219099</a>
649Content assist does not not offer multiple choices for ambiguous static imports
651<a name="v_851"></a>
653Eclipse Platform Build Notes<br>
654Java development tools core</h1>
655Eclipse SDK 3.4M7 - April 1, 2008
656<br>Project org.eclipse.jdt.core v_851
657(<a href="">cvs</a>).
658<h2>What's new in this drop</h2>
660<h3>Problem Reports Fixed</h3>
661<a href="">224715</a>
662Missing abstract problem methods should be tagged as synthetic methods
664<a name="v_850"></a>
666Eclipse Platform Build Notes<br>
667Java development tools core</h1>
668Eclipse SDK 3.4M6 - March 28, 2008 - 3.4 MILESTONE 6
669<br>Project org.eclipse.jdt.core v_850
670(<a href="">cvs</a>).
671<h2>What's new in this drop</h2>
673<h3>Problem Reports Fixed</h3>
674<a href="">224458</a>
675[search] NPE trying to search for a field declaration
677<a name="v_849"></a>
679Eclipse Platform Build Notes<br>
680Java development tools core</h1>
681Eclipse SDK 3.4M6 - March 27, 2008
682<br>Project org.eclipse.jdt.core v_849
683(<a href="">cvs</a>).
684<h2>What's new in this drop</h2>
686<h3>Problem Reports Fixed</h3>
687<a href="">223878</a>
688[content assist] Illegal argument exception from content assist
690<a name="v_848"></a>
692Eclipse Platform Build Notes<br>
693Java development tools core</h1>
694Eclipse SDK 3.4M6 - March 26, 2008
695<br>Project org.eclipse.jdt.core v_848
696(<a href="">cvs</a>).
697<h2>What's new in this drop</h2>
699<h3>Problem Reports Fixed</h3>
700<a href="">222534</a>
701[compiler] wrong field hides field warning for private fields
703<a name="v_847"></a>
705Eclipse Platform Build Notes<br>
706Java development tools core</h1>
707Eclipse SDK 3.4M6 - March 25, 2008
708<br>Project org.eclipse.jdt.core v_847
709(<a href="">cvs</a>).
710<h2>What's new in this drop</h2>
712<li><code>JavaCore.COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION_ALL_TAGS</code> introduced in 3.4M3 has been renamed to
716<h3>Problem Reports Fixed</h3>
717<a href="">223838</a>
718[dom] AnnotationBinding.isRecovered() always return false
719<br><a href="">221267</a>
720[1.5][compiler] missing annotation bindings on interface method parameter
722<a name="v_846"></a>
724Eclipse Platform Build Notes<br>
725Java development tools core</h1>
726Eclipse SDK 3.4M6 - March 23, 2008
727<br>Project org.eclipse.jdt.core v_846
728(<a href="">cvs</a>).
729<h2>What's new in this drop</h2>
731<li>The batch compiler now uses the <code>Class-Path</code> clause of jar files
732 manifests to complete the classpath. For jar files that are specified on a
733 <code>-classpath</code> option, the compiler follows <code>Class-Path</code>
734 clauses recursively and appends each referenced jar file to the end of the
735 classpath, provided it is not on the classpath yet. See bug
736 <a href="">97332</a> for
737 further details.</li>
738<li>Added APIs to call the batch compiler from a stand-alone application:
739 <code>BatchCompiler#compiler(String, PrintWriter, PrintWriter, CompilationProgress)</code> and
740 <code>BatchCompiler#compiler(String[], PrintWriter, PrintWriter, CompilationProgress)</code>.
741 See <a href="">217233</a> for more details.</li>
742<li>All search reference matches may now have a local element. Clients can access
743this local element using the <code>getLocalElement()</code> method on the new
744<code>ReferenceMatch</code> API class:<pre>
747 * An abstract Java search match that represents a reference.
748 *
749 * This class is not intended to be subclassed by clients.
750 *
751 * @since 3.4
752 */
753public abstract class ReferenceMatch extends SearchMatch {
756 * Returns the local element of this search match, or <code>null</code> if none.
757 * A local element is the inner most element that contains the reference and that is not
758 * reachable by navigating from the root of the {@link IJavaModel} using
759 * {@link IParent#getChildren()}.
760 *
761 * Known element types for local elements are {@link IJavaElement#ANNOTATION},
762 * {@link IJavaElement#LOCAL_VARIABLE} and {@link IJavaElement#TYPE_PARAMETER}.
763 * However clients should not assume that this set of element types is closed as
764 * other types of elements may be returned in the future, e.g. if new types
765 * of elements are added in the Java model. Clients can only assume that the
766 * {@link IJavaElement#getParent() parent} chain of this local element eventually leads
767 * to the element from {@link #getElement()}.
768 *
769 * The local element being an {@link IAnnotation} is the most usal case. For example,
770 *
771 * . searching for the references to the method <code>Annot.clazz()</code> in
772 *
773 * public class Test {
774 * void method() {
775 * @Annot(clazz=Test.class) int x;
776 * }
777 * }
778 *
779 * will return one {@link MethodReferenceMatch} match whose local element
780 * is the {@link IAnnotation} '<code>Annot</code>'.
781 *
782 * . searching for the references to the type <code>Deprecated</code> in
783 *
784 * public class Test {
785 * @Deprecated void method() {}
786 * }
787 *
788 * will return one {@link TypeReferenceMatch} match whose local element
789 * is the {@link IAnnotation} '<code>Deprecated</code>'.
790 *
791 * . searching for the references to the field <code>CONST</code> in
792 *
793 * @Num(number= Num.CONST)
794 * @interface Num {
795 * public static final int CONST= 42;
796 * int number();
797 * }
798 *
799 * will return one {@link FieldReferenceMatch} match whose local element
800 * is the {@link IAnnotation} '<code>Num</code>'.
801 *
802 * A local element may also be a {@link ILocalVariable} whose type is the referenced type. For example,
803 *
804 * . searching for the references to the type <code>Test</code> in
805 *
806 * public class Test {
807 * void foo() {
808 * Test local;
809 * }
810 * }
811 *
812 * will return one {@link TypeReferenceMatch} match whose local element
813 * is the {@link ILocalVariable} '<code>local</code>'.
814 *
815 * Or a local element may be an {@link ITypeParameter} that extends the referenced type. For example,
816 *
817 * . searching for the references to the type <code>Test</code> in
818 *
819 * public class X&lt;T extends Test&gt; {
820 * }
821 *
822 * will return one {@link TypeReferenceMatch} match whose local element
823 * is the {@link ITypeParameter} '<code>T</code>'.
824 *
825 * @return the local element of this search match, or <code>null</code> if none.
826 *
827 * @since 3.4
828 */
829public IJavaElement getLocalElement() {
830 return null;
833See <a href="">bug 209996</a>
834for more details.
839<h3>Problem Reports Fixed</h3>
840<a href="">209996</a>
841[search] Add a way to access the most local enclosing annotation for reference search matches
842<br><a href="">222902</a>
843[Javadoc] Missing description should not be warned in some cases
844<br><a href="">217233</a>
845[compiler] Add compiler API to call the batch compiler from a stand-alone application
846<br><a href="">223495</a>
847[assist] Member types of missing parametrized types are not proposed
848<br><a href="">223479</a>
849[assist] Member types of missing types are not proposed in class body
850<br><a href="">223253</a>
851NPE in TypeBinding.getName
852<br><a href="">223360</a>
853[search] Huge error message if OOME while building workspace
854<br><a href="">222213</a>
855Java model not updated after quick fix 'Add unimplemented methods'
856<br><a href="">97332</a>
857[compiler] Add support for classpath specified in manifest file inside a jar
858<br><a href="">218824</a>
859[DOM/AST] incorrect code leads to IllegalArgumentException during AST creation
860<br><a href="">183211</a>
861[1.5][compiler] single static import for a field is ambiguous
863<a name="v_845"></a>
865Eclipse Platform Build Notes<br>
866Java development tools core</h1>
867Eclipse SDK 3.4M6 - March 18, 2008
868<br>Project org.eclipse.jdt.core v_845
869(<a href="">cvs</a>).
870<h2>What's new in this drop</h2>
872<li>Added new API <code>org.eclipse.jdt.core.JavaCore#getOptionForConfigurableSeverity(int)</code>
873 to link back problem IDs to options that configure problems:<br>
875 /**
876 * Returns the option that can be used to configure the severity of the
877 * compiler problem identified by problemID if any, null otherwise. Non-null
878 * return values are taken from the constants defined by this class whose
879 * names start with COMPILER_PB and for which the possible values of the
880 * option are defined by { "error", "warning", "ignore" }. A null return
881 * value means that the provided problem ID is unknown or that it matches
882 * a problem whose severity cannot be configured.
883 * @param problemID one of the problem IDs defined by {@link IProblem}
884 * @return the option that can be used to configure the severity of the
885 * compiler problem identified by problemID if any, null otherwise
886 * @since 3.4
887 */
888 public static String getOptionForConfigurableSeverity(int problemID) {...}
893<h3>Problem Reports Fixed</h3>
894<a href="">222399</a>
895Regression in several Model performance tests
896<br><a href="">221680</a>
897Classpath gets reset randomly in headless mode
898<br><a href="">222458</a>
899IType#getFullyQualifiedParameterizedName() is underspecified
900<br><a href="">221723</a>
901Override method fails with and error saying &quot;1&quot; due to a java.lang.ArrayIndexOutOfBoundsException:
902<br><a href="">218603</a>
903[api] provide a mapping from problem id to preference key
904<br><a href="">219625</a>
905[1.5][compiler] Generics related AbstractMethodError that is not given by Sun Java
906<br><a href="">216930</a>
907[1.5][compiler] Wrong compiler error when using static method with same signature as non static one but with variable arguments
908<br><a href="">222457</a>
909Javadoc fixes for IType#get*QualifiedName()
910<br><a href="">222080</a>
911[assist] Wrong proposals order when completing on an item of an array
912<br><a href="">222182</a>
913[formatter] AIOOB in Util.getLineNumber(
914<br><a href="">156168</a>
915[model] type separator is ignored in BinaryType.getFullyQualifiedName(enclosingTypeSeparator)
917<a name="v_844"></a>
919Eclipse Platform Build Notes<br>
920Java development tools core</h1>
921Eclipse SDK 3.4M6 - March 11, 2008
922<br>Project org.eclipse.jdt.core v_844
923(<a href="">cvs</a>).
924<h2>What's new in this drop</h2>
926<li>CodeAssist: Added new API to give more information about completion context:<br>
928<li>CompletionContext#getEnclosingElement() - This method returns the innermost enclosing Java element which contains the completion location.
930public class X {
931 void foo() {
932 zzz| // ctrl+space at | location
933 }
936<code>getEnclosingElement()</code> returns the IMethod named foo.
938<li>CompletionContext#getVisibleElements(String) - This method returns the elements visible from the completion location.
940public class X {
941 p.Y f1;
942 p.Z f2;
943 void foo() {
944 p.Y l1;
945 p.Z l2;
946 zzz| // ctrl+space at | location
947 }
950<code>getVisibleElements("Lp/Z;")</code> returns the IField named f2 and the ILocalVariable name l2.
955public class CompletionRequestor {
956 ...
958 /**
959 * Returns whether this requestor requires an extended context.
960 *
961 * By default this method return <code>false</code>.
962 *
963 * @return <code>true</code> if this requestor requires an extended context.
964 *
965 * @see CompletionContext#isExtended()
966 *
967 * @since 3.4
968 */
969 public boolean isExtendedContextRequired() {...}
971 /**
972 * Sets whether this requestor requires an extended context.
973 *
974 * @param require <code>true</code> if this requestor requires an extended context.
975 *
976 * @see CompletionContext#isExtended()
977 *
978 * @since 3.4
979 */
980 public void setRequireExtendedContext(boolean require) {...}
982 ...
984 </pre>
985 <pre>
986public class CompletionContext {
987 ...
989 /**
990 * Returns whether this completion context is an extended context.
991 * Some methods of this context can be used only if this context is an extended context but an extended context consumes more memory.
992 *
993 * @return <code>true</code> if this completion context is an extended context.
994 *
995 * @since 3.4
996 */
997 public boolean isExtended() {...}
999 /**
1000 * Returns the innermost enclosing Java element which contains the completion location or <code>null</code> if this element cannot be computed.
1001 * The returned Java element and all Java elements in the same compilation unit which can be navigated to from the returned Java element are special Java elements:
1002 *
1003 * - they are based on the current content of the compilation unit's buffer, they are not the result of a reconcile operation
1004 * - they are not updated if the buffer changes.
1005 * - they do not contain local types which are not visible from the completion location.
1006 * - they do not give information about categories. {@link IMember#getCategories()} will return an empty array
1007 *
1008 * Reasons for returning <code>null</code> include:
1009 *
1010 * - the compilation unit no longer exists
1011 * - the completion occurred in a binary type. However this restriction might be relaxed in the future.
1012 *
1013 * @return the innermost enclosing Java element which contains the completion location or <code>null</code> if this element cannot be computed.
1014 *
1015 * @exception UnsupportedOperationException if the context is not an extended context
1016 *
1017 * @since 3.4
1018 */
1019 public IJavaElement getEnclosingElement() {...}
1021 /**
1022 * Return the elements which are visible from the completion location and which can be assigned to the given type.
1023 * An element is assignable if its type can be assigned to a variable
1024 * of the given type, as specified in section 5.2 of <em>The Java Language
1025 * Specification, Third Edition</em> (JLS3).
1026 * A visible element is either:
1027 *
1028 * - a {@link ILocalVariable} - the element type is {@link ILocalVariable#getTypeSignature()}
1029 * - a {@link IField} - the element type is {@link IField#getTypeSignature()}
1030 * - a {@link IMethod} - the element type is {@link IMethod#getReturnType()}
1031 *
1032 * Returned elements defined in the completed compilation unit are special Java elements:
1033 *
1034 * - they are based on the current content of the compilation unit's buffer, they are not the result of a reconcile operation
1035 * - they are not updated if the buffer changes.
1036 * - they do not contain local types which are not visible from the completion location.
1037 * - they do not give information about categories. {@link IMember#getCategories()} will return an empty array
1038 *
1039 * Note the array can be empty if:
1040 *
1041 * - the compilation unit no longer exists
1042 * - the completion occurred in a binary type. However this restriction might be relaxed in the future.
1043 *
1044 * @param typeSignature elements which can be assigned to this type are returned.
1045 * If <code>null</code> there is no constraint on the type of the returned elements.
1046 *
1047 * @return elements which are visible from the completion location and which can be assigned to the given type.
1048 *
1049 * @exception UnsupportedOperationException if the context is not an extended context
1050 *
1051 * @see #isExtended()
1052 *
1053 * @since 3.4
1054 */
1055 public IJavaElement[] getVisibleElements(String typeSignature) {...}
1057 ...
1059 </pre>
1063<h3>Problem Reports Fixed</h3>
1064<a href="">221266</a>
1065Bad syntax error report on string literals containing escapes
1066<br><a href="">202470</a>
1067[assist] provide all elements that are visible
1069<a name="v_843"></a>
1071Eclipse Platform Build Notes<br>
1072Java development tools core</h1>
1073Eclipse SDK 3.4M6 - March 5, 2008
1074<br>Project org.eclipse.jdt.core v_843
1075(<a href="">cvs</a>).
1076<h2>What's new in this drop</h2>
1078<li>Added new compiler option to control whether Exception and Throwable are
1079 considered or not while reporting unused declared thrown exceptions.
1081 * Compiler option ID: Reporting Unused Declared Thrown Exception Exempts Exception And Throwable.
1082 * When enabled, the compiler will issue an error or a warning when a
1083 * method or a constructor is declaring a checked exception else than
1084 * java.lang.Throwable or java.lang.Exception as thrown,
1085 * but its body actually raises neither that exception, nor any other
1086 * exception extending it. When disabled, the compiler will issue an
1087 * error or a warning when a method or a constructor is declaring a
1088 * checked exception (including java.lang.Throwable and
1089 * java.lang.Exception) as thrown, but its body actually raises
1090 * neither that exception, nor any other exception extending it.
1091 * The severity of the unused declared thrown exception problem is
1093 * This diagnostic is further tuned by options
1096 *
1097 * Option id: "org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable"
1098 * Possible values: { "enabled", "disabled" }
1099 * Default: "enabled"
1100 </pre>
1101(note that the specification for unusedDeclaredThrownException has been
1102amended accordingly, and that another option that had been added in 3.4M5 but
1103never surfaced in the IDE has been withdrawn; see
1104<a href="">bug 219461</a>
1105for details)
1109<h3>Problem Reports Fixed</h3>
1110<a href="">221215</a>
1111[assist] NPE in problem reporter
1112<br><a href="">219461</a>
1113[compiler][options] Limit warning for unecessary unchecked exceptions to Throwable and Exception
1115<a name="v_842"></a>
1117Eclipse Platform Build Notes<br>
1118Java development tools core</h1>
1119Eclipse SDK 3.4M6 - March 4, 2008
1120<br>Project org.eclipse.jdt.core v_842
1121(<a href="">cvs</a>).
1122<h2>What's new in this drop</h2>
1124<li>Added one new <code>IJavaSearchConstants</code> fine grained search API
1125constant to reduce the search to type references used in the <code>instanceof</code>
1126pattern (see <a href="">bug 221130</a>):
1129 * Return only type references used as an instance of.
1130 *
1131 * When this flag is set, only {@link TypeReferenceMatch} matches will be
1132 * returned.
1133 *
1134 * @since 3.4
1135 * @category limitTo
1136 */
1142<h3>Problem Reports Fixed</h3>
1143<a href="">221110</a>
1144[search] NPE at org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.removeKey
1145<br><a href="">221130</a>
1146[search] No fine-grain search for instanceof criteria
1147<br><a href="">220565</a>
1148adapt to new API ICompilationUnit.applyEdits
1149<br><a href="">219937</a>
1150Javadoc content assist does not propose method inherited from interface
1151<br><a href="">167262</a>
1152[1.5][compiler] @Override specification
1153<br><a href="">220967</a>
1154[compiler] Extra secondary error in presence of missing type
1155<br><a href="">220811</a>
1156NPE trying to update classpath
1157<br><a href="">215841</a>
1158[search] Opening Type Hierarchy extremely slow
1159<br><a href="">220542</a>
1160Trailing separator in classpath entry lost
1162<a name="v_841"></a>
1164Eclipse Platform Build Notes<br>
1165Java development tools core</h1>
1166Eclipse SDK 3.4M6 - February 27, 2008
1167<br>Project org.eclipse.jdt.core v_841
1168(<a href="">cvs</a>).
1169<h2>What's new in this drop</h2>
1171<li>New API added on ICompilationUnit to apply text edits to its buffer.
1173public interface ICompilationUnit {
1174 ...
1176 /**
1177 * Applies a text edit to the compilation unit's buffer.
1178 *
1179 * @param edit the edit to apply
1180 * @param monitor the progress monitor to use or <code>null</code> if
1181 * no progress should be reported
1182 * @return the undo edit
1183 * @throws JavaModelException if this edit can not be applied to the
1184 * compilation unit's buffer. Reasons include:
1185 * This compilation unit does not exist
1186 * ({@link IJavaModelStatusConstants#ELEMENT_DOES_NOT_EXIST}).
1187 * The provided edit can not be applied as there is a problem with the
1188 * text edit locations ({@link IJavaModelStatusConstants#BAD_TEXT_EDIT_LOCATION}).
1189 *
1190 * @since 3.4
1191 */
1192 public UndoEdit applyTextEdit(TextEdit edit, IProgressMonitor monitor) throws JavaModelException;
1193 ...
1196Implementors of IBuffer can now additionally implement <code>IBuffer.ITextEditCapability</code>
1197and provide the implementation for <code>applyTextEdit</code>. Calls to <code>ICompilationUnit.applyTextEdit</code>
1198will then be forwarded to this API.
1200<li>Compiler is now also able to recover missing parameterized types (e.g. <code>Zork&lt;String&gt;</code>).</li>
1203<h3>Problem Reports Fixed</h3>
1204<a href="">196200</a>
1205[jsr269] Need annotation bindings even when code contains errors
1206<br><a href="">220361</a>
1207[1.5][compiler] Compiler incorrectly rejects static raw member type as parameterized
1208<br><a href="">220111</a>
1209[1.5][compiler] Type mismatch errors on identical types; code compiles with javac
1210<br><a href="">117694</a>
1211[api] Applying edits to a ICompilationUnit.
1212<br><a href="">220453</a>
1213Addition of externalFoldersManager inside the java model manager breaks retrieval of JavaCore.getOptions() with no headless eclipse
1218<a name="v_840"></a>
1220Eclipse Platform Build Notes<br>
1221Java development tools core</h1>
1222Eclipse SDK 3.4M6 - February 26, 2008
1223<br>Project org.eclipse.jdt.core v_840
1224(<a href="">cvs</a>).
1225<h2>What's new in this drop</h2>
1227<li>External library folders are now supported. One can use the existing API <code>JavaCore#newLibraryEntry(...)</code> with
1228 a file system path to an external library folder to add this folder on the build path. Note that one can also use an external source folder
1229 as a source attachment using the same API.</li>
1230<li>Code Assist: Added API to give information about the completed token location.<br>
1231Clients can call <code>CompletionContext#getTokenLocation()</code> to know if the completed token is at the start of the member
1232or at the start of a statement. In the future this API could be improved and more locations could be recognized.
1234public class CompletionContext {
1235 ...
1237 /**
1238 * The completed token is the first token of a member declaration.
1239 * e.g.
1240 *
1241 * public class X {
1242 * Foo| // completion occurs at |
1243 * }
1244 *
1245 * @see #getTokenLocation()
1246 *
1247 * @since 3.4
1248 */
1249 public static final int TL_MEMBER_START = 1;
1251 /**
1252 * The completed token is the first token of a statement.
1253 * e.g.
1254 *
1255 * public class X {
1256 * public void bar() {
1257 * Foo| // completion occurs at |
1258 * }
1259 * }
1260 *
1261 * @see #getTokenLocation()
1262 *
1263 * @since 3.4
1264 */
1265 public static final int TL_STATEMENT_START = 2;
1267 /**
1268 * Returns the location of completion token being proposed.
1269 * The returned location is a bit mask which can contain some values
1270 * of the constants declared on this class whose name starts with <code>TL</code>,
1271 * or possibly values unknown to the caller.
1272 *
1273 * The set of different location values is expected to change over time.
1274 * It is strongly recommended that clients do <b>not</b> assume that
1275 * the location contains only known value, and code defensively for
1276 * the possibility of unexpected future growth.
1277 *
1278 * @return the location
1279 *
1280 * @since 3.4
1281 */
1282 public int getTokenLocation() {...}
1284 ...
1290<h3>Problem Reports Fixed</h3>
1291<a href="">218397</a>
1292[search] Can't find references of generic local class.
1293<br><a href="">220171</a>
1294[assist] No suggesting 'hasGenericError' variable
1295<br><a href="">182537</a>
1296Enhance classpath container to support external class folders
1297<br><a href="">202467</a>
1298[assist] provide info what is completed
1300<a name="v_839"></a>
1302Eclipse Platform Build Notes<br>
1303Java development tools core</h1>
1304Eclipse SDK 3.4M6 - February 22, 2008
1305<br>Project org.eclipse.jdt.core v_839
1306(<a href="">cvs</a>).
1307<h2>What's new in this drop</h2>
1309<li>The compiler is now better resilient to missing types referenced from sources. This will improve secondary errors,
1310and all JDT stack manipulating DOM AST and bindings. Annotation processors are also now able to see such missing types
1311(also see bug <a href="">196200</a>). Note that with current support,
1312parameterized types are not fully recovered.</li>
1315<h3>Problem Reports Fixed</h3>
1317<a name="v_838"></a>
1319Eclipse Platform Build Notes<br>
1320Java development tools core</h1>
1321Eclipse SDK 3.4M6 - February 19, 2008
1322<br>Project org.eclipse.jdt.core v_838
1323(<a href="">cvs</a>).
1324<h2>What's new in this drop</h2>
1326<h3>Problem Reports Fixed</h3>
1327<a href="">217995</a>
1328Documentation for JavaCore#COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION [...] fails to make crystal-clear the cases of Exception and Throwable
1329<br><a href="">217910</a>
1330Parameter annotations should be displayed in front of each parameter in disassembled code
1331<br><a href="">219064</a>
1332Javadoc of AST#newTypeDeclaration() refers to inexistent setEnumeration(..)
1333<br><a href="">212096</a>
1334LocalVariable.hashCode throws NPE when this.parent is null
1336<a name="v_837"></a>
1338Eclipse Platform Build Notes<br>
1339Java development tools core</h1>
1340Eclipse SDK 3.4M6 - February 12, 2008
1341<br>Project org.eclipse.jdt.core v_837
1342(<a href="">cvs</a>).
1343<h2>What's new in this drop</h2>
1345<h3>Problem Reports Fixed</h3>
1346<a href="">217907</a>
1347Compact mode in the disassembler should also work for annotation values
1349<a name="v_836"></a>
1351Eclipse Platform Build Notes<br>
1352Java development tools core</h1>
1353Eclipse SDK 3.4M5 - February 5, 2008 - 3.4 MILESTONE 5
1354<br>Project org.eclipse.jdt.core v_836
1355(<a href="">cvs</a>).
1356<h2>What's new in this drop</h2>
1358<h3>Problem Reports Fixed</h3>
1359<a href="">212100</a>
1360[dom] Can't create binding to inner class
1362<a name="v_835"></a>
1364Eclipse Platform Build Notes<br>
1365Java development tools core</h1>
1366Eclipse SDK 3.4M5 - February 3, 2008
1367<br>Project org.eclipse.jdt.core v_835
1368(<a href="">cvs</a>).
1369<h2>What's new in this drop</h2>
1371<li>Code formatter: 3 new options were added to better handle the addition of new lines after annotations.
1374 * FORMATTER / Option to insert a new line after an annotation on a member (package, class, method, field declaration)
1375 * - option id: "org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member"
1376 * - possible values: { INSERT, DO_NOT_INSERT }
1377 * - default: INSERT
1378 *
1380 * FORMATTER / Option to insert a new line after an annotation on a parameter
1381 * - option id: "org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter"
1382 * - possible values: { INSERT, DO_NOT_INSERT }
1383 * - default: DO_NOT_INSERT
1384 *
1386 * FORMATTER / Option to insert a new line after an annotation on a local variable
1387 * - option id: "org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable"
1388 * - possible values: { INSERT, DO_NOT_INSERT }
1389 * - default: INSERT
1391The addition of new lines after annotations has been discussed in <a href="">bug 122247</a><br>
1392Also note that previously available code formatter constant FORMATTER_INSERT_NEW_LINE_AFTER_ANNOTATION has been deprecated.<br>
1393All new options must be enabled to activate old strategy.
1397<h3>Problem Reports Fixed</h3>
1398<a href="">210425</a>
1399[1.5][compiler] @SuppressWarnings(&quot;unchecked&quot;) not considered necessary for unconstrained generic parameters
1400<br><a href="">217059</a>
1401Regression in Model performance test testProjectFindUnknownType()
1402<br><a href="">212912</a>
1403Javadoc bugs in IMemberValuePair
1404<br><a href="">122247</a>
1405[formatter] add support to handle parameter annotations
1406<br><a href="">216686</a>
1407[1.5][compiler] Failures of inference and overload resolution
1408<br><a href="">216897</a>
1409[compiler][options] Compile error when disabling 'Ignore Unchecked Exception'
1410<br><a href="">216683</a>
1411[1.5][compiler] Confusion when homnymous types in local and enclosing scope
1412<br><a href="">202490</a>
1413Javadoc of JavaCore options hard to use
1414<br><a href="">216291</a>
1415[1.5][compiler] Compiler messages should use &quot;1.5&quot; instead of &quot;5.0&quot;
1416<br><a href="">216875</a>
1417[search] Field- and LocalVariableReferenceMatch confuse read/write for field access on LHS
1418<br><a href="">216895</a>
1419NPE found in .log while running ClasspathTests
1420<br><a href="">216817</a>
1421JavaCore.getEncoding() fails when there is no workspace.
1423<a name="v_834"></a>
1425Eclipse Platform Build Notes<br>
1426Java development tools core</h1>
1427Eclipse SDK 3.4M5 - January 29, 2008
1428<br>Project org.eclipse.jdt.core v_834
1429(<a href="">cvs</a>).
1430<h2>What's new in this drop</h2>
1432<h3>Problem Reports Fixed</h3>
1433<a href="">216692</a>
1434[1.5][compiler] Protected type not visible in subclass
1435<br><a href="">216565</a>
1436[1.5][compiler] Cannot convert T to T
1437<br><a href="">216747</a>
1438Should use AVOID_NATURE_CONFIG when updating project references
1439<br><a href="">208260</a>
1440[search] Document the pattern syntax for SearchPattern#createPattern(String, ..)
1441<br><a href="">130778</a>
1442Invalid annotation elements cause no annotation to be in the AST
1443<br><a href="">210524</a>
1444[batch][compiler][options] -warn:allDeprecation -warn:-deprecation does not behave as documented
1445<br><a href="">216100</a>
1446[1.5][compiler] Brigdes are not correcly generated
1447<br><a href="">213249</a>
1448Regression in TypeHierarchy when a super-class can't be resolved
1449<br><a href="">215681</a>
1450Type Hierarchy crashes in some cases of user input
1451<br><a href="">215333</a>
1452[batch][compiler][options] the documentation for specialParamHiding needs improvement
1453<br><a href="">100278</a>
1454[compiler] Add compiler warning for explicitly declared runtime exceptions
1455<br><a href="">191090</a>
1456[compiler] Preserve annotations for the problem methods
1457<br><a href="">215843</a>
1458[1.5][compiler] Compiler error with generic covariant
1460<a name="v_833"></a>
1462Eclipse Platform Build Notes<br>
1463Java development tools core</h1>
1464Eclipse SDK 3.4M5 - January 22, 2008
1465<br>Project org.eclipse.jdt.core v_833
1466(<a href="">cvs</a>).
1467<h2>What's new in this drop</h2>
1469<h3>Problem Reports Fixed</h3>
1470<a href="">215976</a>
1471PublicScanner doesn't contain all the fix of Scanner
1472<br><a href="">215759</a>
1473DOM AST regression tests should be improved
1474<br><a href="">215858</a>
1475[AST/DOM] CCE when using ASTParser.setFocalPosition(int) with the position of a field declaration name
1476<br><a href="">127739</a>
1477IAE in Signature.getReturnType while hovering a method of type having $ in its name
1478<br><a href="">210746</a>
1479Class folder in build path does not refresh properly
1480<br><a href="">138882</a>
1481Should surface failure to get CU's contents
1482<br><a href="">214972</a>
1483[1.5][compiler] Wrong Signature for methods inside InnerTypes with generics .
1485<a name="v_832"></a>
1487Eclipse Platform Build Notes<br>
1488Java development tools core</h1>
1489Eclipse SDK 3.4M5 - January 15, 2008
1490<br>Project org.eclipse.jdt.core v_832
1491(<a href="">cvs</a>).
1492<h2>What's new in this drop</h2>
1494<h3>Problem Reports Fixed</h3>
1495<a href="">215019</a>
1496[search] JavaSearchBugsTests.testBug181488a is randomly failing
1497<br><a href="">213703</a>
1498[search] Indexing job progress should be more detailed
1499<br><a href="">186540</a>
1500[search] engine should allocate progress monitor ticks for reporting package declarations
1501<br><a href="">214731</a>
1502[batch][compiler] ClasspathJar#getPath does not honor its contract
1503<br><a href="">211588</a>
1504[batch][compiler][options] undue interactions between enableJavadoc, javadoc and allJavadoc
1505<br><a href="">213427</a>
1506EFS throws NullPointerException
1507<br><a href="">181981</a>
1508[model] Linked Source Folders with Parallel package structure do not work with occurrences
1509<br><a href="">213692</a>
1510[compiler] Wrong unnecessary NON-NLS diagnostic after syntax recovery
1511<br><a href="">214450</a>
1512annotation is broken
1513<br><a href="">176831</a>
1514[search] No search results due to malformed search scope
1515<br><a href="">214647</a>
1516[dom] NPE in MethodBinding.getParameterAnnotations(..)
1519<a name="v_831"></a>
1521Eclipse Platform Build Notes<br>
1522Java development tools core</h1>
1523Eclipse SDK 3.4M5 - January 8, 2008
1524<br>Project org.eclipse.jdt.core v_831
1525(<a href="">cvs</a>).
1526<h2>What's new in this drop</h2>
1528<h3>Problem Reports Fixed</h3>
1529<a href="">209936</a>
1530[javadoc] Missing code implementation in the compiler on inner classes
1531<br><a href="">210681</a>
1532Code assist fails to propose inner type
1533<br><a href="">211881</a>
1534[assist] Code assist fails inside an if statement
1535<br><a href="">212153</a>
1536stack overflow when press ctrl+space
1537<br><a href="">210518</a>
1538[batch][compiler][options] -warn:unused wrongly behaves as -warn:+unused
1539<br><a href="">214002</a>
1540[dom] NPE in MethodBinding.getParameterAnnotations()
1541<br><a href="">153765</a>
1542[search] Reference to package is not found in qualified annotation
1543<br><a href="">213284</a>
1544[formatter] NPE on formatting region
1545<br><a href="">213283</a>
1546[formatter] AIOOBE when formatting region
1547<br><a href="">213570</a>
1548IncrementalTests#testRenameMainType() fails with IBM JRE 6.0
1549<br><a href="">213509</a>
1550[dom] IMethodBinding.getParameterAnnotations returns annotations for wrong parameter
1551<br><a href="">204749</a>
1552[1.5][javadoc] NPE in JavadocQualifiedTypeReference
1553<br><a href="">212834</a>
1554[dom] IMethodBinding.getParameterAnnotations does not return annotations
1555<br><a href="">211718</a>
1556[1.5][compiler] compiler error with nested enum in class using generics
1558<a name="v_830"></a>
1560Eclipse Platform Build Notes<br>
1561Java development tools core</h1>
1562Eclipse SDK 3.4M5 - December 18, 2007
1563<br>Project org.eclipse.jdt.core v_830
1564(<a href="">cvs</a>).
1565<h2>What's new in this drop</h2>
1567<h3>Problem Reports Fixed</h3>
1568<a href="">212857</a>
1569[dom] AST has wrong source range after parameter with array-valued annotation
1570<br><a href="">212224</a>
1571Unresolvable type causes ArrayOutOfBoundsException in IType.resolveType
1572<br><a href="">212769</a>
1573SetClasspathOperation no longer adds project for refresh
1574<br><a href="">164862</a>
1575[ast rewrite] ListRewrite.remove(...) does not remove inserted nodes
1577<a name="v_829"></a>
1579Eclipse Platform Build Notes<br>
1580Java development tools core</h1>
1581Eclipse SDK 3.4M4 - December 12, 2007 - 3.4 MILESTONE 4
1582<br>Project org.eclipse.jdt.core v_829
1583(<a href="">cvs</a>).
1584<h2>What's new in this drop</h2>
1586<h3>Problem Reports Fixed</h3>
1587<a href="">212599</a>
1588[search] fine grained search must not report matches in Javadoc
1590<a name="v_828"></a>
1592Eclipse Platform Build Notes<br>
1593Java development tools core</h1>
1594Eclipse SDK 3.4M4 - December 8, 2007
1595<br>Project org.eclipse.jdt.core v_828
1596(<a href="">cvs</a>).
1597<h2>What's new in this drop</h2>
1599<h3>Problem Reports Fixed</h3>
1600<a href="">209993</a>
1601[1.5][search] Generic search does not work properly while using BindingKey
1602<br><a href="">211781</a>
1604<br><a href="">211779</a>
1605[search] better name for SUPERTYPE_TYPE_REFERENCE?
1606<br><a href="">211872</a>
1607[search] References to annotations not found in class file without source
1608<br><a href="">210094</a>
1609Creating type hierarchy does not report progress
1611<a name="v_827"></a>
1613Eclipse Platform Build Notes<br>
1614Java development tools core</h1>
1615Eclipse SDK 3.4M4 - December 4, 2007
1616<br>Project org.eclipse.jdt.core v_827
1617(<a href="">cvs</a>).
1618<h2>What's new in this drop</h2>
1620<li>Added <code>IJavaSearchConstants</code> API constants for fine grained search
1621(see <a href="">bug 155013</a>).<br>
1622These constants are additional flags which should be set on <code>limitTo</code>
1623parameter while calling <code>SearchPattern.createPattern(...)</code> methods.<br>
1624They can be combined to get results of multiple fine grain search in one single query.
1626Here is the exhaustive list of these fine grain search flags:<pre>
1629 * Return only type references used as the type of a field declaration.
1630 *
1631 * When this flag is set, only {@link TypeReferenceMatch} matches will be
1632 * returned.
1633 *
1634 * @since 3.4
1635 * @category limitTo
1636 */
1640 * Return only type references used as the type of a local variable declaration.
1641 *
1642 * When this flag is set, only {@link TypeReferenceMatch} matches will be
1643 * returned.
1644 *
1645 * @since 3.4
1646 * @category limitTo
1647 */
1651 * Return only type references used as the type of a method parameter
1652 * declaration.
1653 *
1654 * When this flag is set, only {@link TypeReferenceMatch} matches will be
1655 * returned.
1656 *
1657 * @since 3.4
1658 * @category limitTo
1659 */
1663 * Return only type references used as a super type or as a super interface.
1664 *
1665 * When this flag is set, only {@link TypeReferenceMatch} matches will be
1666 * returned.
1667 *
1668 * @since 3.4
1669 * @category limitTo
1670 */
1674 * Return only type references used in a throws clause.
1675 *
1676 * When this flag is set, only {@link TypeReferenceMatch} matches will be
1677 * returned.
1678 *
1679 * @since 3.4
1680 * @category limitTo
1681 */
1685 * Return only type references used in a cast expression.
1686 *
1687 * When this flag is set, only {@link TypeReferenceMatch} matches will be
1688 * returned.
1689 *
1690 * @since 3.4
1691 * @category limitTo
1692 */
1693int CAST_TYPE_REFERENCE = 0x800;
1696 * Return only type references used in a catch header.
1697 *
1698 * When this flag is set, only {@link TypeReferenceMatch} matches will be
1699 * returned.
1700 *
1701 * @since 3.4
1702 * @category limitTo
1703 */
1704int CATCH_TYPE_REFERENCE = 0x1000;
1707 * Return only type references used in class instance creation.
1708 *
1709 * When this flag is set, only {@link TypeReferenceMatch} matches will be
1710 * returned.
1711 *
1712 * Example:
1713 * public class Test {
1714 * Test() {}
1715 * static Test bar() {
1716 * return new <i>Test</i>();
1717 * }
1718 * }
1719 *
1720 * Searching references to the type <code>Test</code> using this flag in the
1721 * above snippet will match only the reference in italic.
1722 *
1723 * Note that array creations are not returned when using this flag.
1724 *
1725 * @since 3.4
1726 * @category limitTo
1727 */
1731 * Return only type references used as a method return type.
1732 *
1733 * When this flag is set, only {@link TypeReferenceMatch} matches will be
1734 * returned.
1735 *
1736 * @since 3.4
1737 * @category limitTo
1738 */
1739int RETURN_TYPE_REFERENCE = 0x4000;
1742 * Return only type references used in an import declaration.
1743 *
1744 * When this flag is set, only {@link TypeReferenceMatch} matches will be
1745 * returned.
1746 *
1747 * @since 3.4
1748 * @category limitTo
1749 */
1753 * Return only type references used as an annotation.
1754 *
1755 * When this flag is set, only {@link TypeReferenceMatch} matches will be
1756 * returned.
1757 *
1758 * @since 3.4
1759 * @category limitTo
1760 */
1764 * Return only type references used as a type argument in a parameterized
1765 * type or a parameterized method.
1766 *
1767 * When this flag is set, only {@link TypeReferenceMatch} matches will be
1768 * returned.
1769 *
1770 * @since 3.4
1771 * @category limitTo
1772 */
1776 * Return only type references used as a type variable bound.
1777 *
1778 * When this flag is set, only {@link TypeReferenceMatch} matches will be
1779 * returned.
1780 *
1781 * @since 3.4
1782 * @category limitTo
1783 */
1787 * Return only type references used as a wildcard bound.
1788 *
1789 * When this flag is set, only {@link TypeReferenceMatch} matches will be
1790 * returned.
1791 *
1792 * @since 3.4
1793 * @category limitTo
1794 */
1798 * Return only super field accesses or super method invocations (e.g. using the
1799 * <code>super</code> qualifier).
1800 *
1801 * When this flag is set, the kind of returned matches will depend on the
1802 * specified nature of the searched element:
1803 * . for the {@link #FIELD} nature, only {@link FieldReferenceMatch}
1804 * matches will be returned,
1805 * . for the {@link #METHOD} nature, only {@link MethodReferenceMatch}
1806 * matches will be returned.
1807 *
1808 * @since 3.4
1809 * @category limitTo
1810 */
1811int SUPER_REFERENCE = 0x1000000;
1814 * Return only qualified field accesses or qualified method invocations.
1815 *
1816 * When this flag is set, the kind of returned matches will depend on the
1817 * specified nature of the searched element:
1818 * . for the {@link #FIELD} nature, only {@link FieldReferenceMatch}
1819 * matches will be returned,
1820 * . for the {@link #METHOD} nature, only {@link MethodReferenceMatch}
1821 * matches will be returned.
1822 *
1823 * @since 3.4
1824 * @category limitTo
1825 */
1826int QUALIFIED_REFERENCE = 0x2000000;
1829 * Return only primary field accesses or primary method invocations (e.g. using
1830 * the <code>this</code> qualifier).
1831 *
1832 * When this flag is set, the kind of returned matches will depend on the
1833 * specified nature of the searched element:
1834 * . for the {@link #FIELD} nature, only {@link FieldReferenceMatch}
1835 * matches will be returned,
1836 * . for the {@link #METHOD} nature, only {@link MethodReferenceMatch}
1837 * matches will be returned.
1838 *
1839 * @since 3.4
1840 * @category limitTo
1841 */
1842int THIS_REFERENCE = 0x4000000;
1845 * Return only field accesses or method invocations without any qualification.
1846 *
1847 * When this flag is set, the kind of returned matches will depend on the
1848 * specified nature of the searched element:
1849 * . for the {@link #FIELD} nature, only {@link FieldReferenceMatch}
1850 * matches will be returned,
1851 * . for the {@link #METHOD} nature, only {@link MethodReferenceMatch}
1852 * matches will be returned.
1853 *
1854 * @since 3.4
1855 * @category limitTo
1856 */
1857int IMPLICIT_THIS_REFERENCE = 0x8000000;
1860<li>Fix for <a href="">bug 209642</a> required the index version to be incremented.
1861 Indexes will be automatically regenerated upon subsequent search queries (accounting for indexing notification in search progress
1862 dialogs).
1864<li>Search Engine is now able to find references to annotations inside class files which do not have any attached sources.
1865(see <a href="">bug 211366</a> for more details).
1869<h3>Problem Reports Fixed</h3>
1870<a href="">211857</a>
1871[search] Standard annotations references not found on binary fields and methods when no source is attached
1872<br><a href="">211366</a>
1873[search] does not return references to types in binary classes
1874<br><a href="">211762</a>
1875ConcurrentModificationException initializing Java Tools
1876<br><a href="">210498</a>
1877Extra type in hierarchy when focusing on local class
1878<br><a href="">211609</a>
1879[compiler][1.5] Unable to resolve annotations defined with a Class attribute
1880<br><a href="">209936</a>
1881[javadoc] Missing code implementation in the compiler on inner classes
1882<br><a href="">206597</a>
1883IType#resolveType(String) is not implemented for binary types
1884<br><a href="">207775</a>
1885incomplete source range for anonymous type
1886<br><a href="">211290</a>
1887Wrong delta renaming .classpath file
1888<br><a href="">207890</a>
1889Checking out JFace and then SWT leads to a strange state
1890<br><a href="">209642</a>
1891[index] Improve search for annotation references by using a specific category
1892<br><a href="">155013</a>
1893[search] [DCR] More finegrained options for Java search
1895<a name="v_826"></a>
1897Eclipse Platform Build Notes<br>
1898Java development tools core</h1>
1899Eclipse SDK 3.4M4 - November 27, 2007
1900<br>Project org.eclipse.jdt.core v_826
1901(<a href="">cvs</a>).
1902<h2>What's new in this drop</h2>
1904<li>Tuned the compiler diagnosis for unused <code>@SuppressWarnings</code> to only complain if the relevant warnings were effectively
1905enabled when compiling. So if you turn off certain warnings, then the compiler is not going to suggest getting rid of existing <code>@SuppressWarnings</code>
1906in your code, until you will have enabled these back, and the compiler will have proved that there is no occurrence of them.
1908<li>Added API <code>IMethod#getDefaultValue()</code> to retrieve the default value of an annotation method.</li>
1909<li>Added API <code>IMemberValuePair#K_SIMPLE_NAME</code> to indicate that the value kind of the value is a simple name reference.</li>
1910<li>Added API <code>IJavaProject#findElement(String, WorkingCopyOwner)</code> to retrieve a <code>IJavaElement</code> from a binding key.</li>
1913<h3>Problem Reports Fixed</h3>
1914<a href="">192670</a>
1915[api] need api to get from binding key to a IJavaElement
1916<br><a href="">210567</a>
1917[1.5][search] Parameterized type reference not found when used in type parameter bounds
1918<br><a href="">210922</a>
1919ArrayStoreException when formatting set of regions
1920<br><a href="">210353</a>
1921Improve documentation for overridingPackageDefaultMethod option in JavaCore#getDefaultOptions' javadoc
1922<br><a href="">208541</a>
1923[formatter] Formatter does not format whole region/selection
1924<br><a href="">210638</a>
1925[Debug] Can't restore Breakpoints view : concurrent access/hashmap
1926<br><a href="">210691</a>
1927[search] Type references position invalid in import references when using &quot;*&quot; pattern
1928<br><a href="">210689</a>
1929[search] Type references are not found in import declarations when JUnit tests only use working copies
1930<br><a href="">210565</a>
1931Null value is obtained from IMemberValuePair, when type is Enum
1932<br><a href="">209958</a>
1933Support getting default value from IMethod
1934<br><a href="">210310</a>
1935IJavaElementDelta contains wrong data after APT processor is enabled
1936<br><a href="">210213</a>
1937[1.5][compiler] Unused SuppressWarnings shouldn't complain if warnings are not even enabled
1938<br><a href="">210070</a>
1939Type hierarchy unpredictable
1940<br><a href="">210404</a>
1941Method parameters are not recovered when followed by an annotation with a syntax error
1942<br><a href="">210422</a>
1943[compiler] Need to have local bindings created in error cases
1944<br><a href="">210273</a>
1945Content Assist cannot cope with explicit parameter types
1947<a name="v_825"></a>
1949Eclipse Platform Build Notes<br>
1950Java development tools core</h1>
1951Eclipse SDK 3.4M4 - November 20, 2007
1952<br>Project org.eclipse.jdt.core v_825
1953(<a href="">cvs</a>).
1954<h2>What's new in this drop</h2>
1956<h3>Problem Reports Fixed</h3>
1957<a href="">209623</a>
1958NullPointerexception on List.toArray + F3
1959<br><a href="">209823</a>
1960IAnnotation#getSourceRange() and #getNameRange() throw JME on annotation of ILocalVariable
1961<br><a href="">209961</a>
1962[compiler][apt] NPE in apt processing
1963<br><a href="">209475</a>
1964BindingKey.isRawType() doesn't return the right result
1965<br><a href="">209222</a>
1966Stack overflow in TypeHierarchyPerfTest
1967<br><a href="">209661</a>
1968ILocalVariable for method parameter misses annotations
1969<br><a href="">209655</a>
1970[jsr199] export package should specify x-internal:=true
1972<a name="v_824"></a>
1974Eclipse Platform Build Notes<br>
1975Java development tools core</h1>
1976Eclipse SDK 3.4M4 - November 13, 2007
1977<br>Project org.eclipse.jdt.core v_824
1978(<a href="">cvs</a>).
1979<h2>What's new in this drop</h2>
1981<li>Added new compiler option to find redundant superinterfaces.
1983* COMPILER / Reporting Redundant Superinterface
1984* When enabled, the compiler will issue an error or a warning if a type
1985* explicitly implements an interface that is already implemented by any
1986* of its supertypes.
1987* - option id: "org.eclipse.jdt.core.compiler.problem.redundantSuperinterface"
1988* - possible values: { "error", "warning", "ignore" }
1989* - default: "ignore"
1991(see <a href="">bug 77918</a>)
1995<h3>Problem Reports Fixed</h3>
1997<a href="">200951</a>
1998[ast rewrite] removing parentheses yields syntax error
1999<br><a href="">209319</a>
2000[ast rewrite] @SuppressWarning is inserting an extra line break
2001<br><a href="">208383</a>
2002IProblem.UnusedWarningToken has wrong category
2003<br><a href="">209153</a>
2004[1.5][compiler] VerifyError due to generic cast to a non visible type
2005<br><a href="">209150</a>
2006[dom] Recovered type binding for &quot;java.lang.Object&quot; information are not complete
2007<br><a href="">186410</a>
2008[dom] StackOverflowError due to endless superclass bindings hierarchy
2009<br><a href="">77918</a>
2010[compiler] Unnecessary implementation of interface in class declaration
2011<br><a href="">208995</a>
2012Static method hides method from instance when using generics
2013<br><a href="">209054</a>
2014[search] for references to method finds wrong interface call
2015<br><a href="">208234</a>
2016Specify that CodeFormatter is not intended to be subclassed
2017<br><a href="">138018</a>
2018When passed unsupported javac -warn warning options, fail gracefully &amp; ignore
2019<br><a href="">206423</a>
2020Optimization opportunity in DefaultProblemFactory
2021<br><a href="">208960</a>
2022Internal Compiler Error on valid code with particular combination of org.eclipse.jdt.core.compiler.codegen.targetPlatform and o.e.j.c.c.source
2024<a name="v_823"></a>
2026Eclipse Platform Build Notes<br>
2027Java development tools core</h1>
2028Eclipse SDK 3.4M4 - November 6, 2007
2029<br>Project org.eclipse.jdt.core v_823
2030(<a href="">cvs</a>).
2031<h2>What's new in this drop</h2>
2033<h3>Problem Reports Fixed</h3>
2034<a href="">208807</a>
2035JavaCore.getDefaultOptions() throws an exception when there is no workspace
2036<br><a href="">178596</a>
2037[search] Search for method references does not find references to interface method
2038<br><a href="">207754</a>
2039[AST][DOM] source range of ParenthesizedExpression does not include the parenthesis
2040<br><a href="">187430</a>
2041Unresolved types surfacing through DOM AST for annotation default values
2042<br><a href="">207929</a>
2043No import added to declaring class if static member is 'class'
2044<br><a href="">207572</a>
2045[select] codeselect not available if unterminated string literal
2046<br><a href="">111093</a>
2047More problems with IMethodBinding#isSubsignature(..)
2048<br><a href="">206017</a>
2049[compiler] Type mistmatch on field declaration should be reported against initialization expression
2050<br><a href="">208263</a>
2051[ast rewrite] performance problems with lots of changes
2052<br><a href="">207758</a>
2053[1.5][compiler] Unused SupressWarnings detection should consider more error situations
2054<br><a href="">207573</a>
2055[1.5][compiler] Internal compiler error: ClassCastException / ArrayBinding
2056<br><a href="">208030</a>
2057[1.7][compiler] Missing unused type argument warning for constructor invocations
2058<br><a href="">208386</a>
2059Annotation Javadoc glitches
2061<a name="v_822"></a>
2063Eclipse Platform Build Notes<br>
2064Java development tools core</h1>
2065Eclipse SDK 3.4M3 - October 31, 2007 - 3.4 MILESTONE 3
2066<br>Project org.eclipse.jdt.core v_822
2067(<a href="">cvs</a>).
2068<h2>What's new in this drop</h2>
2070<li>Added API <code>CodeFormatter#format(int, String, IRegion[], int, String)</code> to allow the formatting of a set of
2071 <code>org.eclipse.jface.text.IRegion</code>s.</li>
2074<h3>Problem Reports Fixed</h3>
2075<a href="">203304</a>
2076Allow to format set of regions
2078<a name="v_821"></a>
2080Eclipse Platform Build Notes<br>
2081Java development tools core</h1>
2082Eclipse SDK 3.4M3 - October 27, 2007
2083<br>Project org.eclipse.jdt.core v_821
2084(<a href="">cvs</a>).
2085<h2>What's new in this drop</h2>
2087<li>Added new compiler optional warning for diagnosing unnecessary @SuppressWarnings annotation. This is mostly helpful
2088to get rid of <code>@SupressWarnings(...)</code> annotations which were necessary a while ago, but are no longer useful.
2089Note that <code>@SuppressWarnings("all")</code> is still silencing the warning for unnecessary <code>@SuppressWarnings</code>,
2090as it is the master switch to silence ALL warnings.
2091Also added option: <code>JavaCore.COMPILER_PB_UNUSED_WARNING_TOKEN</code> and problem ID
2094* COMPILER / Reporting Unnecessary @SuppressWarnings
2095* When enabled, the compiler will issue an error or a warning when encountering @SuppressWarnings annotation
2096* for which no corresponding warning got detected in the code. This diagnostic is provided to help developers to get
2097* rid of transient @SuppressWarnings no longer needed. Note that <code>@SuppressWarnings("all")</code> is still
2098* silencing the warning for unnecessary <code>@SuppressWarnings</code>, as it is the master switch to silence ALL warnings.
2099* - option id: "org.eclipse.jdt.core.compiler.problem.unusedWarningToken"
2100* - possible values: { "error", "warning", "ignore" }
2101* - default: "warning"
2103(see <a href="">bug 127533</a>)
2105<li>Added the following APIs to support annotation in the Java model (see <a href="">bug 79112</a>
2106 for more details):
2107 <ul>
2108 <li><pre>
2109public interface IAnnotation extends IJavaElement, ISourceReference {
2110 String getElementName();
2111 IMemberValuePair[] getMemberValuePairs() throws JavaModelException;
2112 ISourceRange getNameRange() throws JavaModelException;
2113 int getOccurrenceCount();
2114} </pre></li>
2115 <li><pre>
2116public interface IMemberValuePair {
2117 int K_INT = 1;
2118 int K_BYTE = 2;
2119 int K_SHORT = 3;
2120 int K_CHAR = 4;
2121 int K_FLOAT = 5;
2122 int K_DOUBLE = 6;
2123 int K_LONG = 7;
2124 int K_BOOLEAN = 8;
2125 int K_STRING = 9;
2126 int K_ANNOTATION = 10;
2127 int K_CLASS = 11;
2128 int K_QUALIFIED_NAME = 12;
2129 int K_UNKNOWN = 13;
2130 String getMemberName();
2131 Object getValue();
2132 int getValueKind();
2133} </pre></li>
2134 <li><pre>
2135public interface IAnnotatable {
2136 IAnnotation getAnnotation(String name);
2137 IAnnotation[] getAnnotations() throws JavaModelException;
2138} </pre><code>IField</code>, <code>IMethod</code>, <code>IType</code>, <code>IPackageDeclaration</code>, and <code>ILocalVariable</code>
2139 now implement this interface.</li>
2140 <li><pre>
2141public interface IJavaElement extends IAdaptable {
2142 ...
2143 int ANNOTATION = 16;
2144 ...
2145} </pre></li>
2146 <li><pre>
2147public interface IJavaElementDelta {
2148 ...
2149 public int F_ANNOTATIONS = 0x400000;
2150 public IJavaElementDelta[] getAnnotationDeltas();
2151 ...
2152} </pre></li>
2153 </ul>
2155<li>Code Assist: Added API <code>CompletionRequestor#CompletionRequestor(boolean ignoreAll)</code> to be able to ignore all completion kinds by default instead of propose all completion kinds by default.
2157<li>Code Assist: Improved code assist inside an <code>if</code> statement with an <code>instanceof</code> expression as condition.<br>
2158When a member access is completed in this case then the members of the <code>instanceof</code> type are proposed and the receiver is casted to this type.
2160Object x = ... ;
2161if (x instanceof IType) {
2162 x.get|code assist
2164The method <code>IType#getFullyQualifiedName()</code> will be proposed and the receiver will be casted to <code>IType</code>.
2165The completion string will be '((IType)x).getFullyQualifiedName()'.<br>
2167These proposals will be proposed with the new proposal kinds <code>CompletionProposal#METHOD_REF_WITH_CASTED_RECEIVER</code> and
2169These new proposals require new API on CompletionProposal to be usable by client.
2171public class CompletionProposal {
2172 ...
2174 /**
2175 * Completion is a reference to a method with a casted receiver.
2176 * This kind of completion might occur in a context like
2177 * &lt;code&gt;"^();"&lt;/code&gt; and complete it to
2178 * &lt;code&gt;""((X)receiver).foo();"&lt;/code&gt;.
2179 * &lt;p&gt;
2180 * The following additional context information is available
2181 * for this kind of completion proposal at little extra cost:
2182 * &lt;ul&gt;
2183 * &lt;li&gt;{@link #getDeclarationSignature()} -
2184 * the type signature of the type that declares the method that is referenced
2185 * &lt;/li&gt;
2186 * &lt;li&gt;{@link #getFlags()} -
2187 * the modifiers flags of the method that is referenced
2188 * &lt;/li&gt;
2189 * &lt;li&gt;{@link #getName()} -
2190 * the simple name of the method that is referenced
2191 * &lt;/li&gt;
2192 * &lt;li&gt;{@link #getReceiverSignature()} -
2193 * the type signature of the receiver type. It's the type of the cast expression.
2194 * &lt;/li&gt;
2195 * &lt;li&gt;{@link #getSignature()} -
2196 * the method signature of the method that is referenced
2197 * &lt;/li&gt;
2198 * &lt;/ul&gt;
2199 * &lt;/p&gt;
2200 *
2201 * @see #getKind()
2202 *
2203 * @since 3.4
2204 */
2205 public static final int METHOD_REF_WITH_CASTED_RECEIVER;
2207 /**
2208 * Completion is a reference to a field with a casted receiver.
2209 * This kind of completion might occur in a context like
2210 * &lt;code&gt;"recevier.ref^ = 0;"&lt;/code&gt; and complete it to
2211 * &lt;code&gt;"((X)receiver).refcount = 0;"&lt;/code&gt;.
2212 * &lt;p&gt;
2213 * The following additional context information is available
2214 * for this kind of completion proposal at little extra cost:
2215 * &lt;ul&gt;
2216 * &lt;li&gt;{@link #getDeclarationSignature()} -
2217 * the type signature of the type that declares the field that is referenced
2218 * &lt;/li&gt;
2219 * &lt;li&gt;{@link #getFlags()} -
2220 * the modifiers flags (including ACC_ENUM) of the field that is referenced
2221 * &lt;/li&gt;
2222 * &lt;li&gt;{@link #getName()} -
2223 * the simple name of the field that is referenced
2224 * &lt;/li&gt;
2225 * &lt;li&gt;{@link #getReceiverSignature()} -
2226 * the type signature of the receiver type. It's the type of the cast expression.
2227 * &lt;/li&gt;
2228 * &lt;li&gt;{@link #getSignature()} -
2229 * the type signature of the field's type (as opposed to the
2230 * signature of the type in which the referenced field
2231 * is declared)
2232 * &lt;/li&gt;
2233 *
2234 * &lt;/ul&gt;
2235 * &lt;/p&gt;
2236 *
2237 * @see #getKind()
2238 *
2239 * @since 3.4
2240 */
2241 public static final int FIELD_REF_WITH_CASTED_RECEIVER;
2243 /**
2244 * Returns the type signature or package name of the relevant
2245 * receiver in the context, or &lt;code&gt;null&lt;/code&gt; if none.
2246 * &lt;p&gt;
2247 * This field is available for the following kinds of
2248 * completion proposals:
2249 * &lt;ul&gt;
2250 * &lt;li&gt;&lt;code&gt;FIELD_REF_WITH_CASTED_RECEIVER&lt;/code&gt; - type signature
2251 * of the type that cast the receiver of the field that is referenced&lt;/li&gt;
2252 * &lt;li&gt;&lt;code&gt;METHOD_REF_WITH_CASTED_RECEIVER&lt;/code&gt; - type signature
2253 * of the type that cast the receiver of the method that is referenced&lt;/li&gt;
2254 * &lt;/ul&gt;
2255 * For kinds of completion proposals, this method returns
2256 * &lt;code&gt;null&lt;/code&gt;. Clients must not modify the array
2257 * returned.
2258 * &lt;/p&gt;
2259 *
2260 * @return a type signature or a package name (depending
2261 * on the kind of completion), or &lt;code&gt;null&lt;/code&gt; if none
2262 * @see Signature
2263 *
2264 * @since 3.4
2265 */
2266 public char[] getReceiverSignature() {}
2268 /**
2269 * Returns the character index of the start of the
2270 * subrange in the source file buffer containing the
2271 * relevant receiver of the member being completed. This
2272 * receiver is an expression.
2273 *
2274 * &lt;p&gt;
2275 * This field is available for the following kinds of
2276 * completion proposals:
2277 * &lt;ul&gt;
2278 * &lt;li&gt;&lt;code&gt;FIELD_REF_WITH_CASTED_RECEIVER&lt;/code&gt;&lt;/li&gt;
2279 * &lt;li&gt;&lt;code&gt;METHOD_REF_WITH_CASTED_RECEIVER&lt;/code&gt;&lt;/li&gt;
2280 * &lt;/ul&gt;
2281 * For kinds of completion proposals, this method returns &lt;code&gt;0&lt;/code&gt;.
2282 * &lt;/p&gt;
2283 *
2284 * @return character index of receiver start position (inclusive)
2285 *
2286 * @since 3.4
2287 */
2288 public int getReceiverStart() {}
2290 /**
2291 * Returns the character index of the end (exclusive) of the subrange
2292 * in the source file buffer containing the
2293 * relevant receiver of the member being completed.
2294 *
2295 * * &lt;p&gt;
2296 * This field is available for the following kinds of
2297 * completion proposals:
2298 * &lt;ul&gt;
2299 * &lt;li&gt;&lt;code&gt;FIELD_REF_WITH_CASTED_RECEIVER&lt;/code&gt;&lt;/li&gt;
2300 * &lt;li&gt;&lt;code&gt;METHOD_REF_WITH_CASTED_RECEIVER&lt;/code&gt;&lt;/li&gt;
2301 * &lt;/ul&gt;
2302 * For kinds of completion proposals, this method returns &lt;code&gt;0&lt;/code&gt;.
2303 * &lt;/p&gt;
2304 *
2305 * @return character index of receiver end position (exclusive)
2306 *
2307 * @since 3.4
2308 */
2309 public int getReceiverEnd() {}
2311 ...
2317<h3>Problem Reports Fixed</h3>
2318<a href="">127533</a>
2319[1.5][compiler] warning on unused @SuppressWarnings annotations
2320<br><a href="">207445</a>
2321IMemberValuePair with heterogenous array values should be of kind K_UNKNOWN
2322<br><a href="">207257</a>
2323[search] SearchEngine returns incorrectly typed SearchMatch when searching for local variable declarations
2324<br><a href="">207441</a>
2325Wrong delta for files created in folders that are on a java project as classes folder
2326<br><a href="">207465</a>
2327[assist] CompletionRequestor javadoc doesn't specify if 'isIgnored' has an effect on required proposals
2328<br><a href="">193210</a>
2329[1.5][compiler] Internal compiler error java.lang.NullPointerException
2330<br><a href="">193909</a>
2331improve content assist after 'instanceof'
2332<br><a href="">207299</a>
2333[1.5][compiler] StackOverflow when eliminating type variables
2334<br><a href="">207418</a>
2335Need API on CompletionRequestor to ignore all proposals
2336<br><a href="">79112</a>
2337[1.5] [model] accessing annotation on Java elements
2339<a name="v_820"></a>
2341Eclipse Platform Build Notes<br>
2342Java development tools core</h1>
2343Eclipse SDK 3.4M3 - October 23, 2007
2344<br>Project org.eclipse.jdt.core v_820
2345(<a href="">cvs</a>).
2346<h2>What's new in this drop</h2>
2348<li>Added a new compiler participant API to notify participants when a project's build is finished
2349(see <a href="">bug 180107</a>):
2352 * Notifies this participant that a build has finished for the project.
2353 * This will be sent, even if buildStarting() was not sent when no source files needed to be compiled
2354 * or the build failed.
2355 * Only sent to participants interested in the project.
2356 * @param project the project about to build
2357 * @since 3.4
2358 */
2359public void buildFinished(IJavaProject project)
2362<li>The 'Null pointer access' potential programming problem is now reported as a
2363 warning by default, whereas it was previously ignored. See details in bug
2364 <a href="">192875</a>.
2368<h3>Problem Reports Fixed</h3>
2369<a href="">157541</a>
2370[organize imports] organize imports does not work in
2371<br><a href="">200724</a>
2372[compiler] Assignment with no effect undetected
2373<br><a href="">192875</a>
2374[compiler][options][null] Set &quot;Null pointer access&quot; to warning by default
2375<br><a href="">180107</a>
2376[PERF] need CompilationParticipant.buildComplete() API
2377<br><a href="">205860</a>
2378ASTParser.createBindings() returns [null]
2379<br><a href="">206027</a>
2380JavaCore#initializeAfterLoad - Util.setSourceAttachmentProperty performance
2381<br><a href="">206522</a>
2382Chkpii error in N20071016-0010
2383<br><a href="">206483</a>
2384[compiler][1.7] 1.7 VMs cannot read .class files generated with target 1.7
2386<a name="v_819"></a>
2388Eclipse Platform Build Notes<br>
2389Java development tools core</h1>
2390Eclipse SDK 3.4M3 - October 16, 2007
2391<br>Project org.eclipse.jdt.core v_819
2392(<a href="">cvs</a>).
2393<h2>What's new in this drop</h2>
2395<li>Added new compiler optional warning for diagnosing generic invocations of non-generic methods. Basically, from Java7 compliance on, a non-generic method
2396may be invoked with explicit type arguments syntax, which though unused are to be silently ignored. With this warning, the compiler will still flag such situations.
2397The warning is on by default, and is suppressable with <code>@SuppressWarnings("unused")</code>.
2398Also added option: <code>JavaCore.COMPILER_PB_UNUSED_TYPE_ARGUMENTS_FOR_METHOD_INVOCATION</code> and problem ID
2401* COMPILER / Reporting Presence of Type Arguments for a Non-Generic Method Invocation
2402* When enabled, the compiler will issue an error or a warning whenever type arguments are encountered for a
2403* non-generic method invocation. Note that prior to compliance level is "1.7", this situation would automatically result
2404* in an error. From Java7 on, unused type arguments are being tolerated, and optionally warned against.
2405* - option id: "org.eclipse.jdt.core.compiler.problem.unusedTypeArgumentsForMethodInvocation"
2406* - possible values: { "error", "warning", "ignore" }
2407* - default: "warning"
2410<li>Fix for <a href="">bug 122885</a> required the build state format to change.
2411 As a consequence, a full rebuild is expected when reusing existing workspaces.
2414<h3>Problem Reports Fixed</h3>
2415<a href="">168230</a>
2416[1.5][compiler] Non-generic methods can be called with type arguments
2417<br><a href="">206336</a>
2418[assist] CompletionProposal#getTokenStart() return always 0
2419<br><a href="">122885</a>
2420[builder] Project build states should not store the access restrictions templates
2421<br><a href="">205235</a>
2422[1.5][compiler] Eclipse syntax highlighting flag correct syntax as a hierarchy cycle
2423<br><a href="">200026</a>
2424[1.5][compiler] compiler message on incomplete enum declarations
2425<br><a href="">200016</a>
2426[1.5][compiler] better error message when enum constants must implement methods
2427<br><a href="">121024</a>
2428[1.5][compiler] Call of parametrized method reported ambiguous by eclipse not by javac
2429<br><a href="">206021</a>
2430Improve progress reporting in &quot;Initializing Java Tooling&quot; job
2431<br><a href="">204845</a>
2432BatchCompilerTest tests fail when the runtime JRE points to a path containing white spaces
2433<br><a href="">195823</a>
2434ClassFormatException during class file indexing
2435<br><a href="">120088</a>
2436[1.5][compiler] Incomparable types - object.getClass() == Some.class
2437<br><a href="">148046</a>
2438[compiler][1.5] should raise an incompatible types error when a given type variable cannot fulfill its bounds
2439<br><a href="">158870</a>
2440[1.5][compiler] javac inconvertible types on cast allowed by Eclipse
2441<br><a href="">89940</a>
2442[1.5][compiler] wrong cast allowed
2443<br><a href="">90437</a>
2444[1.5][compiler] Casting with Erasure generates warning in Eclipse but ERROR with JDK
2445<br><a href="">165352</a>
2446[1.5][compiler] Cast should be rejected
2449<a name="v_818"></a>
2451Eclipse Platform Build Notes<br>
2452Java development tools core</h1>
2453Eclipse SDK 3.4M3 - October 9, 2007
2454<br>Project org.eclipse.jdt.core v_818
2455(<a href="">cvs</a>).
2456<h2>What's new in this drop</h2>
2458<h3>Problem Reports Fixed</h3>
2459<a href="">205847</a>
2460[compiler] Compiler referencing Java model code
2462<a name="v_817"></a>
2464Eclipse Platform Build Notes<br>
2465Java development tools core</h1>
2466Eclipse SDK 3.4M3 - October 8, 2007
2467<br>Project org.eclipse.jdt.core v_817
2468(<a href="">cvs</a>).
2469<h2>What's new in this drop</h2>
2471<li>Added API <code>SearchPattern#R_CAMELCASE_SAME_PART_COUNT_MATCH</code>.<br>
2472This constant tells Search Engine to report matches which have <b>exactly</b>
2473the same count of parts (i.e. uppercase characters) than the Camel Case pattern
2474(see <a href="">bug 201426</a>):
2477 * Match rule: The search pattern contains a Camel Case expression with
2478 * a strict expected number of parts.
2479 *
2480 * Examples:
2481 * . 'HM' type string pattern will match 'HashMap' and 'HtmlMapper' types,
2482 * but not 'HashMapEntry'
2483 * . 'HMap' type string pattern will still match previous 'HashMap' and
2484 * 'HtmlMapper' types, but not 'HighMagnitude'
2485 *
2486 * This rule is not intended to be combined with any other match rule. In case
2487 * of other match rule flags are combined with this one, then match rule validation
2488 * will return a modified rule in order to perform a better appropriate search request
2489 * (see {@link #validateMatchRule(String, int)} for more details).
2490 *
2491 * @see CharOperation#camelCaseMatch(char[], char[], boolean) for a detailed
2492 * explanation of Camel Case matching.
2493 *
2494 * @since 3.4
2495 */
2496public static final int R_CAMELCASE_SAME_PART_COUNT_MATCH = 0x0100;
2498Note that this constant replace previous one <code>R_CAMEL_CASE_MATCH</code>
2499added while fixing <a href="">bug 124624</a>.<br>
2500Also note that <code>R_CAMELCASE_MATCH</code> is no longer deprecated as, finally,
2501Camel Case match rule flags are not supposed to be combined with other ones (e.g.
2502<code>R_PREFIX_MATCH</code> or <code>R_PATTERN_MATCH</code>).
2504<li>Existing API method <code>SearchPattern#validateMatchRule(String, int)</code>
2505has been modified to include the new <code>#R_CAMELCASE_SAME_PART_COUNT_MATCH</code> constant:
2508 * Validate compatibility between given string pattern and match rule.
2509 *
2510 * In certain circumstances described in the table below, the returned match rule is
2511 * modified in order to provide a more efficient search pattern:
2512 * 1. when the {@link #R_REGEXP_MATCH} flag is set, then <b>the pattern is
2513 * rejected</b> as this kind of match is not supported yet and <code>-1</code>
2514 * s returned).
2515 * 2. when the string pattern has <u>no</u> pattern characters (e.g. '*' or '?')
2516 * and the pattern match flag is set (i.e. the match rule has the {@link #R_PATTERN_MATCH}
2517 * flag), then <b>the pattern match flag is reset</b>.
2518 * Reversely, when the string pattern has pattern characters and the pattern
2519 * match flag is <u>not</u> set, then <b>the pattern match flag is set</b>.
2520 * 3. when the {@link #R_PATTERN_MATCH} flag is set then, <b>other
2521 * {@link #R_PREFIX_MATCH}, {@link #R_CAMELCASE_MATCH} or
2522 * {@link #R_CAMELCASE_SAME_PART_COUNT_MATCH} flags are reset</b>
2523 * if they are tentatively combined.
2524 * 4. when the {@link #R_CAMELCASE_MATCH} flag is set, then <b>other
2526 * flags are reset</b> if they are tentatively combined.
2527 * Reversely, if the string pattern cannot be a camel case pattern (i.e. contains
2528 * invalid Java identifier characters or does not have at least two uppercase
2529 * characters - one for method camel case patterns), then <b>the CamelCase
2530 * match flag is replaced with a prefix match flag</b>.
2531 * 5. when the {@link #R_CAMELCASE_SAME_PART_COUNT_MATCH} flag is set,
2532 * then <b>({@link #R_PREFIX_MATCH} flag is reset</b> if it's tentatively
2533 * combined.
2534 * Reversely, if the string pattern cannot be a camel case pattern (i.e. contains
2535 * invalid Java identifier characters or does not have at least two uppercase
2536 * characters - one for method camel case patterns), then <b>the CamelCase
2537 * part count match flag is reset</b>.
2538 * <i>Note: the rules are validated in the documented order. For example, it means
2539 * that as soon as the string pattern contains one pattern character, the pattern
2540 * match flag will be set and all other match flags reset: validation of rule 2)
2541 * followed by rule 3)...</i>
2542 *
2543 * @param stringPattern The string pattern
2544 * @param matchRule The match rule
2545 * @return Optimized valid match rule or -1 if an incompatibility was detected.
2546 * @since 3.2
2547 */
2548public static int validateMatchRule(String stringPattern, int matchRule) {
2553<li><code>CharOperation</code> and <code>SearchPattern</code> Camel Case API methods
2554added while fixing <a href="">bug 124624</a>)
2555have been modified to clarify the behavior of the additional boolean parameter.<br>
2556This parameter now indicates whether the pattern and the name should have the same
2557count of parts (i.e. uppercase characters) or not:
2560 *...
2561 * CamelCase can be restricted to match only the same count of parts. When this
2562 * restriction is specified the given pattern and the given name must have <b>exactly</b>
2563 * the same number of parts (i.e. the same number of uppercase characters).
2564 * For instance, 'HM' , 'HaMa' and 'HMap' patterns will match 'HashMap' and
2565 * 'HatMapper' <b>but not</b> 'HashMapEntry'.
2566 *...
2567 * . pattern = "HM".toCharArray()
2568 * name = "HashMapEntry".toCharArray()
2569 * result =&gt; (samePartCount == false)
2570 *...
2571 * @param samePartCount flag telling whether the pattern and the name should
2572 * have the same count of parts or not.
2573 * &nbsp;&nbsp;For example:
2574 * . 'HM' type string pattern will match 'HashMap' and 'HtmlMapper' types,
2575 * but not 'HashMapEntry'
2576 * . 'HMap' type string pattern will still match previous 'HashMap' and
2577 * 'HtmlMapper' types, but not 'HighMagnitude'
2578 * @return true if the pattern matches the given name, false otherwise
2579 * @since 3.4
2580 */
2581public static final boolean camelCaseMatch(char[] pattern, char[] name, boolean samePartCount) {
2586 *...
2587 * CamelCase can be restricted to match only the same count of parts. When this
2588 * restriction is specified the given pattern and the given name must have <b>exactly</b>
2589 * the same number of parts (i.e. the same number of uppercase characters).
2590 * For instance, 'HM' , 'HaMa' and 'HMap' patterns will match 'HashMap' and
2591 * 'HatMapper' <b>but not</b> 'HashMapEntry'.
2592 *...
2593 * . pattern = "HM".toCharArray()
2594 * patternStart = 0
2595 * patternEnd = 2
2596 * name = "HashMapEntry".toCharArray()
2597 * nameStart = 0
2598 * nameEnd = 12
2599 * result =&gt; (samePartCount == false)
2600 *...
2601 * @param samePartCount flag telling whether the pattern and the name should
2602 * have the same count of parts or not.
2603 * &nbsp;&nbsp;For example:
2604 * . 'HM' type string pattern will match 'HashMap' and 'HtmlMapper' types,
2605 * but not 'HashMapEntry'
2606 * . 'HMap' type string pattern will still match previous 'HashMap' and
2607 * 'HtmlMapper' types, but not 'HighMagnitude'
2608 * @return true if a sub-pattern matches the sub-part of the given name, false otherwise
2609 * @since 3.4
2610 */
2611public static final boolean camelCaseMatch(char[] pattern, int patternStart, int patternEnd, char[] name, int nameStart, int nameEnd, boolean prefixMatch) {
2615Note that similar modifications have been done on <code>SearchPattern</code>
2616corresponding methods:
2618public static final boolean camelCaseMatch(String pattern, String name, boolean samePartCount) {
2621public static final boolean camelCaseMatch(String pattern, int patternStart, int patternEnd, String name, int nameStart, int nameEnd, boolean samePartCount) {
2626<li>Modified API <code>CompletionProposal#getRequiredProposals()</code>.<br>
2627<code>TYPE_REF</code> proposals can now have a TYPE_REF proposal as required proposal
2629<li>CodeAssist: Member types and static members are proposed when the receiver is a not yet imported type.
2631package p;
2632public class X {
2633 public static void bar() {}
2636package q;
2637public class Y {
2638 public void foo() {
2640 }
2643When the completion occurs after <i></i> the method <code>X#bar()</code> is proposed with a required proposal to complete the not yet imported type.
2647<h3>Problem Reports Fixed</h3>
2648<a href="">44627</a>
2649[assist] improve content assist for static members when import missing
2650<br><a href="">125518</a>
2651[javadoc] Embedding html in a link placed in a @see JavaDoc tag causes a warning
2652<br><a href="">86769</a>
2653[javadoc] Warn/Error for 'Missing javadoc comments' doesn't recognize private inner classes
2654<br><a href="">168849</a>
2655[javadoc] Javadoc warning on @see reference in class level docs.
2656<br><a href="">190970</a>
2657[javadoc] &quot;field never read locally&quot; analysis should not consider javadoc
2658<br><a href="">195374</a>
2659[javadoc] Missing Javadoc warning for required qualification for inner types at 1.4 level
2660<br><a href="">192449</a>
2661[javadoc][assist] SelectionJavadocParser should not report problems
2662<br><a href="">73352</a>
2663[Javadoc] Missing description should be warned for all tags
2664<br><a href="">191931</a>
2665BatchImageBuilder sometimes marks resources as derived before deleting them
2666<br><a href="">201426</a>
2667[search] New SearchPattern constant R_CAMEL_CASE_MATCH name may be misleading for users
2669<a name="v_816"></a>
2671Eclipse Platform Build Notes<br>
2672Java development tools core</h1>
2673Eclipse SDK 3.4M3 - October 2, 2007
2674<br>Project org.eclipse.jdt.core v_816
2675(<a href="">cvs</a>).
2676<h2>What's new in this drop</h2>
2678<li>Added API <code>IJavaElementDelta#F_RESOLVED_CLASSPATH_CHANGED</code>. This flag is set when the resolved classpath of a Java project changes.
2679 This is independent from <code>IJavaElementDelta#F_CLASSPATH_CHANGED</code> which indicates that the raw classpath has changed.</li>
2682<h3>Problem Reports Fixed</h3>
2683<a href="">204624</a>
2684[1.5][compiler] No error on abstract method implementation with missing parameter generics
2685<br><a href="">204339</a>
2686[compiler] Invalid length for missing package declaration in empty file
2687<br><a href="">203587</a>
2688Improve messages consistency in case of generic methods having same erasure
2689<br><a href="">204662</a>
2690org.eclipse.jdt.internal.compiler.parser.Parser.endParse throws NullPointerException
2691<br><a href="">203662</a>
2692Perf: Unnecessary compilation when package added to second source root
2693<br><a href="">204805</a>
2694ICompilationUnit.commitWorkingCopy doesn't send typeHierarchyChanged
2695<br><a href="">204652</a>
2696&quot;Open Type&quot;: ClassCastException in conjunction with a class folder
2697<br><a href="">204534</a>
2698[1.5][compiler] Annoying consequence of method verification problem
2699<br><a href="">204417</a>
2700NullPointerException in SelectionOnQualifiedAllocationExpression.resolveType
2701<br><a href="">204536</a>
2702[1.5][compiler] Type variables insufficiently connected in presence of errors
2703<br><a href="">154071</a>
2704No notification of change if a project is added or removed from a container
2706<a name="v_815"></a>
2708Eclipse Platform Build Notes<br>
2709Java development tools core</h1>
2710Eclipse SDK 3.4M3 - September 25, 2007
2711<br>Project org.eclipse.jdt.core v_815
2712(<a href="">cvs</a>).
2713<h2>What's new in this drop</h2>
2715<h3>Problem Reports Fixed</h3>
2716<a href="">199668</a>
2717IAE in ASTNode.setSourceRange while editing a class
2718<br><a href="">204283</a>
2719[compiler] synthetic field for class literal access should not be created for int.class
2720<br><a href="">190094</a>
2721Java Outline Causes Eclipse Lock-up.
2722<br><a href="">203609</a>
2723[1.6][compiler] AccSynthetic should be set for package-info type if target &gt;= 1.6
2724<br><a href="">203579</a>
2725[dom] Length of VariableDeclarationFragment is not the same inside a 'for' initialisation
2726<br><a href="">204040</a>
2727Class literal code generation must be improved for cldc target
2728<br><a href="">204108</a>
2729unused import in jdt.internal.compiler.lookup.TypeBinding
2730<br><a href="">169049</a>
2731[1.5][compiler] Bogus bound mismatch errors
2732<br><a href="">203905</a>
2733[1.5][compiler] shows wrong error with generics
2734<br><a href="">203721</a>
2735[compiler] &quot;Parameter is never read&quot; not reported if unnecessary declared checked exception
2736<br><a href="">200158</a>
2737[compiler] inconsistent handling of unreachable code
2739<a name="v_814"></a>
2741Eclipse Platform Build Notes<br>
2742Java development tools core</h1>
2743Eclipse SDK 3.4M2 - September 19, 2007 - 3.4 MILESTONE 2
2744<br>Project org.eclipse.jdt.core v_814
2745(<a href="">cvs</a>).
2746<h2>What's new in this drop</h2>
2748<h3>Problem Reports Fixed</h3>
2749<a href="">204002</a>
2750AIOB when enabling CLDC 1.1
2752<a name="v_813"></a>
2754Eclipse Platform Build Notes<br>
2755Java development tools core</h1>
2756Eclipse SDK 3.4M2 - September 17, 2007
2757<br>Project org.eclipse.jdt.core v_813
2758(<a href="">cvs</a>).
2759<h2>What's new in this drop</h2>
2761<li>The <code>SearchPattern#R_CAMELCASE_MATCH</code> constant is no longer deprecated and<br>
2762the new constant <code>SearchPattern#R_CAMEL_CASE_MATCH</code> <b>will surely be renamed in next milestone</b>.<br>
2763(see <a href="">bug 201426</a> to follow-up
2764work in progress in this area...)
2768<h3>Problem Reports Fixed</h3>
2769<a href="">203577</a>
2770ClassFormatException viewing annotation with empty target annotation
2772<a name="v_812"></a>
2774Eclipse Platform Build Notes<br>
2775Java development tools core</h1>
2776Eclipse SDK 3.4M2 - September 15, 2007
2777<br>Project org.eclipse.jdt.core v_812
2778(<a href="">cvs</a>).
2779<h2>What's new in this drop</h2>
2781<li>Added new API <code>org.eclipse.jdt.core.JavaCore#VERSION_CLDC_1_1</code> in order to support the cldc1.1 target inside the IDE.
2785<h3>Problem Reports Fixed</h3>
2786<a href="">120223</a>
2787[compiler] Support for "-target cldc1.1"
2788<br><a href="">203241</a>
2789[compiler] Missing warning when a serializable class without serialVersionUID is also abstract
2790<br><a href="">203454</a>
2791NPE in compiler when processing annotations
2792<br><a href="">203342</a>
2793AST of a NumberLiteral has wrong source code range
2794<br><a href="">203089</a>
2795getDefaultOptions misses option
2796<br><a href="">159214</a>
2797[1.5] [compiler] Eclipse compiler wildcard bug
2798<br><a href="">202404</a>
2799[1.5][compiler] Incorrect handling of type variable bounds issued by capture conversion
2800<br><a href="">203318</a>
2801[1.5][compiler] Improper capture of wildcard with lesser bound than parameter
2802<br><a href="">202936</a>
2803[compiler] Compiler error for Java switch expression provides inaccurate list of allowed data types
2804<br><a href="">203061</a>
2805[compiler] Uninitialized member variables used in nonstatic initializers of peer members don't trigger compilation error
2806<br><a href="">203058</a>
2807Building workspace hangs in endless loop
2808<br><a href="">202830</a>
2809[compiler][1.5] eclipse fails to compile subclass when superclass has two generic methods of the same name
2810<br><a href="">203020</a>
2811formatter may change code semantics on unary operators
2812<br><a href="">201182</a>
2813[compiler][null] Null pointer access compiler warning fails when &quot;throw null&quot;
2816<a name="v_811"></a>
2818Eclipse Platform Build Notes<br>
2819Java development tools core</h1>
2820Eclipse SDK 3.4M2 - September 11, 2007
2821<br>Project org.eclipse.jdt.core v_811
2822(<a href="">cvs</a>).
2823<h2>What's new in this drop</h2>
2825<li>Added an option that allows @throws javadoc entries to defuse the unused
2826 declared thrown exception check.
2828COMPILER / Consider Reference in Doc Comment for Unused Declared Thrown Exception Check
2829 When enabled, the compiler will consider doc comment references to exceptions
2830 (i.e. @throws clauses) for the unused declared thrown exception check. Thus,
2831 documented exceptions will be considered as mandated as per doc contract.
2832 The severity of the unused declared thrown exception problem is controlled
2833 with option "org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException".
2834 Note: this option has no effect until the doc comment support is enabled
2835 according to the option "".
2836 - option id: "org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocReference"
2837 - possible values: { "enabled", "disabled" }
2838 - default: "enabled"
2840See bug <a href="">73244</a>
2841for details.
2844<h3>Problem Reports Fixed</h3>
2845<a href="">73244</a>
2846[options] Improve &quot;Unnecessary declaration of thrown checked exceptions&quot;
2847<br><a href="">89301</a>
2848Any user operation that would trigger an autobuild should cancel a running autobuild
2849<br><a href="">184298</a>
2850[compiler][null] Spurious &quot;Variable can only be null&quot; warning in case of an infinite loop
2851<br><a href="">201929</a>
2852Member of local type should not have a fully qualified name
2853<br><a href="">202134</a>
2854[1.6][compiler] org.eclipse.jdt.tests.compiler.regression.ConformTest#test003 never ends in .16 mode
2857<a name="v_810"></a>
2859Eclipse Platform Build Notes<br>
2860Java development tools core</h1>
2861Eclipse SDK 3.4M2 - September 4, 2007
2862<br>Project org.eclipse.jdt.core v_810
2863(<a href="">cvs</a>).
2864<h2>What's new in this drop</h2>
2866<h3>Problem Reports Fixed</h3>
2867<a href="">202076</a>
2868NPE in DeltaProcessor
2869<br><a href="">182359</a>
2870[compiler] optimize line number generation using the new getLineNumber method
2871<br><a href="">185350</a>
2872[1.6][compiler] Code generation seems to be much slower than in 1.5 mode
2873<br><a href="">196253</a>
2874[1.5][compiler] Failure to compile generics with wildcard and inner classes
2875<br><a href="">189158</a>
2876[1.5][compiler] Malformed generic signature for nested classes (. vs $)
2877<br><a href="">201062</a>
2878Missing library in project classpath even library exists
2880<a name="v_809"></a>
2882Eclipse Platform Build Notes<br>
2883Java development tools core</h1>
2884Eclipse SDK 3.4M2 - August 28, 2007
2885<br>Project org.eclipse.jdt.core v_809
2886(<a href="">cvs</a>).
2887<h2>What's new in this drop</h2>
2889<li>Prefix matching can be disabled while using Camel Case API methods. (see
2890<a href="">bug 124624</a>).<br>
2891Following API methods have been added on <code>org.eclipse.jdt.core.compiler.CharOperation</code>:
2894 * Answers true if the pattern matches the given name using CamelCase rules, or
2895 * false otherwise. char[] CamelCase matching does NOT accept explicit wild-cards
2896 * '*' and '?' and is inherently case sensitive.
2897 *
2898 * CamelCase denotes the convention of writing compound names without spaces,
2899 * and capitalizing every term. This function recognizes both upper and lower
2900 * CamelCase, depending whether the leading character is capitalized or not.
2901 * The leading part of an upper CamelCase pattern is assumed to contain a
2902 * sequence of capitals which are appearing in the matching name; e.g. 'NPE' will
2903 * match 'NullPointerException', but not 'NewPerfData'. A lower CamelCase pattern
2904 * uses a lowercase first character. In Java, type names follow the upper
2905 * CamelCase convention, whereas method or field names follow the lower
2906 * CamelCase convention.
2907 *
2908 * The pattern may contain lowercase characters, which will be match in a case
2909 * sensitive way. These characters must appear in sequence in the name.
2910 * For instance, 'NPExcep' will match 'NullPointerException', but not
2911 * 'NullPointerExCEPTION' or 'NuPoEx' will match 'NullPointerException', but not
2912 * 'NoPointerException'.
2913 *
2914 * Digit characters are treated in a special way. They can be used in the pattern
2915 * but are not always considered as leading character. For instance, both
2916 * 'UTF16DSS' and 'UTFDSS' patterns will match 'UTF16DocumentScannerSupport'.
2917 *
2918 * CamelCase may or may not match prefixes depending on the given parameter.
2919 * When the prefix match parameter is <code>true</code>, the given pattern can
2920 * match only a prefix of the given name. For instance, 'HM' , 'HaMa' and 'HMap'
2921 * patterns will all match 'HashMap', 'HatMapper' <b>and</b> 'HashMapEntry'.
2922 * Reversely, if the prefix match parameter is <code>false</code>, then pattern
2923 * and name must have <b>exactly</b> the same number of parts, and their last
2924 * parts must be identical if they contain lowercase characters.
2925 * For instance, 'HMap' and 'HaMap' patterns will match 'HashMap' but neither
2926 * 'HashMapEntry' nor 'HatMapper'. Note that when the last part does not contain
2927 * lowercase characters, then the name may end with lowercase characters.
2928 * So, 'HM' pattern will match both 'HashMap' <b>and</b> 'HatMapper' but will not
2929 * match 'HashMapEntry'.
2930 *
2931 * Examples:
2932 * 1. pattern = { 'N', 'P', 'E' }
2933 * name = { 'N', 'u','l', 'l', 'P', 'o', 'i', 'n', 't', 'e', 'r', 'E', 'x', 'c', 'e', 'p', 't', 'i', 'o', 'n' }
2934 * result =&gt; true
2935 * 2. pattern = { 'N', 'P', 'E' }
2936 * name = { 'N', 'o', 'P', 'e', 'r', 'm', 'i', 's', 's', 'i', 'o', 'n', 'E', 'x', 'c', 'e', 'p', 't', 'i', 'o', 'n' }
2937 * result =&gt; true
2938 * 3. pattern = { 'N', 'u', 'P', 'o', 'E', 'x' }
2939 * name = { 'N', 'u','l', 'l', 'P', 'o', 'i', 'n', 't', 'e', 'r', 'E', 'x', 'c', 'e', 'p', 't', 'i', 'o', 'n' }
2940 * result =&gt; true
2941 * 4. pattern = { 'N', 'u', 'P', 'o', 'E', 'x' }
2942 * name = { 'N', 'o', 'P', 'e', 'r', 'm', 'i', 's', 's', 'i', 'o', 'n', 'E', 'x', 'c', 'e', 'p', 't', 'i', 'o', 'n' }
2943 * result =&gt; false
2944 * 5. pattern = { 'n', p', 'e' }
2945 * name = { 'N', 'u','l', 'l', 'P', 'o', 'i', 'n', 't', 'e', 'r', 'E', 'x', 'c', 'e', 'p', 't', 'i', 'o', 'n' }
2946 * result =&gt; false
2947 * 6. pattern = { 'I', 'P', 'L', '3' }
2948 * name = { 'I', 'P', 'e', 'r', 's', 'p', 'e', 'c', 't', 'i', 'v', 'e', 'L', 'i', 's', 't', 'e', 'n', 'e', 'r', '3' }
2949 * result =&gt; true
2950 * 7. pattern = { 'H', M' }
2951 * name = { 'H', 'a', 's', 'h', 'M', 'a', 'p', 'E', 'n', 't', 'r', 'y' }
2952 * result =&gt; (prefixMatch == true)
2953 * 8. pattern = { 'H', M', 'a', 'p' }
2954 * name = { 'H', 'a', 't', 'M', 'a', 'p', 'p', 'e', 'r' }
2955 * result =&gt; (prefixMatch == true)
2956 *
2957 * @param pattern the given pattern
2958 * @param name the given name
2959 * @param prefixMatch flag telling whether the pattern can match name prefix or not.
2960 * . For example, when it's <code>true</code>:
2961 * - 'HM' type string pattern will match 'HashMap' and 'HtmlMapper' types,
2962 * but not 'HashMapEntry'
2963 * - 'HMap' type string pattern will match 'HashMap' type but not 'HtmlMapper'.
2964 * . and, when it's <code>false</code>:
2965 * - 'HM' type string pattern will match both 'HashMap' and 'HtmlMapper'
2966 * and 'HashMapEntry'
2967 * - 'HMap' type string pattern will match both 'HashMap' and 'HtmlMapper'
2968 * types.
2969 *
2970 * @return true if the pattern matches the given name, false otherwise
2971 * @since 3.4
2972 */
2973public static final boolean camelCaseMatch(char[] pattern, char[] name, boolean prefixMatch) {
2978 * Answers true if a sub-pattern matches the sub-part of the given name using
2979 * CamelCase rules, or false otherwise. char[] CamelCase matching does NOT
2980 * accept explicit wild-cards '*' and '?' and is inherently case sensitive.
2981 * Can match only subset of name/pattern, considering end positions as
2982 * non-inclusive. The sub-pattern is defined by the patternStart and patternEnd
2983 * positions.
2984 *
2985 * CamelCase denotes the convention of writing compound names without spaces,
2986 * and capitalizing every term. This function recognizes both upper and lower
2987 * CamelCase, depending whether the leading character is capitalized or not.
2988 * The leading part of an upper CamelCase pattern is assumed to contain
2989 * a sequence of capitals which are appearing in the matching name; e.g. 'NPE' will
2990 * match 'NullPointerException', but not 'NewPerfData'. A lower CamelCase pattern
2991 * uses a lowercase first character. In Java, type names follow the upper
2992 * CamelCase convention, whereas method or field names follow the lower
2993 * CamelCase convention.
2994 *
2995 * The pattern may contain lowercase characters, which will be match in a case
2996 * sensitive way. These characters must appear in sequence in the name.
2997 * For instance, 'NPExcep' will match 'NullPointerException', but not
2998 * 'NullPointerExCEPTION' or 'NuPoEx' will match 'NullPointerException', but not
2999 * 'NoPointerException'.
3000 *
3001 * Digit characters are treated in a special way. They can be used in the pattern
3002 * but are not always considered as leading character. For instance, both
3003 * 'UTF16DSS' and 'UTFDSS' patterns will match 'UTF16DocumentScannerSupport'.
3004 *
3005 * CamelCase may or may not match prefixes depending on the given parameter.
3006 * When the prefix match parameter is <code>true</code>, the given pattern can
3007 * match only a prefix of the given name. For instance, 'HM' , 'HaMa' and 'HMap'
3008 * patterns will all match 'HashMap', 'HatMapper' <b>and</b> 'HashMapEntry'.
3009 * Reversely, if the prefix match parameter is <code>false</code>, then pattern
3010 * and name must have <b>exactly</b> the same number of parts, and their last
3011 * parts must be identical if they contain lowercase characters.
3012 * For instance, 'HMap' and 'HaMap' patterns will match 'HashMap' but neither
3013 * 'HashMapEntry' nor 'HatMapper'. Note that when the last part does not contain
3014 * lowercase characters, then the name may end with lowercase characters.
3015 * So, 'HM' pattern will match both 'HashMap' <b>and</b> 'HatMapper' but will not
3016 * match 'HashMapEntry'.
3017 *
3018 * Examples:
3019 * 1. pattern = { 'N', 'P', 'E' }
3020 * patternStart = 0
3021 * patternEnd = 3
3022 * name = { 'N', 'u','l', 'l', 'P', 'o', 'i', 'n', 't', 'e', 'r', 'E', 'x', 'c', 'e', 'p', 't', 'i', 'o', 'n' }
3023 * nameStart = 0
3024 * nameEnd = 20
3025 * result =&gt; true
3026 * 2. pattern = { 'N', 'P', 'E' }
3027 * patternStart = 0
3028 * patternEnd = 3
3029 * name = { 'N', 'o', 'P', 'e', 'r', 'm', 'i', 's', 's', 'i', 'o', 'n', 'E', 'x', 'c', 'e', 'p', 't', 'i', 'o', 'n' }
3030 * nameStart = 0
3031 * nameEnd = 21
3032 * result =&gt; true
3033 * 3. pattern = { 'N', 'u', 'P', 'o', 'E', 'x' }
3034 * patternStart = 0
3035 * patternEnd = 6
3036 * name = { 'N', 'u','l', 'l', 'P', 'o', 'i', 'n', 't', 'e', 'r', 'E', 'x', 'c', 'e', 'p', 't', 'i', 'o', 'n' }
3037 * nameStart = 0
3038 * nameEnd = 20
3039 * result =&gt; true
3040 * 4. pattern = { 'N', 'u', 'P', 'o', 'E', 'x' }
3041 * patternStart = 0
3042 * patternEnd = 6
3043 * name = { 'N', 'o', 'P', 'e', 'r', 'm', 'i', 's', 's', 'i', 'o', 'n', 'E', 'x', 'c', 'e', 'p', 't', 'i', 'o', 'n' }
3044 * nameStart = 0
3045 * nameEnd = 21
3046 * result =&gt; false
3047 * 5. pattern = { 'n', p', 'e' }
3048 * patternStart = 0
3049 * patternEnd = 3
3050 * name = { 'N', 'u','l', 'l', 'P', 'o', 'i', 'n', 't', 'e', 'r', 'E', 'x', 'c', 'e', 'p', 't', 'i', 'o', 'n' }
3051 * nameStart = 20
3052 * nameEnd = 9
3053 * result =&gt; false
3054 * 6. pattern = { 'I', 'P', 'L', '3' }
3055 * patternStart = 0
3056 * patternEnd = 4
3057 * name = { 'I', 'P', 'e', 'r', 's', 'p', 'e', 'c', 't', 'i', 'v', 'e', 'L', 'i', 's', 't', 'e', 'n', 'e', 'r', '3' }
3058 * nameStart = 0
3059 * nameEnd = 21
3060 * result =&gt; true
3061 * 7. pattern = { 'H', M' }
3062 * patternStart = 0
3063 * patternEnd = 2
3064 * name = { 'H', 'a', 's', 'h', 'M', 'a', 'p', 'E', 'n', 't', 'r', 'y' }
3065 * nameStart = 0
3066 * nameEnd = 12
3067 * result =&gt; (prefixMatch == true)
3068 * 8. pattern = { 'H', M', 'a', 'p' }
3069 * patternStart = 0
3070 * patternEnd = 4
3071 * name = { 'H', 'a', 't', 'M', 'a', 'p', 'p', 'e', 'r' }
3072 * nameStart = 0
3073 * nameEnd = 9
3074 * result =&gt; (prefixMatch == true)
3075 *