All Downloads are FREE. Search and download functionalities are using the official Maven repository.

spotless.spotless-ext-greclipse.2.3.0.source-code.R36_buildnotes_jdt-core.html Maven / Gradle / Ivy

The newest version!



   
   
   JDT/Core Release Notes 3.6
   


jdt core - build notes 3.6 stream
Java development tools core
 
Here are the build notes for the Eclipse JDT/Core plug-in project org.eclipse.jdt.core, describing bug resolution and substantial changes in the HEAD branch. For more information on 3.6 planning, please refer to JDT/Core release plan, the next milestone plan, the overall official plan, or the build schedule. This present document covers all changes since Release 3.5 (also see a summary of API changes).
Maintenance of previous releases of JDT/Core is performed in parallel branches: R3.5.x, R3.4.x, R3.3.x, R3.2.x, R3.1.x, R3.0.x, R2.1.x, R2.0.x, R1.0.x.

Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.6 - June 3, 2010 - 3.6.0
Project org.eclipse.jdt.core v_A58 (cvs).

What's new in this drop

Problem Reports Fixed

315568 improve Javadoc of SearchPattern#createPattern(String, int, int, int)

Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.6RC4 - June 3, 2010 - 3.6.0 RC4
Project org.eclipse.jdt.core v_A57 (cvs).

What's new in this drop

  • Use default disabling/enabling tags in the samples of the Javadoc comments of the formatter constants FORMATTER_DISABLING_TAG and FORMATTER_ENABLING_TAG.
  • Fixed minor javadoc issues of createStrictHierarchyScope().

Problem Reports Fixed

314709 Clarify -encoding <encoding name> in jdt_api_compile.htm

Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.6RC3 - May 27, 2010 - 3.6.0 RC3
Project org.eclipse.jdt.core v_A56 (cvs).

What's new in this drop

Problem Reports Fixed

313890 Migration guide to 3.6 for containers with MANIFEST-referred entries
313965 Breaking change in classpath container API

Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.6RC3 - May 25, 2010
Project org.eclipse.jdt.core v_A55 (cvs).

What's new in this drop

Problem Reports Fixed

313706 Replace ie. with i.e. in jdt.core documentation

Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.6RC2 - May 20, 2010 - 3.6.0 RC2
Project org.eclipse.jdt.core v_A54 (cvs).

What's new in this drop

  • Added a new preference to force the formatter to try to keep nested expressions on one line.

    This new preference is controlled with the option:

    DefaultCodeFormatterConstants.FORMATTER_WRAP_OUTER_EXPRESSIONS_WHEN_NESTED
    /**
     * FORMATTER / Option to wrap outer expressions in nested expressions
     *     - option id:         "org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested"
     *     - possible values:   { TRUE, FALSE }
     *     - default:           TRUE
     *
     * This option changes the formatter behavior when nested method calls are encountered.
     * Since 3.6, the formatter tries to wrap outermost method calls first to have a better output.
     * For example, let's say we are using the Eclipse built-in profile with a max line width=40+space for tab policy.
     * Then consider the following snippet:
     *
     * public class X01 {
     *     void test() {
     *         foo(bar(1, 2, 3, 4), bar(5, 6, 7, 8));
     *     }
     * }
     *
     * With this new strategy, the formatter will wrap the line earlier, between the arguments of the message call
     * for this example, and then it will allow to keep each nested call on a single line.
     * Hence, the output will be:
     *
     * public class X01 {
     *     void test() {
     *         foo(bar(1, 2, 3, 4),
     *             bar(5, 6, 7, 8));
     *     }
     * }
     *
     * Important notes:
     * 1. This new behavior is automatically activated (i.e. the default value for this preference is {@link #TRUE}).
     *    If the backward compatibility regarding previous versions' formatter behavior (i.e. before 3.6 version) is necessary,
     *    then the preference needs to be set to {@link #FALSE} to retrieve the previous formatter behavior.
     * 2. The new strategy currently only applies to nested method calls, but might be extended to other nested expressions in future versions
     * 
     * @see #TRUE
     * @see #FALSE
     * @since 3.6
     */
    
    See bug 313524 for more details.

Problem Reports Fixed

313524 [formatter] Add preference for improved lines wrapping in nested method calls
313109 @SuppressWarnings on multiple locals is marked unnecessary if any local is never used

Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.6RC1 - May 12, 2010 - 3.6.0 RC1
Project org.eclipse.jdt.core v_A53 (cvs).

What's new in this drop

Problem Reports Fixed

312326 IllegalArgumentException using open type dialog
310159 Hang in JavaModel.getExternalTarget(JavaModel.java:333)

Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.6RC1 - May 11, 2010
Project org.eclipse.jdt.core v_A52 (cvs).

What's new in this drop

Problem Reports Fixed

157847 NPE in WildcardBinding.computeUniqueKey during code assist
311849 [quick fix] @SuppressWarnings does not work as expected inside a for loop

Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.6RC1 - May 8, 2010
Project org.eclipse.jdt.core v_A51 (cvs).

What's new in this drop

Problem Reports Fixed

306170 [perfs] Regression for FullSourceWorkspaceTypeHierarchyTests#testPerfAllTypes()
298844 [formatter] New lines in empty method body wrong behavior
311864 [formatter] NPE with empty {@code }

Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.6RC1 - May 6, 2010
Project org.eclipse.jdt.core v_A50 (cvs).

What's new in this drop

  • Added a new preference to switch on/off the usage of the disabling/enabling tags of the formatter.

    This new preference is controlled with the option:

    DefaultCodeFormatterConstants.FORMATTER_USE_ON_OFF_TAGS
    /**
     * FORMATTER / Option to use the disabling and enabling tags defined respectively by the {@link #FORMATTER_DISABLING_TAG} and the {@link #FORMATTER_ENABLING_TAG} options.
     *     - option id:         "org.eclipse.jdt.core.formatter.use_on_off_tags"
     *     - possible values:   TRUE / FALSE
     *     - default:           FALSE
     * 
     * @since 3.6
     */
    
    See bug 311582 for more details.

Problem Reports Fixed

311617 [formatter] provide default tags to enable/disable formatter
311582 [formatter] Master switch to enable/disable on/off tags
307040 Search Job with HierarchyScope on Object does not cancel
302295 After associating source folder with rt.jar project refresh takes exceedingly long time.
311048 AbortCompilation propagated from CompilationUnitProblemFinder.process()

Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.6RC1 - May 4, 2010
Project org.eclipse.jdt.core v_A49 (cvs).

What's new in this drop

Problem Reports Fixed

310811 [perfs] Big regression on FullSourceWorkspaceFormatterTests#testFormatDefaultBigFile()

Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.6M7 - April 25, 2010 - 3.6.0 M7
Project org.eclipse.jdt.core v_A48 (cvs).

What's new in this drop

Problem Reports Fixed

310330 Add multiple encoding support for the batch compiler

Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.6M7 - April 25, 2010
Project org.eclipse.jdt.core v_A47 (cvs).

What's new in this drop

Problem Reports Fixed

309835 [formatter] adds blank lines on each run
310213 AIOOBE in IndexSelector.initializeIndexLocations()
309966 IType#getKey() does not work for unresolved local ITypes

Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.6M7 - April 23, 2010
Project org.eclipse.jdt.core v_A46 (cvs).

What's new in this drop

Problem Reports Fixed

59891 [formatter] improve lines wrapping in nested method calls
306172 [perfs] Invalid test duration for FullSourceWorkspaceTypeHierarchyTests#testPerSuperTypes()
267091 [content assist] After 'implements' interface members are not proposed
261534 content assist after instanceof should also work after &&
308980 [content assist]An initializer inside a non-array field declaration confuses content assist
310002 ToolFactory.createScanner(..) should use workspace compliance
291528 Synchronize project warning/error settings to build.properties
309787 Extension point "org.eclipse.jdt.core.codeFormatter" is ignored
244820 Content assist after 'instanceof' should also work in assignment
309706 [formatter] doesn't work when code has three semicolons side by side

Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.6M7 - April 20, 2010
Project org.eclipse.jdt.core v_A45 (cvs).

What's new in this drop

Problem Reports Fixed

305037 missing story for attributes of referenced JARs in classpath containers
305116 [index] Improve performance of indexes results tables
236306 [content assist] for method invocation in variable initializer should not guess variable
302865 Issue with "import" a class and "import static" a method with the same name
309022 [ImportRewrite] Add Import wrongly removes import for nested type

Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.6M7 - April 13, 2010
Project org.eclipse.jdt.core v_A44 (cvs).

What's new in this drop

Problem Reports Fixed

