Bug 539470 - Eclipse freezes on opening packages in Project Explorer

The NonEssentialElementsFilter applies the complete filter logic to all
children, recursively. But it only needs to know whether there is at
least one child selected by the existing filters. Therefore rework the
implementation to use an early exit after the first hit.

Runtime of the filter for the example attached to the bug drops from 24
to 2.6 seconds and the main thread is blocked much less when expanding
the huge package hierarchy in the package explorer.

Change-Id: I0076429db5505cc84dda17e49afc0e29799322aa
Signed-off-by: Michael Keppler <Michael.Keppler@gmx.de>
1 file changed
tree: 2ca174a4c3e595f6d3ef880984f082266a51ab46
  1. org.eclipse.jdt.astview/
  2. org.eclipse.jdt.astview.feature/
  3. org.eclipse.jdt.core.manipulation/
  4. org.eclipse.jdt.jeview/
  5. org.eclipse.jdt.jeview.feature/
  6. org.eclipse.jdt.junit/
  7. org.eclipse.jdt.junit.core/
  8. org.eclipse.jdt.junit.runtime/
  9. org.eclipse.jdt.junit4.runtime/
  10. org.eclipse.jdt.junit5.runtime/
  11. org.eclipse.jdt.text.tests/
  12. org.eclipse.jdt.ui/
  13. org.eclipse.jdt.ui.examples.javafamily/
  14. org.eclipse.jdt.ui.examples.projects/
  15. org.eclipse.jdt.ui.tests/
  16. org.eclipse.jdt.ui.tests.refactoring/
  17. org.eclipse.ltk.core.refactoring/
  18. org.eclipse.ltk.core.refactoring.tests/
  19. org.eclipse.ltk.ui.refactoring/
  20. org.eclipse.ltk.ui.refactoring.tests/
  21. tests-pom/
  22. .gitignore
  23. pom.xml
  24. README.md
README.md

Contributing to JDT UI - Java development tools UI

Thanks for your interest in this project.

Project description:

The JDT UI implements the user interface for the Java IDE. This includes views like Package Explorer and JUnit, the Java and properties files editors, Java search, and refactorings. Website: http://www.eclipse.org/jdt/ui/

How to contribute:

Contributions to JDT UI are most welcome. There are many ways to contribute, from entering high quality bug reports, to contributing code or documentation changes. For a complete guide, see the [How to Contribute] 1 page on the team wiki.

Developer resources:

Information regarding source code management, builds, coding standards, and more.

Contributor License Agreement:

Before your contribution can be accepted by the project, you need to create and electronically sign the Eclipse Foundation Contributor License Agreement (CLA).

Forum:

Public forum for Eclipse JDT users.

Search for bugs:

This project uses Bugzilla to track ongoing development and issues.

Create a new bug:

Be sure to search for existing bugs before you create another one. Remember that contributions are always welcome!

Contact:

Contact the project developers via the project's “dev” list.

License

Eclipse Public License (EPL) v1.0