Bug 564185 - return true in case F_CONTENT and F_FINE_GRAINED is set

Bug: Incompatible bit masks in (e | 0x4000 == 0x1) yields constant
result in
org.eclipse.jdt.internal.ui.javaeditor.JavaEditorBreadcrumb$ElementChangeListener.isStructuralChange(IJavaElementDelta)

This method compares an expression of the form (e | C) to D. which will
always compare unequal due to the specific values of constants C and D.
This may indicate a logic error or typo.

Typically, this bug occurs because the code wants to perform a
membership test in a bit set, but uses the bitwise OR operator ("|")
instead of bitwise AND ("&").

Also such bug may appear in expressions like (e & A | B) == C which is
parsed like ((e & A) | B) == C while (e & (A | B)) == C was intended.

Rank: Scary (5), confidence: High
Pattern: BIT_IOR
Type: BIT, Category: CORRECTNESS (Correctness)


Change-Id: Ic7c4a21a6e4330fcbb54c7350d95ee1dfff8b65d
Signed-off-by: Carsten Hammer <carsten.hammer@t-online.de>
1 file changed
tree: 1eb8eb2b3c0a6cea173764951aa22ebea3ca57b3
  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. CONTRIBUTING
  24. LICENSE
  25. NOTICE
  26. pom.xml
  27. 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) v2.0