facebook

UI Freezes & Stuck Class Path Validator Threads

  1. MyEclipse IDE
  2.  > 
  3. Java EE Development (EJB, JSP, Struts, XDoclet, etc.)
Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #704383 Reply

    thegedus
    Participant

    Environment:

  • MyEclipse Versions: MyEclipse 2019 (background issue observed), MyEclipse 2024 (UI freezes experienced)
  • JDK: 17.0.11 (bundled with MyEclipse)
  • OS: Windows 64-bit
  • Problem Summary:
    We are experiencing two primary symptoms:

    1. Frequently, ClassPathDependencyValidator threads get stuck in the background, visible in the Progress view, causing sustained CPU load.
    2. Occasionally, and more critically, the entire MyEclipse UI freezes, rendering the IDE unresponsive. This UI freeze prompted this report.

    Version History / Regression:
    The issue of stuck background validator threads was already noticeable in MyEclipse 2019, though without causing UI freezes at that time. We started experiencing the critical UI freezes with MyEclipse 2024. The regression or change that led to UI freezes could have been introduced in any version between MyEclipse 2019 and MyEclipse 2024, as we did not test all intermittent releases.

    Observed Behavior & Technical Clues:

    – The hangs occur within java.util.WeakHashMap methods, specifically get(), put(), and during map iteration.
    – Often, multiple threads appear to be stuck during ClassPathDependencyValidator operations.
    – Our workspace consists of multiple, interdependent Maven WAR projects, which may increase the likelihood of triggering this issue due to complex classpath analysis.
    – A sample call stack from a UI thread freeze is provided below.

    Suspected Root Cause
    We strongly suspect a concurrency issue (e.g., missing or improper synchronization) related to a WeakHashMap instance used for caching classpath dependency information. Given the call stacks (including Genuitec-specific classes like com.genuitec.eclipse.server.core.GenuitecAppServer in some instances) and the behavior, this likely resides within MyEclipse’s proprietary code or its customized Eclipse WST components.

    Example Call Stack (UI Thread Stuck in WeakHashMap.get()):

    java.base@17.0.11/java.util.WeakHashMap.get(WeakHashMap.java:409)
    org.eclipse.jst.j2ee.classpath.ClasspathDependencyUtil.isClassFolderEntry(ClasspathDependencyUtil.java:485)
    org.eclipse.jst.j2ee.classpath.ClasspathDependencyValidator.validateVirtualComponentEntry(ClasspathDependencyValidator.java:267)
    org.eclipse.jst.j2ee.classpath.ClasspathDependencyUtil.isValid(ClasspathDependencyUtil.java:259)
    org.eclipse.jst.j2ee.classpath.ClasspathDependencyUtil.getComponentClasspathDependencies(ClasspathDependencyUtil.java:420)
    org.eclipse.jst.j2ee.classpath.ClasspathDependencyUtil.getComponentClasspathDependencies(ClasspathDependencyUtil.java:281)
    org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getJavaClasspathReferences(J2EEModuleVirtualComponent.java:292)
    org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getManifestRefs(J2EEModuleVirtualComponent.java:262)
    org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getReferences(J2EEModuleVirtualComponent.java:181)

    We kindly request the Genuitec MyEclipse team to investigate this concurrency issue. Addressing it would significantly improve stability and performance.
    Furthermore, while a permanent fix is being developed, we would be very grateful for any guidance on potential configuration settings or workarounds that could help mitigate this problem. Any assistance in this regard would be highly appreciated.

    Thank you.

    Attachments:
    You must be logged in to view attached files.
#704399 Reply

Brian Fernandes
Moderator

Thank you for the detailed report and analysis, much appreciated! Do you know exactly what version of 2019 you were using prior to 2024? Was it 2019.4 or 2019.12? Consequently, what version of 2024 are you now using, I’m assuming 2024.1.2?

Can you share roughly the number of projects in your workspace?

Our team is taking a look at the issue now and we’ll prioritize getting a workaround you can test to keep moving with this release. We will get back in touch with you if any additional information is required.

#704402 Reply

thegedus
Participant

Hi Brian,

Thanks for the quick reply and for your team already looking into this!

Here’s the info you asked for:

MyEclipse 2019 version we were using:
– Version: 2019.12.5
– Build id: 16.0.0-20191205

MyEclipse 2024 version we are currently using:
– Version: 2024.1.2
– Build id: 16.0.0-20240909

Workspace details, roughly:
– There are 212 Maven artifacts in the build.
– We have 24 main aggregate projects.
– Currently, 19 WAR projects are open in the workspace (plus 2 are closed).
– On my two development servers, 7 web projects are currently deployed; this number usually ranges between 3 and 21.
– The projects are added to the source lookup tab of the debug configuration.
– Many projects are open, but the artifacts for larger, generated sources are not imported as projects.
Nevertheless, the classpath could still contain a few hundred thousand classes.

Hopefully, this data will help in pinpointing the issue and developing a workaround. We’re looking forward to hearing what you find!

Thanks in advance for your help!

#704406 Reply

Brian Fernandes
Moderator

Thank you for the additional information and details, certainly helps! We’re having a hard time reproducing this issue, but I think we may have a workaround based on the information you shared. Can you please write in to support@genuitec.com with a link to this thread so we can discuss further? Thanks!

#704444 Reply

Brian Fernandes
Moderator

Hello – just wanted to confirm that your received our email with the workaround? Just wanted to be sure since we haven’t heard back – based on your feedback we’ll be able to work on a fix we can add to a formal release.

Thanks!

Viewing 5 posts - 1 through 5 (of 5 total)
Reply To: UI Freezes & Stuck Class Path Validator Threads

You must be logged in to post in the forum log in