308754 CompilationUnit.rewrite messes up .class-literal in annotation instead of changing class to interface
306519 JavaCore#getReferencedClasspathEntries(IClasspathEntry, IJavaProject) should allow null project
308428 Possible problem to get corrections with surrogate characters
307295 Task tags and task priorities
308476 Test ClasspathTests#testBug308150 fails on all platforms
305043 Internal error during classpath init
307486 DBCS3.6: Fail to propose Ext-B labels with content assist in Java Editor
308256 DiagnosticListener always supplies Diagnostic.getSource()==null
308356 codeSelect(..) doesn't work for local variable with surrogate in name
308245 Valid code fails to compile in 3.6
307885 Error message for instanceof <parameterized type> wrong arguments
249704 [code assist] autocomplete with anonymous classes does stop working
308150 JAR with invalid Class-Path entry in MANIFEST.MF crashes the project

Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.6M7 - April 6, 2010
Project org.eclipse.jdt.core v_A43 (cvs).

What's new in this drop

Problem Reports Fixed

306223 [search] Searching for annotation references report all type references
292087 anonymous class in array member initializer confuses content assist
307337 [content assist] Default constructor should not be proposed for anonymous types
306568 [ImportRewrite] Add Import does not work for nested type when package is on-demand imported

Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.6M7 - March 30, 2010
Project org.eclipse.jdt.core v_A42 (cvs).

What's new in this drop

Problem Reports Fixed

202634 [codeassist] missing super proposal in specific source
304394 IJavaElement#getAttachedJavadoc(IProgressMonitor) should support referenced entries
305122 FUP of 302949
306917 Exception occurred during compilation unit conversion:
306196 [search] NPE while searching for annotation references in rt.jar of JRE 6.0
288658 [compiler][1.5] Annotations visibility issues

Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.6M7 - March 23, 2010
Project org.eclipse.jdt.core v_A41 (cvs).

What's new in this drop

Problem Reports Fixed

305518 [formatter] Line inside <pre> tag is wrongly indented by one space when starting just after the star
295825 [formatter] Commentaries are running away after formatting are used
306477 Indexer(?) fails to recognise enum as a type
305830 [formatter] block comment should not be formatted when a non-nls tag is on the same line
300031 The deprecation warning for a type should not include the package name
306078 Navigate to Inaccessible Field
209479 infinite loop in BindingKey when signatures are invalid
293558 [quick assist] "Invert if statement" fails when comment follows
182459 [compiler] Inconsistent error range for unresolved field
192233 [AST] CompilationUnit.rewrite() removes whitespace between return type and method name
306073 ASTRewrite Javadoc wrongly talks about getTargetSourceRangeComputer
305001 Exception occurred in listener of Java element change notification
305590 Redundant null check false-positive
305755 Remove deprecated API that has been added for 3.6

Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.6M7 - March 16, 2010
Project org.eclipse.jdt.core v_A40 (cvs).

What's new in this drop

Problem Reports Fixed

305371 [formatter] Unexpected indentation of line comment
305281 [formatter] Turning off formatting changes comment's formatting

Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.6M6 - March 9, 2010 - 3.6.0 M6
Project org.eclipse.jdt.core v_A39 (cvs).

What's new in this drop

Problem Reports Fixed

289057 Java Content Assist taking too long
303830 "X cannot be resolved or is not a field" erroneously reported
235658 Valid identifier unrecognized.
304841 [search] NPE in IndexSelector.initializeIndexLocations
295866 FormalParameter in JDT DOM/AST documentation
304817 Review documentation of ASTParser class

Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.6M6 - March 5, 2010
Project org.eclipse.jdt.core v_A38 (cvs).

