Skip to content
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

8261931: IGV: quick search fails on multi-line node labels #2889

Closed
wants to merge 1 commit into from

Conversation

@robcasloz
Copy link
Contributor

@robcasloz robcasloz commented Mar 9, 2021

This change makes it possible to match any field of a multi-line node label, by removing line breaks from the label node property that is searched on by default.

Tested manually using different node label configurations (configurable in Tools -> Options -> General), with and without line breaks.


Progress

  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue
  • Change must be properly reviewed

Issue

  • JDK-8261931: IGV: quick search fails on multi-line node labels

Reviewers

Download

$ git fetch https://git.openjdk.java.net/jdk pull/2889/head:pull/2889
$ git checkout pull/2889

Remove line breaks from the 'label' property that is searched on by default.
@bridgekeeper
Copy link

@bridgekeeper bridgekeeper bot commented Mar 9, 2021

👋 Welcome back rcastanedalo! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk
Copy link

@openjdk openjdk bot commented Mar 9, 2021

@robcasloz The following label will be automatically applied to this pull request:

  • hotspot-compiler

When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing list. If you would like to change these labels, use the /label pull request command.

@robcasloz robcasloz marked this pull request as ready for review Mar 9, 2021
@openjdk openjdk bot added the rfr label Mar 9, 2021
@mlbridge
Copy link

@mlbridge mlbridge bot commented Mar 9, 2021

Webrevs

Copy link
Contributor

@neliasso neliasso left a comment

Does this solution work on all platforms?

@navyxliu
Copy link
Contributor

@navyxliu navyxliu commented Mar 9, 2021

Thank you for fixing this problem.

Does this solution work on all platforms?

I think "\R" here refers to the "Line Breaker Matcher"

Any Unicode linebreak sequence, is equivalent to \u000D\u000A|[\u000A\u000B\u000C\u000D\u0085\u2028\u2029]

As the document says, it matches any linebreak sequence in Unicode. I assume this linebreak sequence comes from the text control. All platforms should have the similar linebreaks. Therefore, it's portable. I also verified this patch on MacOS. It works.

Instead of replacing \R with " " for label only, Is it a better place to do that in resolveString()?

diff --git a/src/utils/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/Figure.java b/src/utils/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/Figure.java
index 49c5d57348a..9c2735ce50a 100644
--- a/src/utils/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/Figure.java
+++ b/src/utils/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/Figure.java
@@ -325,7 +325,7 @@ public class Figure extends Properties.Entity implements Source.Provider, Vertex
             }
         }

-        return sb.toString();
+        return sb.toString().replaceAll("\\R", " ");
     }
 

The reason is Figure.getWitdh() for lines. I don't think it can get appropriate width if the string contains \R.

Copy link
Contributor

@navyxliu navyxliu left a comment

LGTM

@robcasloz
Copy link
Contributor Author

@robcasloz robcasloz commented Mar 10, 2021

Does this solution work on all platforms?

Hi Nils, thanks for bringing up multi-platform support. From now on I will test platform-sensitive IGV changes on both Windows and Linux.

This change works on Linux and MacOS (as reported by @navyxliu, see also his comment about the use of "\R"). I just tested it on Windows and it also works as expected:

multi-line-search-windows

@robcasloz
Copy link
Contributor Author

@robcasloz robcasloz commented Mar 10, 2021

Thanks for the feedback @navyxliu!

The reason is Figure.getWitdh() for lines. I don't think it can get appropriate width if the string contains \R.

I cannot reproduce this problem, do you have an example where a node's width is not properly adjusted?

Copy link
Contributor

@neliasso neliasso left a comment

Looks good to me!

@openjdk
Copy link

@openjdk openjdk bot commented Mar 10, 2021

@robcasloz This change now passes all automated pre-integration checks.

ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details.

After integration, the commit message for the final commit will be:

8261931: IGV: quick search fails on multi-line node labels

Remove line breaks from the 'label' property that is searched on by default.

Reviewed-by: neliasso, xliu, chagedorn

You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed.

