Skip to main content



      Home
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 Go to next message
Eclipse UserFriend
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 #1764452 is a reply to message #1764448] Tue, 30 May 2017 00:22 Go to previous messageGo to next message
Eclipse UserFriend
Richard,

Posting to the JDT forum would be better:

https://www.eclipse.org/forums/index.php/f/13/

JDT has an Oomph setup, so it should be straight forward to setup a development environment with the source code:

https://wiki.eclipse.org/JDT_Code_Setup_Using_Oomph

Ideally you'd get an Eclipse account (if you don't already have one) so that you can use JDT's read-write Gerrit URIs when cloning (you'll be prompted for the choice of URIs when using the Oomph setup for JDT) so that you can push commits to Gerrit for review.

Most likely you should open a new Bugzilla to associate with your commits via the commit comment.
Re: ejc failing to build with StackOverflowError [message #1765271 is a reply to message #1764452] Wed, 07 June 2017 18:26 Go to previous messageGo to next message
Eclipse UserFriend
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
Re: ejc failing to build with StackOverflowError [message #1765273 is a reply to message #1765271] Wed, 07 June 2017 20:27 Go to previous message
Eclipse UserFriend
Dani is the team lead: https://projects.eclipse.org/user/481
Just create a launcher for an Eclipse application and the IDE you start will have all your target platform and workspace plugins deployed. You can create Java projects and they'll be compile there, and you can debug them. I'd have to Google for documentation. There probably isn't much...
Previous Topic:How many ways are there to run an application?
Next Topic:Ibus - chinese(Intelligent pinyin) does not work in eclipse Kepler
Goto Forum:
  


Current Time: Wed Mar 26 01:47:46 EDT 2025

Powered by FUDForum. Page generated in 0.10300 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top