What's new in this drop

  • Added two new preferences to allow to disable the formatter in a section of the code. These two preference define respectively the tag which disables the formatting and the tag which re-enable it.

    These new preferences are controlled with the options:

    DefaultCodeFormatterConstants.FORMATTER_DISABLING_TAG DefaultCodeFormatterConstants.FORMATTER_ENABLING_TAG
    /**
     * FORMATTER / Option to define the tag to put in a comment to disable the formatting.
     * See the {@link #FORMATTER_ENABLING_TAG} option to re-enable it.
     *     - option id:         "org.eclipse.jdt.core.formatter.disabling_tag"
     *     - possible values:   String, with constraints mentioned below
     *     - default:           ""
     * 
     * Note that:
     * 
     * 1. The tag name will be trimmed. Hence if it does contain white spaces
     *    at the beginning or at the end, they will not be taken into account while
     *    searching for the tag in the comments
     * 2. If a tag is starting with a letter or digit, then it cannot be leaded by
     *    another letter or digit to be recognized
     *    ("ToDisableFormatter" will not be recognized as a disabling tag
     *    "DisableFormatter", but "Re:DisableFormatter"
     *    will be detected for either tag "DisableFormatter" or
     *    ":DisableFormatter").
     *    Respectively, a tag ending with a letter or digit cannot be followed by a letter
     *    or digit to be recognized ("DisableFormatter1" will not be
     *    recognized as a disabling tag "DisableFormatter", but
     *    "DisableFormatter:1" will be detected either for tag
     *    "DisableFormatter" or "DisableFormatter:")
     * 3. As soon as the formatter encounters the defined disabling tag, it stops to
     *    format the code from the beginning of the comment including this tag. If it
     *    was already disabled, the tag has no special effect.
     *    For example, the second defined enabling tag "disable-formatter"
     *    in the following snippet is not necessary as the formatter was already disabled
     *    since the first one:
     *     class X {
     *     // disable-formatter
     *     void foo1() {}
     *     // disable-formatter
     *     void foo2() {}
     *     void bar1() {}
     *     void bar2() {}
     *     }
     *
     * 4. If no enabling tag is found by the formatter after the disabling tag, then
     *    the end of the snippet won't be formatted.
     *    For example, when a disabling tag is put at the beginning of the code, then
     *    the entire content of a compilation unit is not formatted:
     *     // disable-formatter
     *     class X {
     *     void foo1() {}
     *     void foo2() {}
     *     void bar1() {}
     *     void bar2() {}
     *     }
     * 
     * 5. If a mix of disabling and enabling tags is done in the same comment, then
     *    the formatter will only take into account the last encountered tag in the
     *    comment.
     *    For example, in the following snippet, the formatter will be disabled after
     *    the comment:
     *     class X {
     *     /*
     *      * This is a comment with a mix of disabling and enabling tags:
     *      *  - disable-formatter
     *      *  - enable-formatter
     *      *  - disable-formatter
     *      * The formatter will stop to format from the beginning of this comment...
     *      */
     *     void foo() {}
     *     void bar() {}
     *     }
     * 
     * 6. The tag cannot include newline character (i.e. '\n') but it can have white spaces.
     *    E.g. "format: off" is a valid disabling tag
     *    In the future, newlines may be used to support multiple disabling tags.
     * 
     * @since 3.6
     */
    
    /**
     * FORMATTER / Option to define the tag to put in a comment to re-enable the
     * formatting after it has been disabled (see {@link #FORMATTER_DISABLING_TAG})
     *     - option id:         "org.eclipse.jdt.core.formatter.enabling_tag"
     *     - possible values:   String, with constraints mentioned below
     *     - default:           ""
     * 
     * Note that:
     * 
     * 1. The tag name will be trimmed. Hence if it does contain white spaces
     *    at the beginning or at the end, they will not be taken into account while
     *    searching for the tag in the comments
     * 2. If a tag is starting with a letter or digit, then it cannot be leaded by
     *    another letter or digit to be recognized
     *    ("ReEnableFormatter" will not be recognized as an enabling tag
     *    "EnableFormatter", but "Re:EnableFormatter"
     *    will be detected for either tag "EnableFormatter" or
     *    ":EnableFormatter").
     *    Respectively, a tag ending with a letter or digit cannot be followed by a letter
     *    or digit to be recognized ("EnableFormatter1" will not be
     *    recognized as an enabling tag "EnableFormatter", but
     *    "EnableFormatter:1" will be detected either for tag
     *    "EnableFormatter" or "EnableFormatter:")
     * 3. As soon as the formatter encounters the defined enabling tag, it re-starts
     *    to format the code just after the comment including this tag. If it was already
     *    active, i.e. already re-enabled or never disabled, the tag has no special effect.
     *    For example, the defined enabling tag "enable-formatter"
     *    in the following snippet is not necessary as the formatter has never been
     *    disabled:
     *     class X {
     *     void foo1() {}
     *     void foo2() {}
     *     // enable-formatter
     *     void bar1() {}
     *     void bar2() {}
     *     }
     * 
     *    Or, in the following other snippet, the second enabling tag is not necessary as
     *    the formatting will have been re-enabled by the first one:
     *     class X {
     *     // disable-formatter
     *     void foo1() {}
     *     void foo2() {}
     *     // enable-formatter
     *     void bar1() {}
     *     // enable-formatter
     *     void bar2() {}
     *     }
     * 
     * 4. If a mix of disabling and enabling tags is done in the same comment, then
     *    the formatter will only take into account the last encountered tag in the
     *    comment.
     *    For example, in the following snippet, the formatter will be re-enabled after
     *    the comment:
     *     // disable-formatter
     *     class X {
     *     /*
     *      * This is a comment with a mix of disabling and enabling tags:
     *      *  - enable-formatter
     *      *  - disable-formatter
     *      *  - enable-formatter
     *      * The formatter will restart to format after this comment...
     *      */
     *     void foo() {}
     *     void bar() {}
     *     }
     * 
     * 5. The tag cannot include newline character (i.e. '\n') but it can have white spaces.
     *    E.g. "format: on" is a valid enabling tag
     *    In the future, newlines may be used to support multiple enabling tags.
     * 
     * @since 3.6
     */
    

    For example, the following snippet:

    public class Test {
    /* disable-formatter */
    void     foo(    )      {	
    				//      unformatted       area  	  
    }
    /* enable-formatter */
    void     bar(    )      {	
    				//      formatted       area  	  
    }
    }
    
    formatted with disabling tags = "disable-formatter" and enabling tags = "enable-formatter" produces the following output:
    public class Test {
    
    /* disable-formatter *	
    void     foo(    )      {
    				//      unformatted       area  	  
    }
    /* enable-formatter *
    	void bar() {
    		// formatted area
    	}
    }
    
    See bug 27079 for more details.

Problem Reports Fixed

129804 [dom] Local variable bindings from ASTParser#createASTs(.., String[], .., ..) have no declaring method
304705 [formatter] Unexpected indentation of wrapped line comments when 'Never indent line comment on first column' preference is checked
304656 StringIndexOutOfBoundsException when using JDT dom methods to process sourcefile
304506 Task descriptions always have a space after the tag
304081 IJavaProject#isOnClasspath(IJavaElement) returns false for type from referenced JAR
304122 TypeBindings.getAnnotations() breaks interface
304416 VerifyError after compiling without preserve all locals
304529 [formatter] NPE when either the disabling or the enabling tag is not defined
27079 Tags for disabling/enabling code formatter (feature)
304316 NPE when javadoc URL is invalid

Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.6M6 - March 2, 2010
Project org.eclipse.jdt.core v_A37 (cvs).

What's new in this drop

  • Added new configurable option to fix bug 295551:
    /**
     * Compiler option ID: Further Determining the Effect of @SuppressWarnings if also
     * COMPILER_PB_SUPPRESS_WARNINGS is enabled.
     * When enabled, the @SuppressWarnings annotation can additionally be used to suppress 
     * optional compiler diagnostics that have been configured as ERROR.
     * When disabled, all @SuppressWarnings annotations only affects warnings.
     *
     * Option id: "org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors"
     * Possible values: { "enabled", "disabled" }
     * Default: "disabled"
     * 
     * @since 3.6
     * @category CompilerOptionID
     */
    public static final String COMPILER_PB_SUPPRESS_OPTIONAL_ERRORS = PLUGIN_ID + ".compiler.problem.suppressOptionalErrors";
    
  • Added a new formatter preferences to align method declaration.

    This new preference is controlled with the option:

    DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_METHOD_DECLARATION
    /**
     * FORMATTER / Option for alignment of method declaration
     *     - option id:         "org.eclipse.jdt.core.formatter.alignment_for_method_declaration"
     *     - possible values:   values returned by createAlignmentValue(boolean, int, int) call
     *     - default:           createAlignmentValue(false, WRAP_NO_SPLIT, INDENT_DEFAULT)
     * 
     * @see #createAlignmentValue(boolean, int, int)
     * @since 3.6
     */
    

    For example, the following snippet:

    public class Test {
    public final synchronized java.lang.String a_method_which_has_a_very_long_name() {
    return null;
    }
    }
    
    formatted with this preference activated as 'Wrap only when necessary', will produce the following output:
    public class Test {
    	public final synchronized java.lang.String
    			a_method_which_has_a_very_long_name() {
    		return null;
    	}
    }
    
    See bug 284789 for more details.
  • New API to fix bug 246594. See the bug for details.
    org.eclipse.jdt.core.ITypeParameter
    	/**
    	 * Returns the signatures for this type parameter's bounds. The type parameter may have 
    	 * been declared as part of a type or a method. The signatures represent only the individual 
    	 * bounds and do not include the type variable name or the extends keyword.  
    	 * The signatures may be either unresolved (for source types) or resolved (for binary types). 
    	 * See {@link Signature} for details.
    	 * 
    	 * @return the signatures for the bounds of this formal type parameter
    	 * @throws JavaModelException
    	 *             if this element does not exist or if an exception occurs while accessing its corresponding resource.
    	 * @see Signature
    	 * @since 3.6
    	 */
    	String[] getBoundsSignatures() throws JavaModelException;
    
  • Added a new formatter preference to enable or disable the formatting of line comments that start on the first column.
    Note that the indentation of line comments will also be disabled when activating this option, as otherwise the formatter could not produce stable outputs...

    The default is to format these comments to have a backward compatible behavior.

    This new preferences is controlled with the options:

    DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_LINE_COMMENT_STARTING_ON_FIRST_COLUMN
    /**
     * FORMATTER / Option to format line comments that start on the first column
     *     - option id:         "org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column"
     *     - possible values:   { TRUE, FALSE }
     *     - default:           TRUE
     * 
     * Note that this option is ignored if either the
     * {@link #FORMATTER_COMMENT_FORMAT_LINE_COMMENT} option has been set to
     * {@link #FALSE} or the formatter is created with the mode
     * {@link ToolFactory#M_FORMAT_NEW}.
     * 
     * @see #TRUE
     * @see #FALSE
     * @see ToolFactory#createCodeFormatter(Map, int)
     * @since 3.6
     */
    

    For example, the following snippet:

    public class X01 {
    //    int	a  =   1;
    //    int	b  =   2;
    }
    
    will be untouched by the formatter if both options are activated. See bug 251133 for more details.
  • New API to fix bug 252431. See the bug for details.
    org.eclipse.jdt.core.IClasspathEntry
    	/**
    	 * Returns the classpath entry that is making a reference to this classpath entry. For entry kinds 
    	 * {@link #CPE_LIBRARY}, the return value is the entry that is representing the JAR that includes 
    	 * this in the MANIFEST.MF file's Class-Path section. For entry kinds other than 
    	 * {@link #CPE_LIBRARY}, this returns null. For those entries that are on the raw classpath already, 
    	 * this returns null.
    	 *
    	 * It is possible that multiple library entries refer to the same entry
    	 * via the MANIFEST.MF file. In those cases, this method returns the first classpath entry 
    	 * that appears in the raw classpath. However, this does not mean that the other referencing 
    	 * entries do not relate to their referenced entries. 
    	 * See {@link JavaCore#getReferencedClasspathEntries(IClasspathEntry, IJavaProject)} for 
    	 * more details.
    	 * 
    	 * @return the classpath entry that is referencing this entry or null if 
    	 * 		not applicable.
    	 * @since 3.6
    	 */
    	IClasspathEntry getReferencingEntry();
    
    
    org.eclipse.jdt.core.IJavaProject
    	/**
    	 * Works similar to {@link #setRawClasspath(IClasspathEntry[], IPath, IProgressMonitor)} and 
    	 * additionally allows persisting the given array of referenced entries for this project.
    	 * The referenced entries and their attributes are stored in the .classpath file of this 
    	 * project. For details on referenced entries, see 
    	 * {@link JavaCore#getReferencedClasspathEntries(IClasspathEntry, IJavaProject)}
    	 * and {@link IClasspathEntry#getReferencingEntry()}.
    	 * 
    	 * Since the referenced entries are stored in the .classpath file, clients can store additional 
    	 * information that belong to these entries and retrieve them across sessions, though the referenced
    	 * entries themselves may not be present in the raw classpath. By passing a null
    	 * referencedEntries, clients can choose not to modify the already persisted referenced entries,
    	 * which is fully equivalent to {@link #setRawClasspath(IClasspathEntry[], IPath, IProgressMonitor)}.
    	 * If an empty array is passed as referencedEntries, the already persisted referenced entries, 
    	 * if any, will be cleared. 
    	 * 
    	 * If there are duplicates of a referenced entry or if any of the referencedEntries 
    	 * is already present in the raw classpath(entries) those referenced entries will 
    	 * be excluded and not be persisted.
    	 *
    	 * @param entries a list of classpath entries
    	 * @param referencedEntries the list of referenced classpath entries to be persisted
    	 * @param outputLocation the default output location
    	 * @param monitor the given progress monitor
    	 * @exception JavaModelException if the classpath could not be set. Reasons include:
    	 *  	This Java element does not exist (ELEMENT_DOES_NOT_EXIST)
    	 *  	The classpath is being modified during resource change event notification (CORE_EXCEPTION)
    	 *  	The classpath failed the validation check as defined by {@link JavaConventions#validateClasspath(IJavaProject, IClasspathEntry[], IPath)}
    	 * @see IClasspathEntry
    	 * @see #getReferencedClasspathEntries()
    	 * @since 3.6
    	 */
    	void setRawClasspath(IClasspathEntry[] entries, IClasspathEntry[] referencedEntries, IPath outputLocation,
    			IProgressMonitor monitor) throws JavaModelException;
    
    	/**
    	 * Returns the list of referenced classpath entries stored in the .classpath file of this 
    	 * java project. Clients can store the referenced classpath entries using 
    	 * {@link #setRawClasspath(IClasspathEntry[], IClasspathEntry[], IPath, IProgressMonitor)}
    	 * If the client has not stored any referenced entries for this project, an empty array is returned.
    	 *
    	 * @throws JavaModelException
    	 * @return an array of referenced classpath entries stored for this java project or an empty array if none
    	 * 			stored earlier.
    	 * @since 3.6
    	 */
    	IClasspathEntry[] getReferencedClasspathEntries() throws JavaModelException;
    	
    
    org.eclipse.jdt.core.IPackageFragmentRoot
    	/**
    	 * Returns the first resolved classpath entry that corresponds to this package fragment root.
    	 * A resolved classpath entry is said to correspond to a root if the path of the resolved
    	 * entry is equal to the root's path.
    	 * 
    	 * @return the first resolved classpath entry that corresponds to this package fragment root
    	 * @throws JavaModelException if this element does not exist or if an
    	 *		exception occurs while accessing its corresponding resource. 
    	 * @since 3.6
    	 */
    	IClasspathEntry getResolvedClasspathEntry() throws JavaModelException;
    	
    
    org.eclipse.jdt.core.JavaCore
    	/**
    	 * Returns an array of classpath entries that are referenced directly or indirectly 
    	 * by a given classpath entry. For the entry kind {@link IClasspathEntry#CPE_LIBRARY}, 
    	 * the method returns the libraries that are included in the Class-Path section of 
    	 * the MANIFEST.MF file. If a referenced JAR file has further references to other library 
    	 * entries, they are processed recursively and added to the list. For entry kinds other 
    	 * than {@link IClasspathEntry#CPE_LIBRARY}, this method returns an empty array.
    	 *
    	 * If a referenced entry has already been stored 
    	 * in the given project's .classpath, the stored attributes are populated in the corresponding
    	 * referenced entry. For more details on storing referenced entries see
    	 * see {@link IJavaProject#setRawClasspath(IClasspathEntry[], IClasspathEntry[], IPath, 
    	 * IProgressMonitor)}. 
    	 * 
    	 * @param libraryEntry the library entry whose referenced entries are sought 
    	 * @param project project where the persisted referenced entries to be retrieved from
    	 * @return an array of classpath entries that are referenced directly or indirectly by the given entry. 
    	 * 			If not applicable, returns an empty array.
    	 * @since 3.6
    	 */
    	public static IClasspathEntry[] getReferencedClasspathEntries(IClasspathEntry libraryEntry, IJavaProject project);	
    

Problem Reports Fixed

252431 New API is needed to better identify referenced jars in the Class-Path: entry
251133 [formatter] Automatic formatting single line comments is incoherent among tools
248897 [1.5][compiler] Wrong warning 'The local variable 'var' is never read'.
304031 Unused @SuppressWarnings(..) not flagged when suppressed problem is set to Error
295551 Add option to automatically promote all warnings to errors
303810 Compact boolean fields on FlowContext
251227 [compiler] Fup of bug 115814, comparing doubles should not be flagged
268798 [1.5][compiler] Eclipse 3.5M5/6 produces new compiler errors with generics
303448 Wrong code generation optimization when assert condition is false
303776 Member types imports are removed too aggressively
302949 JavaModelManager hangs accessing the nonChainingJars set
246594 [model] API request: ITypeParameter#getBoundsSignatures() or #getSignature()
253896 [compiler][null] wrong "Null comparison always yields false" problem for auto-unboxing
284789 [formatter] Does not line-break method declaration exception with parameters
303480 [1.5][compiler] CCE: org.eclipse.jdt.internal.compiler.parser.RecoveredBlock cannot be cast to org.eclipse.jdt.internal.compiler.parser.RecoveredType

Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.6M6 - February 23, 2010
Project org.eclipse.jdt.core v_A36 (cvs).

What's new in this drop

  • Added a new formatter preferences to align annotation arguments (i.e. element-value pairs).

    This new preference is controlled with the option:

    DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_ANNOTATION
    /**
     * FORMATTER / Option for alignment of arguments in annotation
     *     - option id:         "org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation"
     *     - possible values:   values returned by createAlignmentValue(boolean, int, int) call
     *     - default:           createAlignmentValue(false, WRAP_NO_SPLIT, INDENT_DEFAULT)
     * 
     * @see #createAlignmentValue(boolean, int, int)
     * @since 3.6
     */
    

    For example, the following snippet:

    @MyAnnot(value1 = "this is an example", value2 = "of an annotation", value3 = "with several arguments", value4 = "which may need to be wrapped")
    public class Test {
    }
    
    formatted with this preference activated, will produce the following output while using the Eclipse [built-in] profile:
    @MyAnnot(value1 = "this is an example", value2 = "of an annotation",
    		value3 = "with several arguments",
    		value4 = "which may need to be wrapped")
    public class Test {
    }
    
    See bug 282030 for more details.
  • In order to get bindings outside the Eclipse environment, the following methods has been added on the ASTParser class.
    See bug 206391 for details.
    org.eclipse.jdt.core.dom.ASTParser
    	/**
    	 * Set the environment that can be used when no IJavaProject are available.
    	 * 
    	 * The user has to be sure to include all required types on the classpaths for binary types
    	 * or on the sourcepaths for source types to resolve the given source code.
    	 * All classpath and sourcepath entries are absolute paths.
    	 * If sourcepaths contain units using a specific encoding (not the platform encoding), then the
    	 * given encodings must be set. If the given encodings is set, its length must
    	 * match the length of the sourcepaths parameter or an IllegalArgumentException will be thrown.
    	 * If encodings is not null, the given sourcepathEntries must not be null.
    	 * 
    	 * @param classpathEntries the given classpath entries to be used to resolve bindings
    	 * @param sourcepathEntries the given sourcepath entries to be used to resolve bindings
    	 * @param encodings the encodings of the corresponding sourcepath entries or null if the platform encoding
    	 * can be used.
    	 * @param includeRunningVMBootclasspath true if the bootclasspath of the running VM must be prepended to the
    	 * given classpath and false if the bootclasspath of the running VM should be ignored.
    	 * @throws IllegalArgumentException if the size of the given encodings is not equals to the size of the given
    	 * sourcepathEntries
    	 * @since 3.6
    	 */
    	public void setEnvironment(String[] classpathEntries, String[] sourcepathEntries, String[] encodings, boolean includeRunningVMBootclasspath);
    	
    	/**
    	 * Creates ASTs for a batch of compilation units. When bindings are being resolved, processing a
    	 * batch of compilation units is more efficient because much of the work involved in resolving 
    	 * bindings can be shared. 
    	 *
    	 * When bindings are being resolved, all compilation units are resolved 
    	 * using the same environment, which must be set beforehand with 
    	 * {@link #setEnvironment(String[], String[], String[], boolean) setEnvironment}.
    	 * The compilation units are processed one at a time in no specified order. 
    	 * For each of the compilation units in turn,
    	 *  - {@link ASTParser#createAST(IProgressMonitor) ASTParser.createAST} is called to parse it 
    	 *           and create a corresponding AST. The calls to {@link ASTParser#createAST(IProgressMonitor) ASTParser.createAST} 
    	 *           all employ the same settings.
  • * - {@link FileASTRequestor#acceptAST(String, CompilationUnit) FileASTRequestor.acceptAST} is called passing * the compilation unit path and the corresponding AST to requestor. The compilation unit path is the same * path that is passed into the given sourceFilePaths parameter. * * Note only ASTs from the given compilation units are reported * to the requestor. If additional compilation units are required to * resolve the original ones, the corresponding ASTs are not * reported to the requestor. * * Note also the following parser parameters are used, regardless of what * may have been specified: * - The {@linkplain #setKind(int) parser kind} is K_COMPILATION_UNIT * - The {@linkplain #setSourceRange(int,int) source range} is (0, -1) * - The {@linkplain #setFocalPosition(int) focal position} is not set * * The bindingKeys parameter specifies bindings keys * ({@link IBinding#getKey()}) that are to be looked up. These keys may * be for elements either inside or outside the set of compilation * units being processed. When bindings are being resolved, * the keys and corresponding bindings (or null if none) are * passed to {@link FileASTRequestor#acceptBinding(String, IBinding) FileASTRequestor.acceptBinding}. Note that binding keys * for elements outside the set of compilation units being processed are looked up * after all {@link FileASTRequestor#acceptAST(String, CompilationUnit) ASTRequestor.acceptAST} * callbacks have been made. * Binding keys for elements inside the set of compilation units being processed * are looked up and reported right after the corresponding * {@link FileASTRequestor#acceptAST(String, CompilationUnit) FileASTRequestor.acceptAST} callback has been made. * No {@link FileASTRequestor#acceptBinding(String, IBinding) FileASTRequestor.acceptBinding} callbacks are made unless * bindings are being resolved. * * A successful call to this method returns all settings to their * default values so the object is ready to be reused. * * The given encodings are used to properly parse the given source units. If the platform encoding is sufficient, * then the given encodings can be set to null. * * @param sourceFilePaths the compilation units to create ASTs for * @param encodings the given encoding for the source units * @param bindingKeys the binding keys to create bindings for * @param requestor the AST requestor that collects abstract syntax trees and bindings * @param monitor the progress monitor used to report progress and request cancellation, * or null if none * @exception IllegalStateException if the settings provided * are insufficient, contradictory, or otherwise unsupported * @since 3.6 */ public void createASTs(String[] sourceFilePaths, String[] encodings, String[] bindingKeys, FileASTRequestor requestor, IProgressMonitor monitor)
  • Added two new formatter preferences to condense block and javadoc comments.

    These new preferences are controlled respectively with the options:

    DefaultCodeFormatterConstants.FORMATTER_COMMENT_NEW_LINES_AT_BLOCK_BOUNDARIES
    DefaultCodeFormatterConstants.FORMATTER_COMMENT_NEW_LINES_AT_JAVADOC_BOUNDARIES
    /**
     * FORMATTER / Option to control whether block comments will have new lines at boundaries
     *     - option id:         "org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries"
     *     - possible values:   { TRUE, FALSE }
     *     - default:           TRUE
     * 
     * @see #TRUE
     * @see #FALSE
     * @since 3.6
     */
    
    /**
     * FORMATTER / Option to control whether javadoc comments will have new lines at boundaries
     *     - option id:         "org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries"
     *     - possible values:   { TRUE, FALSE }
     *     - default:           TRUE
     * 
     * @see #TRUE
     * @see #FALSE
     * @since 3.6
     */
     

    For example, the following snippet:

    public class X {
    	/*
    	 * This block comment after formatting will no longer use a new line
    	 * at the beginning and at the end of the comment...
    	 */
    	void foo() {
    	}
    	/**
    	 * This javadoc comment after formatting will no longer use a new line
    	 * at the beginning and at the end of the comment...
    	 */
    	void bar() {
    	}
    }
    
    formatted with both the options set to FALSE, will produce the following output:
    public class X {
    	/* This block comment after formatting will no longer use a new line at the
    	 * beginning and at the end of the comment... */
    	void foo() {
    	}
    
    	/** This javadoc comment after formatting will no longer use a new line at
    	 * the beginning and at the end of the comment... */
    	void bar() {
    	}
    }
    
    See bug 270209 for more details.
  • The CodeFormatter.F_INCLUDE_COMMENT flag now works for all kind of snippet while using the formatter.
    See bug 236406 for more details.
  • Added a new formatter preferences to insert a new line after a label.

    This new preference is controlled with the option:

    DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_LABEL
    /**
     * FORMATTER / Option to insert a new line after a label
     *     - option id:         "org.eclipse.jdt.core.formatter.insert_new_line_after_label"
     *     - possible values:   { INSERT, DO_NOT_INSERT }
     *     - default:           DO_NOT_INSERT
     *
     * @see JavaCore#INSERT
     * @see JavaCore#DO_NOT_INSERT
     * @since 3.6
     */
    

    For example, the following snippet:

    public class X {
    	void foo() {
    		LABEL:for (int i = 0; i < 10; i++) {
    		}
    	}
    }
    
    formatted with this preference activated, will produce the following output:
    public class X {
    	void foo() {
    		LABEL:
    		for (int i = 0; i < 10; i++) {
    		}
    	}
    }
    
    See bug 150741 for more details.
  • Problem Reports Fixed

    298362 [1.5][compiler] Compiler returns java.lang.Object instead of generic type T when javac returns T
    281655 [formatter] "Never join lines" does not work for annotations.
    282030 [formatter] Java annotation formatting
    270209 [format] Condensed block comment formatting
    236406 [formatter] The comments flags should work for all kinds of snippet
    294360 Duplicate entries in Classpath Resolution when importing dependencies from parent project
    206391 [DOM] Binding Resolutions for projects outside of Eclipse workspace
    150409 [compiler] AST does not expose method bindings for non-visible inherited field
    302358 Compiler finds wrong method for method invocation with generics
    302919 misreported cast Error when mixing generic and raw class in nested class
    150741 [formatter] Add option: "add new line after label"
    287939 [code assist] The instanceof and the auto cast feature should also work for an assignment
    303108 [import rewrite] ImportRewrite#removeImport(String) does not work with setUseContextToFilterImplicitImports(true)
    295619 Test failure caused by a timing issue in M20091118-0800

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M6 - February 16, 2010
    Project org.eclipse.jdt.core v_A35 (cvs).

    What's new in this drop

    • In order to fix bugs 235253 and 194358, a new API was added to preserve the existing pre-3.6 behavior for existing clients:
      	/**
      	 * Sets whether a context should be used to properly filter implicit imports.
      	 *
      	 * By default, the option is disabled to preserve pre-3.6 behavior.
      	 *
      	 *
      	 * When this option is set, the context passed to the addImport*(...) methods is used to determine
      	 * whether an import can be filtered because the type is implicitly visible. Note that too many imports
      	 * may be kept if this option is set and addImport*(...) methods are called without a context.
      	 *
      	 * 
      	 * @param useContextToFilterImplicitImports the given setting
      	 * 
      	 * @see #setFilterImplicitImports(boolean)
      	 * @since 3.6
      	 */
      	public void setUseContextToFilterImplicitImports(boolean useContextToFilterImplicitImports);
      

    Problem Reports Fixed

    302455 java.lang.ClassCastException in secondary types removal
    102279 [search] method reference performance depends on method name
    236814 [jsr199] EclipseCompiler#getTask does not respect its contract when its first argument is null
    302552 [formatter] Formatting qualified invocations can be broken when the Line Wrapping policy forces element to be on a new line
    302587 Encoding/decoding of problem arguments in Marker fails if argument contains #
    301438 Eclipse hangs when attempting to refactor using the "change method signature"
    260381 [formatter] Javadoc formatter breaks {@code ...} tags.
    302446 [compiler] Regression in if statement flow analysis related to null checks
    194358 [import rewrite] Organize Imports produces wrong order of imports
    235253 [organize imports] Organize imports removes needed import statement.
    302379 [search] JavaSearchTests.testZIPArchive2() test failed in I20100209-0800

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M6 - February 9, 2010
    Project org.eclipse.jdt.core v_A34 (cvs).

    What's new in this drop

    Problem Reports Fixed

    302123 [formatter] AssertionFailedException occurs while formatting a source containing the specific javadoc comment /** ***/
    300379 [formatter] Fup of bug 287833
    250056 [compiler][null] Another assert and "Redundant null check"
    301683 Annotations are broken when native methods are present in a class
    300734 Extract temp misses duplicate occurrence.
    289560 Eclipse hangs after modifying user libraries
    301562 [JSR269] Error in EclipseFileManager.collectAllMatchingFiles
    298637 Could not retrieve declared methods (NPE in ParameterizedTypeBinding.resolve)
    294057 [1.5][compiler] Imports not resolved correctly with generics and inner interfaces

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M6 - February 2, 2010
    Project org.eclipse.jdt.core v_A33 (cvs).

    What's new in this drop

    Problem Reports Fixed

    300136 classpathentry OPTIONAL attribute not honored for var entries
    300723 Fup of bug 235783

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M5 - January 21, 2010 - 3.6.0 M5
    Project org.eclipse.jdt.core v_A32a (cvs).

    What's new in this drop

    Problem Reports Fixed

    300133 [1.5][compiler] Local classes inside enum constants generate default constructor without implicit constructor call
    300440 icu dependency needs to be udpated
    299900 [null]Missing potential null warnings for variable on the right of an OR conditional expression
    293917 Invalid 'potential null access' warning reports
    252379 Organize imports deletes needed static import.

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M5 - January 18, 2010
    Project org.eclipse.jdt.core v_A31 (cvs).

    What's new in this drop

    • New API to fix bug 295894. See the bug for details.
      /**
       * Returns a Java search scope limited to the hierarchy of the given type and to a given project.
       * The Java elements resulting from a search with this scope will be types in this hierarchy.
       *
       * Unlike the createHierarchyScope methods, this method creates strict
       * scopes that only contain types that actually span the hierarchy of the focus
       * type, but do not include additional enclosing or member types.
       *
       *
       * By default, hierarchy scopes include all direct and indirect supertypes and subtypes of the
       * focus type. This method, however, allows to restrict the hierarchy to true subtypes,
       * not including supertypes. Also inclusion of the focus type itself is controled by a parameter. 
       *
       * 
       * @param project the project to which to constrain the search, or null if
       *        search should consider all types in the workspace 
       * @param type the focus of the hierarchy scope
       * @param onlySubtypes if true only subtypes of type are considered
       * @param includeFocusType if true the focus type type is included in the resulting scope, 
       * 		  otherwise it is excluded
       * @param owner the owner of working copies that take precedence over original compilation units, 
       *        or null if the primary working copy owner should be used
       * @return a new hierarchy scope
       * @exception JavaModelException if the hierarchy could not be computed on the given type
       * @since 3.6
       */
      public static IJavaSearchScope createStrictHierarchyScope(IJavaProject project, IType type, boolean onlySubtypes, boolean includeFocusType, WorkingCopyOwner owner) throws JavaModelException;
      
    • New API added to report a compiler warning when object allocations are unused:
      org.eclipse.jdt.core.compiler.IProblem.UnusedObjectAllocation
      
      /**
       * Compiler option ID: Reporting Allocation of an Unused Object.
       * When enabled, the compiler will issue an error or a warning if an object is allocated but never used,
       * neither by holding a reference nor by invoking one of the object's methods.
       *
       * Option id:"org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation"
       * Possible values:{ "error", "warning", "ignore" }
       * Default:"ignore"
       *
       * @since 3.6
       * @category CompilerOptionID
       */
      public static final String COMPILER_PB_UNUSED_OBJECT_ALLOCATION = PLUGIN_ID + ".compiler.problem.unusedObjectAllocation";
      

    Problem Reports Fixed

    245007 [compiler] Should not completely ignore anonymous type with missing super type
    295894 [search] Search shows focus type implementation for nested types even though the scope is restricted to subtypes.
    236385 [compiler] Warn for potential programming problem if an object is created but not used

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M5 - January 12, 2010
    Project org.eclipse.jdt.core v_A30 (cvs).

    What's new in this drop

    • New API added to expose the reconcile flags used in the reconcile context:
      /**
       * Returns the reconcile flag of this context. This flag is a bitwise value of the constant defined
       * in ICompilationUnit.
       *
       * @return the reconcile flag of this context
       * @since 3.6
       *
       * @see ICompilationUnit#ENABLE_BINDINGS_RECOVERY
       * @see ICompilationUnit#ENABLE_STATEMENTS_RECOVERY
       * @see ICompilationUnit#IGNORE_METHOD_BODIES
       */
      public int getReconcileFlags();
      

    Problem Reports Fixed

    243917 [compiler] should not warn about unused field when native method present
    296343 OOM error caused by java indexing referencing classloader from threadLocal
    130000 [API] ReconcileContext API: Does getAST3 return AST with bindings?
    298238 Unresolved import in superclass causes 'Cannot reduce the visibility of the inherited method' in subclass

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M5 - January 5, 2010
    Project org.eclipse.jdt.core v_A29a (cvs).

    What's new in this drop

    Problem Reports Fixed

    293861 Problem with refactoring when existing jar with invalid package names
    264112 [Formatter] Wrap when necessary too aggressive on short qualifiers
    298250 [1.6][compiler] NegativeArraySizeException in StackMapFrame.duplicate
    296998 Unused imports should not prevent execution
    298243 [formatter] Removing empty lines between import groups
    297546 [formatter] Formatter removes blank after @see if reference is wrapped
    235781 [compiler] difference to javac in definite unassignment analysis involving an exception within a constructor
    235783 [eval] CodeSnippetParser and some 'CodeSnippet*' ast node does not seem up to date

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M5 - December 14, 2009
    Project org.eclipse.jdt.core v_A28 (cvs).

    What's new in this drop

    Problem Reports Fixed

    196714 [comment] InvalidInputException prevents the AbstractCommentMapper to retrieve tag element
    297757 Cannot get bindings for IType corresponding to parameterized anonymous type
    255640 [spec] Methods Signature.toCharArray(..) have unclear precondition
    262898 BufferChangedEvent must not have @noinstantiate
    181682 JavaConventions.validateJavaTypeName should list valid constants
    108784 SourceMapper doesn't find name range of inner class constructors

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M4 - December 8, 2009 - 3.6.0 M4
    Project org.eclipse.jdt.core v_A27 (cvs).

    What's new in this drop

    Problem Reports Fixed

    297225 [formatter] Indentation may be still wrong in certain circumstances after formatting
    293697 JavaSearchBugTests.testBug286379c is failing randomly

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M4 - December 7, 2009
    Project org.eclipse.jdt.core v_A26 (cvs).

    What's new in this drop

    Problem Reports Fixed

    297045 Weird tests failures in N20091204-2000 and N20091205-2000 builds
    293300 [formatter] The formatter is still unstable in certain circumstances

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M4 - December 4, 2009
    Project org.eclipse.jdt.core v_A25 (cvs).

    What's new in this drop

    • Match result can now report the access rules through a new API added on TypeNameMatch:
      /**
       * Returns the accessibility of the type name match
       *
       * @see IAccessRule
       *
       * @return the accessibility of the type name which may be
       * 		{@link IAccessRule#K_ACCESSIBLE}, {@link IAccessRule#K_DISCOURAGED}
       * 		or {@link IAccessRule#K_NON_ACCESSIBLE}.
       * 		The default returned value is {@link IAccessRule#K_ACCESSIBLE}.
       *
       * @since 3.6
       */
      public abstract int getAccessibility();
      
      See bug 296277 for more details.

    Problem Reports Fixed

    296277 [search] SearchEngine#searchAllTypeNames(.., TypeNameMatchRequestor,..) should report access rules
    296708 [DOM/AST] clarify setters when createASTs(..) is used
    296629 [quick fix] Cast quick fix not offered for method-local classes
    295948 ElementImpl.hashCode throws an NPE
    296660 [compiler] Incorrect unused method warning from compiler

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M4 - December 1, 2009
    Project org.eclipse.jdt.core v_A24 (cvs).

    What's new in this drop

    • New API added to ignore method bodies inside AST tree. The new APIs are tagged as 3.5.2 as this code will be backported to 3.5.2:
      org.eclipse.jdt.core.dom.ASTParser:
      	/**
      	 * Requests an abstract syntax tree without method bodies. 
      	 * 
      	 * When ignore method bodies is enabled, all method bodies are discarded.
      	 * This has no impact on the binding resolution.
      	 *
      	 * If a method contains local types, its method body will be retained.
      	 * This settings is not used if the kind used in setKind(int) is either 
      	 * K_EXPRESSION or K_STATEMENTS.
      	 * @since 3.5.2
      	 */
      	public void setIgnoreMethodBodies(boolean enabled);
      
      org.eclipse.jdt.core.ICompilationUnit:
      	/**
      	 * Constant indicating that a reconcile operation could ignore to parse the method bodies.
      	 * @see ASTParser#setIgnoreMethodBodies(boolean)
      	 * @since 3.5.2
      	 */
      	public static final int IGNORE_METHOD_BODIES = 0x08;
      
      

    Problem Reports Fixed

    288174 [search] NullPointerException when searching for type references
    277643 Generics compile error
    288211 APT uses a lot of memory

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M4 - November 24, 2009
    Project org.eclipse.jdt.core v_A23 (cvs).

    What's new in this drop

    Problem Reports Fixed

    295698 [1.5][compiler] ClassCastException in unchecked warning report
    295260 Wrong warnings on Java.Compiler.Errors/Warnings "Redundant null check"
    190737 [compiler][null] missing 'cannot be null' warning within for loop

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M4 - November 16, 2009
    Project org.eclipse.jdt.core v_A22 (cvs).

    What's new in this drop

    Problem Reports Fixed

    153429 JUnit4 in Eclipse Testing Framework
    295238 [formatter] The comment formatter add an unexpected new line in block comment
    295175 [formatter] Missing space before a string at the beginning of a line in a javadoc comment
    294529 The Scanner sometimes ignores the given offset if larger than the EOF.
    294662 ClassCastException while invoking quick assist
    294404 -target jsr14 flags error on foreach over Collection that does not implement Iterable
    293955 valid javadoc url set on user library, but still says no javadoc
    293443 AbortCompilation when invoking content assist
    293711 Clarify ICompilationUnit#getOwner() javadoc
    293615 error message since v3.6.0M2: name clash by overriding generic methods
    294618 [formatter] The formatter fails to format a compilation unit with deep nesting of html tags
    248312 [model] IMemberValuePair#getValue() should also work for negative numerals
    294731 Specify value type of JAVADOC_LOCATION_ATTRIBUTE_NAME

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M4 - November 10, 2009
    Project org.eclipse.jdt.core v_A21 (cvs).

    What's new in this drop

    Problem Reports Fixed

    294631 [formatter] The formatter takes two passes to format a common sequence of html tags
    294500 [formatter] MalformedTreeException when formatting an invalid sequence of <code> tags in a javadoc comment
    294488 Javadoc of ISourceReference#getSourceRange() should link to SourceRange#isAvailable(..)
    199265 [formatter] 3.3 Code Formatter mis-places commented-out import statements
    241549 [spec] IType#getFields/Initializers/Methods() should define order from class file
    275805 creating a non-primary working copy causes typeHierarchyChanged event
    292510 FUP of 292364: Error messages don't identify partial types precisely.

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M4 - November 3, 2009
    Project org.eclipse.jdt.core v_A20 (cvs).

    What's new in this drop

    Problem Reports Fixed

    293384 Eclipse erroneously reports method "is ambiguous for type"
    285002 [compiler] visibility error for package private method

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M3 - October 29, 2009 - 3.6M3
    Project org.eclipse.jdt.core v_A19 (cvs).

    What's new in this drop

    This version was created to tentatively fix bug 293697 but it occurs again in subsequent build. So, it has been reopened and moved to next version...

    Problem Reports Fixed


    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M3 - October 28, 2009
    Project org.eclipse.jdt.core v_A18 (cvs).

    What's new in this drop

    Problem Reports Fixed

    293496 Adding the serialVersionUID field doesn't work when tab size is 0

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M3 - October 26, 2009
    Project org.eclipse.jdt.core v_A17 (cvs).

    What's new in this drop

    • Reverted change for bug 263564.

    Problem Reports Fixed


    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M3 - October 25, 2009
    Project org.eclipse.jdt.core v_A16 (cvs).

    What's new in this drop

    Problem Reports Fixed

    293240 [formatter] 'insert_space_before_opening_brace_in_array_initializer' preference may be reset in certain circumstances
    263564 API to know when default compiler preference settings have been altered
    289385 Investigate comment in performance tests
    286379 [search] Problem while searching class

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M3 - October 20, 2009
    Project org.eclipse.jdt.core v_A15 (cvs).

    What's new in this drop

    Problem Reports Fixed

    292350 [1.5][compiler] Compiler error: ambiguous method since 3.5.1 using generics and interface inheritance
    292364 [internal] Type name in CastExpression not treated as Type name.
    292428 Internal compiler error: NullPointerException at org.eclipse.jdt.internal.compiler.ast.CastExpression.checkUnsafeCast(CastExpression.java:333)
    291985 [compiler][jsr14] Translating Enum with jsr14 target: ECJ causes a runtime error while Sun compiler works fine
    292240 Compiler error on implementation of raw sub interface

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M3 - October 13, 2009
    Project org.eclipse.jdt.core v_A14 (cvs).

    What's new in this drop

    Problem Reports Fixed

    291391 update the Bundle-Version of the JDT Core Batch Compiler (ecj) from 3.3.0 to 3.6.*
    284280 [1.5][compiler] Error on use generic interface in abstract super class
    286228 [1.5][compiler] Generics inconsistencies possible regression
    286601 [formatter] Code formatter formats anonymous inner classes wrongly when 'Never join lines' is on
    215139 [search] More options for HierarchyScope
    291472 [1.5][compiler] Access to a generic method is compiled incorrectly
    283539 NamingConventions.suggestVariableNames doesn't work if name contains '_'
    280784 [batch] Allow access restrictions to be reported as errors

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M3 - October 6, 2009
    Project org.eclipse.jdt.core v_A13 (cvs).

    What's new in this drop

    Problem Reports Fixed

    291322 Test errors when running JDT Core tests on Windows 7
    282770 [compiler] Dead code detection should have specific @SuppressWarnings
    290028 Use IResource#setDerived(boolean, IProgressMonitor) instead of IResource#setDerived(boolean)
    287607 [1.5][compiler] cast of inner of generic enclosing type are not reported as unsafe
    288749 Redundant superinterface not flagged inside one declaration
    290905 [formatter] Certain formatter pref constellation cause endless loop ==> OOME
    285124 serialVersionUID still causes error/warning
    290877 [DOM] If using a tag named '@enum' the ASTParser ignores this
    281575 Eclipse hangs in SourceMapper while doing java proposals
    290470 [JSR199][compiler] JDT compiler not jsr199 compatible.
    290730 Rewriting SwitchStatement throws NPE

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M3 - September 29, 2009
    Project org.eclipse.jdt.core v_A12 (cvs).

    What's new in this drop

    Problem Reports Fixed

    287676 [1.5][compiler] Useless cast warning not emited
    290563 add specification for fine grain search flags
    290376 Errant "Comparing identical expressions" warning with assignment
    287592 [1.5][compiler] Wrong ambiguous compilation error
    290049 Reconciling a compilation unit does not return an AST with bindings when it should (probably)
    290034 Effects of @SuppressWarnings("unchecked") are broader in Eclipse than in javac
    267561 [evaluation] LocalEvaluationEngine does not accept primitive types
    163194 [1.6] compiler should warn about missing @Override annotation for interface method

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M3 - September 22, 2009
    Project org.eclipse.jdt.core v_A11 (cvs).

    What's new in this drop

    Problem Reports Fixed

    289892 [compiler] NPE during binaryTypeBinding field initialization
    287833 [formatter] Formatter removes the first character after the * in the <pre> tag
    238943 SortElementsOperation doesn't use project specific settings
    288621 [1.5][compiler] Creating type hierarchy failed when pressing F4
    289538 [1.5][compiler] compiler fails to generate correct code for private constructor in inner class
    289639 Problems opening perspective JavaPerspective, NPE on JavaModelManager.containersReset()
    289516 Annotations (visible and invisible) should be preserved with target jsr14
    289576 [1.5][compiler] Compiler changes 'private' modifier on methods with annotated parameter

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M2 - September 14, 2009 - 3.6M2
    Project org.eclipse.jdt.core v_A10 (cvs).

    What's new in this drop

    Problem Reports Fixed

    288148 [perfs] Comments applied for performance tests may be obsolete
    289247 [1.5][compiler]Detecting duplicate methods should not consider return type
    288920 [compiler] NPE renaming run() method
    288698 Cannot create type hierarchy for abstract types when they have inline descendants and *.class* in project name

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M2 - September 1, 2009
    Project org.eclipse.jdt.core v_A09 (cvs).

    What's new in this drop

    Problem Reports Fixed

    287009 Inner Annotation Checks are Missing
    287701 [dom] Length of Assignment should not include whitespace
    285230 [performance] Duplicate buffers created for internal classes
    286391 [compiler] jsr14 target behavior changed between ECJ 3.4.2 and ECJ 3.5

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M2 - August 25, 2009
    Project org.eclipse.jdt.core v_A08 (cvs).

    What's new in this drop

    Problem Reports Fixed

    287462 [formatter] new failures in last 2 nightly builds
    285565 [inline] Inlining constant or local variables causes exceptions with tab width 0
    285799 HashtableOfObject rehashes and grows buffer on removeKey()
    286912 [formatter] Never join lines preferences makes the formatter unstable in certain circumstances
    286668 [formatter] 'Never Join Lines' joins lines that are split on method invocation
    248661 Axis2: Missing required libraries in Axis 2 WS Client Projects
    286918 [javadoc] Compiler should warn when @see and @link tag references in package-info.java don't have fully qualified names
    285466 [3.5 regression] fails to build IcedTea, works with 3.4.x
    286956 NPE when asking to externalize constant
    281609 [javadoc] "Javadoc: Invalid reference" warning for @link to Java package

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M2 - August 18, 2009
    Project org.eclipse.jdt.core v_A07 (cvs).

    What's new in this drop

    Problem Reports Fixed

    286840 ClasspathJar getPath() should return a unique path
    254738 NPE in HierarchyResolver.setFocusType
    276294 Error does not go away after it is resolved
    284785 [1.5][compiler] Eclipse compiler shows error on javac-valid construct: varargs plus overload
    286405 Default value character of annotations in ClassFileEditor are badly printed
    286407 [Model] IMemberValuePair don't return the right value for java.lang.annotation.RetentionPolicy annotations
    285701 [1.5][compiler] Internal Compiler Error - ArrayIndexOutOfBoundsException

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M1 - August 3, 2009 - 3.6M1
    Project org.eclipse.jdt.core v_A06 (cvs).

    What's new in this drop

    Problem Reports Fixed

    284948 [1.6][compiler] Java annotations are broken in editor when used on interface methods

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M1 - July 30, 2009
    Project org.eclipse.jdt.core v_A05 (cvs).

    What's new in this drop

    Problem Reports Fixed

    276526 [content assist] Error - Type Duplicate interface Iterable for the type TestClass
    191176 JavaProject#getOption optimizations

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M1 - July 28, 2009
    Project org.eclipse.jdt.core v_A04 (cvs).

    What's new in this drop

    Problem Reports Fixed

    261909 ClassFileReader.getModifiers() answers funny bits
    283225 [1.6][compiler] classfile versus source conformance check too strict
    284679 [formatter] empty single semi statement prevent enum elements format
    284482 [compiler] Collision cases not detected
    284431 Different inherited thrown exception clauses are not properly handled
    133911 type.move() returns unclear exception "invalid destination"
    270436 [assist] Interface type proposed where only class is legal
    210385 [compiler] ProblemReporter#getProblemCategory misbehaves when passed ProblemSeverities.Ignore as severity parameter
    282891 [compiler] "Comparing identical expressions" warning sometimes invalid
    282869 [compiler] Unnecessary cast warning for cast from char to int
    270437 [assist] Completion proposal leads to cycle detected error
    217443 Documentation for JavaCore#CORE_ENCODING does not match the observed behavior

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M1 - July 21, 2009
    Project org.eclipse.jdt.core v_A03 (cvs).

    What's new in this drop

    Problem Reports Fixed

    283467 [formatter] wrong indentation with 'Never join lines' selected
    281776 Should not warn for comparison of identical expression with float type
    282768 [compiler] Dead code detection should ignore trivial case for ternary if operator
    283133 [formatter] IAE when pasting a snippet
    283299 Complete SourceRange API

    Eclipse Platform Build Notes
    Java Development Tooling Core

    Eclipse SDK 3.6M1 - July 13, 2009
    Project org.eclipse.jdt.core v_A02 (cvs).

    What's new in this drop

    • Added new API type org.eclipse.jdt.core.SourceRange

    Problem Reports Fixed

    271296 [assist] void typed proposal may not be appropriate in many contexts
    281871 [content assist] The extension took too long to return from the 'computeCompletionProposals()' operation
    281598 [assist] Problems during content assist - if project has empty zip file in classpath
    235294 [formatter] javadoc for DefaultCodeFormatterConstants#FORMATTER_ALIGNMENT_FOR_ASSIGNMENT cites a non-API constant
    280497 Incorrect null result for IJavaProject.getClasspathEntryFor(IPath)
    204777 Clarify documentation for ITypeHierarchy created on interface types
    88265 Make SourceRange API

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M1 - July 7, 2009
    Project org.eclipse.jdt.core v_A01 (cvs).

    What's new in this drop

    Problem Reports Fixed

    260968 Deadlock in UserLibraryManager

    Eclipse Platform Build Notes
    Java development tools core

    Eclipse SDK 3.6M1 - June 30, 2009
    Project org.eclipse.jdt.core v_A00 (cvs).

    What's new in this drop

    • New API added to handle the new invokedynamic bytecode:
      org.eclipse.jdt.core.util.ByteCodeVisitorAdapter:
      	public void _invokedynamic(
      			int pc,
      			int index,
      			IConstantPoolEntry nameEntry,
      			IConstantPoolEntry descriptorEntry) {
      		// default behavior is to do nothing
      	}
      
      org.eclipse.jdt.core.util.IBytecodeVisitor#_invokedynamic(int, int, IConstantPoolEntry, IConstantPoolEntry)
      org.eclipse.jdt.core.util.IOpcodeMnemonics#INVOKEDYNAMIC

    Problem Reports Fixed

    277450 [1.5][compiler] Problems with += and Autoboxing/Unboxing
    206498 [1.7][compiler] Remove fix for bug 206483 once 1.7 VMS can handle .class files with version 51.0
    191176 JavaProject#getOption optimizations
    201762 Content Assist has no proposals with certain CU structure
    281681 Stale code in CompilerOptions
    231796 [formatter] @throws tag description is not indented using @param preference when there's a syntax error
    255142 [select] Codeselect should not omit cast
    235295 [formatter] javadoc of CodeFormatter#F_INCLUDE_COMMENTS needs improvement
    280134 [1.5][compiler] Requesting Java AST from selection has encountered a problem
    281317 [search] An internal error occurred during: "Java Search".
    276373 Incorrect resource comparison with IJavaProject.isOnClasspath(IResource)
    275518 [assist] Content assist does not provide proposals if invoked right after a method's opening brace
    280888 change a java file in one plug-in will compile all related plugin projects
    274466 [assist] Assert expressions should be proposed with high relevance
    277382 NPE and other failures in Parser
    275330 NPE from org.eclipse.jdt.internal.core.ClasspathChange.requestIndexing
    273385 [model] NPE while closing project
    280079 NPE while parsing K_CLASS_BODY_DECLARATIONS
    280063 org.eclipse.jdt.internal.compiler.parser.Parser.parseClassBodyDeclarations(char[], int, int, CompilationUnitDeclaration) should return consistent results
    267046 SourceMapper infinite loop on primitive type in generic
    240934 Add support for the invokedynamic bytecode into the disassembler
    267551 [formatter] Wrong spacing in default array parameter for annotation type
    277965 [compiler] NPE in canBeSeenBy due to illegal protected toplevel class
    273990 [compiler] FUP of 269388: Eclipse accepts code rejected by javac
    279183 [1.6][compiler] Inconsistent stackmap frames generated by JDT cause VerifyError
    209778 [search] TypeReferenceMatch#getOtherElements() fails for match in annotation
    221065 [search] Search still finds overridden method
    279836 [1.5][compiler] Eclipse compiler shows error on javac-valid construct: raw types on overridden methods
    280616 [formatter] Valid 1.5 code is not formatted inside <pre> tag
    280255 [formatter] Format edited lines adds two new lines on each save
    280061 [formatter] AIOOBE while formatting javadoc comment
    276938 Remove unreachable removes reachable logic in case statement.
    274898 [recovery] IllegalArgumentException in ASTNode#setSourceRange()
    277204 IAE in SharedASTProvider for generic local class.
    276741 comparing identical value detection does not work for this
    276740 comparing identical value detection does not work for primitive types
    278745 Methods overloaded with unavailable types worked in 3.4 but give "indirectly referenced.." error in 3.5
    278305 [1.5][compiler] JDT accepts supertype parameterized with wildcard
    196308 [formatter] Don't escape entity when formatting in <pre> tags within javadoc comments
    279359 [formatter] Formatter with 'never join lines' produces extra level of indent
    273619 [formatter] Formatting repeats *} in javadoc

    For earlier build notes, also see build notes up to Release 3.5.


    Valid HTML 4.01 Transitional





    © 2015 - 2025 Weber Informatics LLC | Privacy Policy