-
Notifications
You must be signed in to change notification settings - Fork 107
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Regression: 4.31 no longer supports standalone JavaCore.getOptions() #1720
Comments
@ewillink : if your use case is important, consider to contribute this unit test, especially you've hit that already before. Could you please add a reference to the original bug report?
Could you please add a link to the
This is a regression from 9484101 / #419. Javadoc from @jukzi : could you please fix that? Note: I believe |
https://bugs.eclipse.org/bugs/show_bug.cgi?id=540122 A smoke test, or possibly a single property access is a really trivial test. Except that perhaps JDT has no standalone test support so there is a non-trivial releng activity revamping the pom.xml to support both maven and tycho surefire. I have no familiarity with JDT's releng and consequently any revamping by me wil almost certainly not be done in an acceptable fashion. Sorry. It's your code. I have more than enough to do on my code. When my users embarrass me, I avoid my future embarrassment by writing regression tests myself. /**
Java is a GP language that may of course be used standalone. The Eclipse IDE supports development of IDE and standalone and ... applications. EMF supports a variety of modeling applications which may run standalone and may even auto-generate Java code. JavaCore.getOptions() provides the bridge that enables auto-generation to exploit the details of an Eclipse configuration. OCL and QVTd are two examples of edit/compile/generate/execute tools that (apart from edit) can run fully standalone. The stack trace for an OCL JUnit test failure on this regression is: Thread [test0] (Suspended (breakpoint at line 130 in org.eclipse.emf.codegen.ecore.genmodel.util.GenModelUtil)) |
This project does not have the resources to fulfill every users needs. You are very welcome to contribute such PR |
Adding a regression test is a sensible activity for any bug; it is not a 'users needs'. |
We feel free to ignore bugs if they are non of our own usecase. see https://github.com/eclipse-jdt/eclipse.jdt.core#contributing |
It is your use case. |
I will need to look at this closely. I would be concerned that Xtext has all kinds of Maven support for building things xtend and xcore, so those might well be broken by such a change... |
Do you know anything about Xtext/Xtend's need for standalone generation support? |
I was trying to reproduce the problem just now, but it appears you've already fixed it in the past hours, including adding a test that it's fixed and stays fixed. You're awesome. ❤️ I assume that you well know that you don't win any friends with this condescending approach. |
Note that the test is not automatically executed. If somebody wants that then please contribute. |
FYI, the test is now automatically executed. Unfortunately no Ant integration, but that's outside my skill set. Thanks again @jukzi for fixing the problem, writing a test case, and merging my changes to run the tests during the pom build. 🏆 |
* configure default output.. = bin/ * JavaSearchScope: improve encloses() performance #474 * [test] remove outdated latestBREE project * fix some ecj markers Especially after moving files to compiler.batch - which has no resource warnings - the @SuppressWarnings("resource") is not used - leading to a marker * Single async "Synchronizing projects" Job #419 Scheduling multiple times "while the job is running, the job will still only be rescheduled once" (javadoc) so there will be always only a single job running. Using a Set prevents touching projects multiple times. #419 Manually tested by changing Compiler Building options "Circular dependencies", which triggers a new build. * [test] fix AbstractJavaModelTests #1333 avoid asynchronous refresh. Implementation taken from org.eclipse.core.tests.resources.refresh.RefreshProviderTest.joinAutoRefreshJobs() #1333 * TestVerifier: never wait 100ms improve test time, accurate timeout * [performance] ClassFileReader: use already open Zip File instead of creating new ZipFile instance. also: * use Files.readAllBytes * removed unused code * faster toUri avoiding isDirectory() check for the JARs which are known to be no directory improves performance of read() on windows by factor 2 tested with java reference search to java.lang.Object * Stop skipping compare-with-baseline for jdt.annotation v2 One less thing that has to be manually tracked and done. * Version bump for jdt.annotation Pointed by https://download.eclipse.org/eclipse/downloads/drops4/I20231130-0020/buildlogs/reporeports/reports/versionChecks.html * Fix github urls in NOTICE file * Use try-with-resource and enable warning if not org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning StringWriter does not need flush() or close() and can not throw IOException. Tests excluded. To get rid of boiler plate code. * version bumps * [21] JEP 430 String Templates (#1513) Grammar, compiler AST, resolution and code generation changes * Javadoc: fix unclosed <code> * break from loop within labeled block causes loss of nullness info (#1660) fixes #1659 * Fixes incorrect Javadoc after StringBuffer to StringBuilder change * NPE in ASTRewriteFlattener as return value of GuardedPattern.getPattern() is null (#1647) NPE in ASTRewriteFlattener as return value of GuardedPattern.getPattern() is null * Adding pomless build to JDT core This enables pomless builds for JDT coreand removes the simple pom files. Future commits can reduce the usage of pom files further. This might require enhancements in pomless builds to specify the test classes and suites eclipse-tycho/tycho#3105 * Using Simplify lambda expression and method reference syntax cleanup on core Using the JDT UI "Simplify lambda expression and method reference syntax" clean-up on jdt.core. * Internal compiler error: ArrayIndexOutOfBoundsException in latest i build (#1664) fixes #1661 * Using Simplify lambda expression and method reference syntax cleanup on all plug-ins except core Using the JDT UI "Simplify lambda expression and method reference syntax" clean-up on all plug-ins except jdt.core. * Using short-circuit in IncrementalImageBuilder * Re-normalize line-endings in git of all files to Linux style ("\n") Some files were checked-in into git having windows style line endings (\r\n). This is in general not wanted because it can cause modified files without any difference in git-staging on Windows if auto-crlf is enabled. To re-normalize line endings of all files use the following command (including dot): git add --renormalize . * Bump bundle dependencies to trigger a rebuild / fix SDK build error The change in bytecode of FullSourceWorkspaceBuildTests is due the constant value change of o.e.jdt.internal.compiler.parser.TerminalTokens.TokenNameEOF coming from #1513. Fixes eclipse-platform/eclipse.platform.releng.aggregator#1617 * False positive "Dead code" compiler error reported on org.eclipse.pde.internal.core.util.PDEJavaHelper.getExternalPackageFragment(String, String) (#1671) fixes #1667 * Use diamond operator in jdt.core repo Using the JDT UI clean-up, this removes the redundant type information. Also activating org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning The rest of the changes in the prefs file were done by the tooling, not by selecting anther value. * Improve constructor completions inside method invocations Fix #1587 (#1588) * Try-with-resource clean-up in JDT core Using the JDT UI try-with-resource clean-up on core. Also manually inlining the declaration of multiple places into the try() clause. * Make inner classes static where possible in JDT core Running the JDT performnace clean-up "Make inner classes static where possible" in JDT core * Use Use lazy logical operator (&& and ||) Running the performance clean-up "Use lazy logical operator (&& and ||)" on JDT core * Using Integer.toString directly in Disassembler It is also a JDT UI performance clean-up but this clean-up found only one occurrence. * use Path.of() to avoid 'Potential resource leak' warnings * @NonNullByDefault does not work for type arguments of a local type (#1694) fixes #1693 * ClassCastException during code completion on Annotation (#1696) fixes #1440 Also fixes noise from #1662 * CompilationUnitResolver: Name the CU that causes Exception (#1690) for example during Cleanup eclipse-jdt/eclipse.jdt.ui#950 Co-authored-by: Jörg Kubitz <jkubitz-eclipse@gmx.de> * Code selection support for String template expressions (#1699) Fixes #1685 * Report error if string template is used without preview option enabled (#1697) Improves the fix for #544 * ECJ crashes when an embedded expression contains broken code (#1702) Set haltOnSyntaxError when parsing for embedded expressions. Also using the correct delimiters for text blocks in printExpression() methods. * Selection model tests for string templates (#1704) * tests: enable discouragedReference=warning, declare x-friends to get rid of warnings during build (does not respect the jdt preferences) * Javadoc format fixes Contributes to eclipse-platform/eclipse.platform.releng.aggregator#1531 * Performance: Add public API for Batch Reads in UI - closes #1614 During Batches: * cache Zip Files * enable JavaModelManager.temporaryCache Also: * uses Batch Reads during some core actions that benefit from it. * adds trace logging when caching is missing. #1614 * Javadoc format fixes (part 2) Contributes to eclipse-platform/eclipse.platform.releng.aggregator#1531. It's a pity that this takes multiple cycles but fixing one thing from the log uncovers the next. * ECJ 3.36.0 regression: The type 'E extends java.lang.Exception' is not a valid substitute for the type parameter 'E extends java.lang.@nonnull Exception' (#1708) fixes #1691 + also slightly updates NullAnnotationTests18 as NullAnnotationTests21 * Implement support for code completion inside embedded expression of (only) string templates (not text block templates) (#1712) * Implement support for code completion inside embedded expression of (only) string templates (not text block templates) * Fixes #1711 * Fixes #1641 (#1713) * Add new testcase #1701 (#1705) * Content assist does not propose overrides in records (#1718) * Fixes #1095 * JavaModelManager: lazy initialize TouchJob #1720 #1720 * Run the JavaCoreStandaloneTest in the build #1720 * Bogus error about return expression involving pattern matching (#1731) Fixes #1726 * Compiler fails to recognize an exhaustive switch (#1733) * Fixes #1725 * [21] Processed string templates falsely contain backslash characters (#1730) #1719 * 1641_enum_further_fixes (#1739) * Fix one too many pops arising from string concat invoke dynamic (#1740) * Fix one too many pops arising from string concat invoke dynamic * Fixes #1394 * Wrong placement of exception range closure results in AIOOB (#1744) Fixes #1686 * Improper warning - Potential null pointer access (#1469) Fixes #1461 Sets the flow info reach mode to FlowInfo.UNREACHABLE_BY_NULLANALYSIS after 'Object o = null;if (Objects.isNull(o)) return;', 'Object o = "";if (Objects.nonNull(o)) return; Signed-off-by: Snjezana Peco <snjezana.peco@redhat.com> * Touch bundles affected by the changed ecj version See #1394 See eclipse-platform/eclipse.platform.releng.aggregator#1659 * Upload eventfile and unit test results * 2023-06->2023-09 Seems to have broke dependency graph management in our project (#1698) * Add test for reproducing #1654 * Fix to make that test pass --------- Co-authored-by: Stephan Herrmann <stephan.herrmann@berlin.de> * [memory] SoftReference for ResourceCompilationUnit.contents #1743 Ability to reduce memory during searches that find many files #1743 * deduplicate "eclipse" #1743 CharDeduplication was not designed to deduplicate tokens with length 7+ which could lead to high memory consumption. With this change tokens of all sizes can be deduplicated. #1743 A benchmark implemented in CharDeduplicationTest.main(String[]) shows the new deduplication is performed at similar speed (.21s instead of .16s) but deduplicates much more tokens (99% instead of 36%). * 1703.constant definitions (#1756) * Fixes [21] AIOOB at switchStatement TNode.addPattern (#1757) org.eclipse.jdt.internal.compiler.ast.SwitchStatement $TNode.addPattern --------- Signed-off-by: Snjezana Peco <snjezana.peco@redhat.com> Co-authored-by: Jörg Kubitz <jkubitz-eclipse@gmx.de> Co-authored-by: Eric Milles <eric.milles@thomsonreuters.com> Co-authored-by: Александър Куртаков <akurtakov@gmail.com> Co-authored-by: Jay Arthanareeswaran <jarthana@in.ibm.com> Co-authored-by: Stephan Herrmann <stephan.herrmann@berlin.de> Co-authored-by: Lars Vogel <Lars.Vogel@vogella.com> Co-authored-by: Suby S Surendran <suby.surendran@ibm.com> Co-authored-by: Hannes Wellmann <wellmann.hannes1@gmx.net> Co-authored-by: Andrey Loskutov <loskutov@gmx.de> Co-authored-by: Gayan Perera <gayanper@gmail.com> Co-authored-by: Jörg Kubitz <51790620+jukzi@users.noreply.github.com> Co-authored-by: Srikanth Sankaran <131454720+srikanth-sankaran@users.noreply.github.com> Co-authored-by: Ed Merks <ed.merks@gmail.com> Co-authored-by: Snjeza <snjezana.peco@redhat.com> Co-authored-by: Christoph Läubrich <laeubi@laeubi-soft.de> Co-authored-by: Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
Version: 2024-03 (4.31)
Build id: I20231207-1800
org.eclipse.emf.codegen.ecore.genmodel.util.GenModelUtil uses JavaCore.getOptions() when there is no running platform. This makes use of the JavaModelManager whose constructor still has Platform.isRunning() conditionalization demonstrating that this is (still) a valid use case. Unfortunately the initialization of touchJob has moved from a lazy guarded call from touchProjects() to an eager unguarded constructor initialization.
Fix. Revert the unjustified eager initailization and add a JUnit test demonstrating that JavaCore.getOptions() works standalone. (This is the second time I have had to report a standalone regression.)
The text was updated successfully, but these errors were encountered: