commit | 6e74704b020c324802ce193dc05f264ca8b04302 | [log] [tgz] |
---|---|---|
author | Simeon Andreev <simeon.danailov.andreev@gmail.com> | Thu May 09 14:12:27 2019 +0200 |
committer | Andrey Loskutov <loskutov@gmx.de> | Wed May 15 18:07:20 2019 +0200 |
tree | 417840d69162c4914a2bb51c97f4d3146a0d3e05 | |
parent | 7dc84e51756c711b750c707c83946287f13d93ff [diff] |
Bug 543604 - [9] Error when hovering a HashMap The bug was observed under the following conditions: 1. Debug a snippet with a map variable on Java 9 or above JRE. 2. Enable "Show Logical Structure" in the variables view. 3. Expand a local variable or a parameter of type java.util.Map or inheriting, either in the debug hover in the Java source editor or in the Variables view. 4. Observe an error text instead of content. The error is caused by JDT debug attempting to compile a snippet as follows: package java.util; abstract class Map___ implements java.util.Map { void ___run() throws Throwable { return entrySet().toArray(); } } This snippet is constructed in order to validate whether the expression "return entrySet().toArray();" compiles in the context of the current breakpoint. On Java 9 and above, this snippet is not legal. java.util is already contained in the JRE libraries; its not possible to define a package like this and compile it without extra compile arguments (in particular --patch-module). To fix this problem, we add a special compile mode to JDT core, used by JDT debug. When in this mode, the JDT compiler will ignore split package problems. The compiled expression "return entrySet().toArray();" is then used for evaluation against the underlying java.util.Map, which does work with JRE 9+. Change-Id: Iaaf3edde97e5006aecc8792df9da789b8eddbfce Signed-off-by: Simeon Andreev <simeon.danailov.andreev@gmail.com> Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
This is the core part of Eclipse's Java development tools. It contains the non-UI support for compiling and working with Java code, including the following:
For more information and important links, refer to the [JDT wiki page] 1 or the [JDT project overview page] 2.