At the time when this comment was updated there had been 160 new commits pushed to the master branch:

  • 7988c1d: 8262443: GenerateOopMap::do_interpretation can spin for a long time.
  • 32cbd19: 8263105: security-libs doclint cleanup
  • 6971c23: 8262351: Extra '0' in java.util.Formatter for '%012a' conversion with a sign character
  • c6d74bd: 8262910: Cleanup THREAD/TRAPS/naming and typing issues in ObjectMonitor and related code
  • 57f16f9: 8262377: Parallel class resolution loses constant pool error
  • b482733: 8259218: (fs) Add links in from overloaded methods in java.nio.file.Files
  • acda812: 8263333: Improve links from core reflection to JLS and JVMS
  • 9399e1b: 8261918: two runtime/cds/appcds/VerifierTest failed with "Unable to use shared archive"
  • 7e52a6e: 8263380: Unintended use of Objects.nonNull in VarHandles
  • 4b5be40: 8238812: assert(false) failed: bad AD file
  • ... and 150 more: https://git.openjdk.java.net/jdk/compare/de3f519dc90c8ca8f0879c21705afd2889eadd54...master

As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details.

➡️ To integrate this PR with the above commit message to the master branch, type /integrate in a new comment.

@openjdk openjdk bot added the ready label Mar 10, 2021
@robcasloz
Copy link
Contributor Author

@robcasloz robcasloz commented Mar 10, 2021

Looks good to me!

Thanks for reviewing, Nils!

@navyxliu
Copy link
Contributor

@navyxliu navyxliu commented Mar 10, 2021

Thanks for the feedback @navyxliu!

The reason is Figure.getWitdh() for lines. I don't think it can get appropriate width if the string contains \R.

I cannot reproduce this problem, do you have an example where a node's width is not properly adjusted?

I can't see any problem either. Forget it. Your patch looks good to me. thanks!

Copy link
Member

@chhagedorn chhagedorn left a comment

Looks good!

Another thing that I've noticed in Tool -> General: There is no response when clicking the Apply button. Is it even mapped to an action? When clicking Apply and then Cancel it has not applied the changes. Maybe the button can also just be or removed. But that can be handled in another RFE.

@robcasloz
Copy link
Contributor Author

@robcasloz robcasloz commented Mar 11, 2021

Looks good!

Thanks for reviewing, Christian!

Another thing that I've noticed in Tool -> General: There is no response when clicking the Apply button. Is it even mapped to an action? When clicking Apply and then Cancel it has not applied the changes. Maybe the button can also just be or removed. But that can be handled in another RFE.

Right, at the moment this is just an effectless leftover from the NetBeans platform. I will make a note about it.

@chhagedorn
Copy link
Member

@chhagedorn chhagedorn commented Mar 11, 2021

Another thing that I've noticed in Tool -> General: There is no response when clicking the Apply button. Is it even mapped to an action? When clicking Apply and then Cancel it has not applied the changes. Maybe the button can also just be or removed. But that can be handled in another RFE.

Right, at the moment this is just an effectless leftover from the NetBeans platform. I will make a note about it.

Sounds good.

@robcasloz
Copy link
Contributor Author

@robcasloz robcasloz commented Mar 11, 2021

/summary
Remove line breaks from the 'label' property that is searched on by default.

@openjdk
Copy link

@openjdk openjdk bot commented Mar 11, 2021

@robcasloz Setting summary to Remove line breaks from the 'label' property that is searched on by default.

@robcasloz
Copy link
Contributor Author

@robcasloz robcasloz commented Mar 11, 2021

/integrate

@openjdk openjdk bot closed this Mar 11, 2021
@openjdk openjdk bot added integrated and removed ready rfr labels Mar 11, 2021
@openjdk
Copy link

@openjdk openjdk bot commented Mar 11, 2021

@robcasloz Since your change was applied there have been 160 commits pushed to the master branch:

  • 7988c1d: 8262443: GenerateOopMap::do_interpretation can spin for a long time.
  • 32cbd19: 8263105: security-libs doclint cleanup
  • 6971c23: 8262351: Extra '0' in java.util.Formatter for '%012a' conversion with a sign character
  • c6d74bd: 8262910: Cleanup THREAD/TRAPS/naming and typing issues in ObjectMonitor and related code
  • 57f16f9: 8262377: Parallel class resolution loses constant pool error
  • b482733: 8259218: (fs) Add links in from overloaded methods in java.nio.file.Files
  • acda812: 8263333: Improve links from core reflection to JLS and JVMS
  • 9399e1b: 8261918: two runtime/cds/appcds/VerifierTest failed with "Unable to use shared archive"
  • 7e52a6e: 8263380: Unintended use of Objects.nonNull in VarHandles
  • 4b5be40: 8238812: assert(false) failed: bad AD file
  • ... and 150 more: https://git.openjdk.java.net/jdk/compare/de3f519dc90c8ca8f0879c21705afd2889eadd54...master

Your commit was automatically rebased without conflicts.

Pushed as commit f6b4ba0.

💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
4 participants