Home » Newcomers » Newcomers » ejc failing to build with StackOverflowError(Certain code constructs will cause ejc to deterministically fail to compile)
ejc failing to build with StackOverflowError [message #1764448] |
Mon, 29 May 2017 21:02  |
Eclipse User |
|
|
|
host: Dell XPS 8920, Windows 10 pro
IDE version: eclipse-java-oxygen-M7-win32-x86_64
JDK version: jdk1.8.0_152
jdt version: org.eclipse.jdt.core_3.13.0.v20170516-1929
I originally described this bug through comments to "Bug 432541 Stack Overflow in Java Search - type inference issue?". After this bug had been verified fixed, I began seeing the identical symptoms, and added comment 44 to this effect on 2017-3-1. Stephan Herrmann suggested not simply reopening 432541, but to document the issue separately, so a decision to reopen could be made on its own merits.
I've been able to narrow the occurrence of this bug to a single java project (having either Java or Maven nature), where it fails 100% reproducibly, thereby blocking the project's development.
The project contains ~1500 source files, and make very heavy use of generics, and in numerous places, complex, mutually-recursive type signatures. It seems to be happening in a set of types representing digraphs, where some signatures (e.g. Node) have 2 parameters for edges (source and target), and can't be further simplified. Unfortunately, this set of types is woven with many other types, attempts to subsetting them have failed. I know of no workaround.
I've seen this failure occur with both java 7 and 8, and in neon-1, neon-2, and oxygen-m5, m6, and m7.
My current root-cause theory is that the type inferencer is failing to distinguish multiple synonymous type parameters by their positions in member or type declarations, thereby getting confused when traversing the decl's type graph, basically missing the fact that it's already processed a binding in a previous position, and repetitively reprocesssing the binding.
Given this current blocker, I've had to migrate several projects to IDEA, which has an inferior project and module model, greatly hampering productivity.
I'm therefore motivated to roll-up my sleeves and attempt fixing this bug. Being a total eclipse development noobie, having someone experienced in eclipse development, ideally familiar with ejc internals, to advise me when I get stuck (or even starting in the right project) would raise the likelihood of me fixing the bug.
Anyone game to help, or at least point me in the right direction?
|
|
| |
Re: ejc failing to build with StackOverflowError [message #1765271 is a reply to message #1764452] |
Wed, 07 June 2017 18:26   |
Eclipse User |
|
|
|
Hi Ed,
Thanks for the advice, I've implemented it as best I can at this point, specifically added topic https://www.eclipse.org/forums/index.php/t/1086652/. Thus far, I've received zero replies. I'd therefore appreciate you doing me a favor, providing links that either answer or will allow me to quickly determine
(a) who the JDT PMC and project team leads are;
(b) what the basic step-by-step procedure is for launching an eclipse instance under JDT, as the target for debugging the ejc bug; and
(c) links to any documentation describing ejc's theory of operation, specifically the type inferencing subsystem.
Once I can do (b), I believe I can (as I describe in the above topic) set a break in the ParameterizedTypeBinding.collectInferenceVariables() method and drill-down from there. My sincere hope is that I'll be able to become relatively self-sufficient given this info, and in any case, I hope I won't feel I need to pester you any futher.
Thanks!
-rjs
|
|
| |
Goto Forum:
Current Time: Wed Mar 26 01:47:46 EDT 2025
Powered by FUDForum. Page generated in 0.10300 seconds
|