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

Records with inner records breaks breakpoint toggling #270

Closed
alienisty opened this issue Jun 28, 2023 · 0 comments · Fixed by #271
Closed

Records with inner records breaks breakpoint toggling #270

alienisty opened this issue Jun 28, 2023 · 0 comments · Fixed by #271
Assignees
Milestone

Comments

@alienisty
Copy link

Given the following record:

public record Test(int a, int b) {

  public void x() {
    return; // <- Toggling a breakpoint here toggles it on TestInner
  }

  public int y() {
    return a + b; // <- Toggling a breakpoint here toggles it on TestInner
  }

  public record TestInner() {
  }

  public int z() {
    return a + b; // <- Toggling a breakpoint here toggles it here as expected
  }
}

So it seems that only code above the inner record is affected, while code below the record is not.

Environment: Windows 10
JRE: jdk-17.0.7+7
eclise 4.28

@SarikaSinha SarikaSinha self-assigned this Jun 28, 2023
@SarikaSinha SarikaSinha added this to the 4.29 M1 milestone Jun 28, 2023
SarikaSinha added a commit to SarikaSinha/eclipse.jdt.debug that referenced this issue Jun 28, 2023
fixes eclipse-jdt#270

Boundary for Breakpoint should be checked
iloveeclipse pushed a commit that referenced this issue Jun 29, 2023
fixes #270

Boundary for Breakpoint should be checked
SarikaSinha added a commit that referenced this issue Aug 1, 2023
* Remove use of OPTION_JdtDebugCompileMode with
OPTION_IgnoreUnnamedModuleForSplitPackage

This change replaces use of OPTION_JdtDebugCompileMode with
OPTION_IgnoreUnnamedModuleForSplitPackage, since the latter does what we
need better and doesn't cause the side effects that the first option
causes. Goal is to later on remove OPTION_JdtDebugCompileMode in JDT
core.

Fixes: #260
Signed-off-by: Simeon Andreev <simeon.danailov.andreev@gmail.com>

* Detect JVM installs at startup (#231)

* Detect JVM installs at startup

Fixes #230

* Delete classpath argument files upon shutdown. Fixes #240 (#242)

Store classpath argument files in bundle state location, not in workspace

- Avoids that workspace is contaminated with temporary files.
- Delete classpath argument files upon shutdown.
- Version bump org.eclipse.jdt.launching.

See https://github.com/eclipse-platform/eclipse.platform.debug/issues/84
Fixes #240

* Avoid reusing of not thread-safe SimpleDateFormat

  SimpleDateFormat.format(new Date());
returns same string as immutable and thread-safe
  DateTimeFormatter.format(new Date().toInstant())

* Avoid potential Threadlocal.set(null) memory leak (#249)

Threadlocal.set(null) keeps a reference to ThreadLocal.this
see https://rules.sonarsource.com/java/RSPEC-5164

Co-authored-by: Jörg Kubitz <jkubitz-eclipse@gmx.de>

* Change how JrtPackageFragmentRoots are printed in Source tab (#266)

- currently all JrtPackageFragmentRoots are printed using the
  path which is the same for all modules extracted from a jrt-fs.jar
- change this to print the module name followed by the full
  jrt-fs.jar path
- fixes #633

* JavaSnippetEditor: fix missing synchronize (#259)

* JavaSnippetEditor: fix missing synchronize

* JavaSnippetEditor: Adding "this." for non static field access

---------

Co-authored-by: Jörg Kubitz <jkubitz-eclipse@gmx.de>

* LaunchingPlugin: use try-with-resource (#252)

to close streams in case of Exceptions.

Co-authored-by: Jörg Kubitz <jkubitz-eclipse@gmx.de>

* Add missing "static" modifier for constants (#256)

To reduce memory per instance

Co-authored-by: Jörg Kubitz <jkubitz-eclipse@gmx.de>

* [trivial] Fixed "Redundant specification of type arguments" warnings

Reported by official SDK build since 4.29 for whatever reason

See for example
https://download.eclipse.org/eclipse/downloads/drops4/I20230621-1800/compilelogs/plugins/org.eclipse.jdt.debug.jdi.tests_1.1.0.v20230328-1614/@dot.html#OTHER_WARNINGS

* Records with inner records breaks breakpoint toggling
fixes #270

Boundary for Breakpoint should be checked

* Touch bundles affected by the new ecj version

See eclipse-platform/eclipse.platform.releng.aggregator#1184

* Fix html links in VMInstall(Type) Extension-Point documentation

* Re-throw underlying exceptions in OpenFromClipboardTests #27 (#279)

Replace call to Display::syncExec with call to Display::syncCall in the
private method getJavaElementMatches. snycCall does not hide exceptions,
it re-throws them to the calling thread (which helps debugging).

Don't catch exceptions in the helper class "Accessor", re-throw them so
the calling tests can show a more meaningful stack-trace when they fail.

* Use typed for-each loop

Avoiding type-casts makes code easier to read.

* Avoid wrapping primitives for toString()

see https://rules.sonarsource.com/java/RSPEC-2131

* ReferenceTypeImpl: compare Array content

instead of instance comparison.
https://stackoverflow.com/questions/8777257/equals-vs-arrays-equals-in-java

* VMInstallTests: fix random ConcurrentModificationException #202

by using threadsafe datastructures.

* Set console stream encoding for java >= 19 - eclipse.platform.debug#124

https://github.com/eclipse-platform/eclipse.platform.debug/issues/124

* FileHashing: avoid getCanonicalFile()

getCanonicalFile() is slow on windows / JDK17 - can costs even more then
calculating the SHA1 of the file content, which it is supposed to avoid.

* Instead use normalized path. It does not matter that multiple files
could be the same due to symbolic links, it will just recalculate their
SHA1 for all of them - which is still faster.
* Also read all file attributes at once.

* Refactor XML parsing

* Fix path decoding of URL to File containing space (fixes #64)

A space in an URL is encoded as "%20" and has to be decoded to " ".

Otherwise a debugged JAR rooted in a path containing space is not
opening class file but java file editor.

* Add MacOS support for detecting VM installs at start up (#276)

- fixes #265

* require org.eclipse.core.runtime 3.29.0

---------

Signed-off-by: Simeon Andreev <simeon.danailov.andreev@gmail.com>
Co-authored-by: Simeon Andreev <simeon.danailov.andreev@gmail.com>
Co-authored-by: Mickael Istria <mistria@redhat.com>
Co-authored-by: Diethard Ohrt <130975899+diti0023@users.noreply.github.com>
Co-authored-by: Jörg Kubitz <jkubitz-eclipse@gmx.de>
Co-authored-by: Jörg Kubitz <51790620+jukzi@users.noreply.github.com>
Co-authored-by: Jeff Johnston <jjohnstn@redhat.com>
Co-authored-by: Andrey Loskutov <loskutov@gmx.de>
Co-authored-by: Hannes Wellmann <wellmann.hannes1@gmx.net>
Co-authored-by: Federico Jeanne <2205684+fedejeanne@users.noreply.github.com>
SarikaSinha added a commit that referenced this issue Aug 1, 2023
* Remove use of OPTION_JdtDebugCompileMode with
OPTION_IgnoreUnnamedModuleForSplitPackage

This change replaces use of OPTION_JdtDebugCompileMode with
OPTION_IgnoreUnnamedModuleForSplitPackage, since the latter does what we
need better and doesn't cause the side effects that the first option
causes. Goal is to later on remove OPTION_JdtDebugCompileMode in JDT
core.

Fixes: #260
Signed-off-by: Simeon Andreev <simeon.danailov.andreev@gmail.com>

* Detect JVM installs at startup (#231)

* Detect JVM installs at startup

Fixes #230

* Delete classpath argument files upon shutdown. Fixes #240 (#242)

Store classpath argument files in bundle state location, not in workspace

- Avoids that workspace is contaminated with temporary files.
- Delete classpath argument files upon shutdown.
- Version bump org.eclipse.jdt.launching.

See https://github.com/eclipse-platform/eclipse.platform.debug/issues/84
Fixes #240

* Avoid reusing of not thread-safe SimpleDateFormat

  SimpleDateFormat.format(new Date());
returns same string as immutable and thread-safe
  DateTimeFormatter.format(new Date().toInstant())

* Avoid potential Threadlocal.set(null) memory leak (#249)

Threadlocal.set(null) keeps a reference to ThreadLocal.this
see https://rules.sonarsource.com/java/RSPEC-5164

Co-authored-by: Jörg Kubitz <jkubitz-eclipse@gmx.de>

* Change how JrtPackageFragmentRoots are printed in Source tab (#266)

- currently all JrtPackageFragmentRoots are printed using the
  path which is the same for all modules extracted from a jrt-fs.jar
- change this to print the module name followed by the full
  jrt-fs.jar path
- fixes #633

* JavaSnippetEditor: fix missing synchronize (#259)

* JavaSnippetEditor: fix missing synchronize

* JavaSnippetEditor: Adding "this." for non static field access

---------

Co-authored-by: Jörg Kubitz <jkubitz-eclipse@gmx.de>

* LaunchingPlugin: use try-with-resource (#252)

to close streams in case of Exceptions.

Co-authored-by: Jörg Kubitz <jkubitz-eclipse@gmx.de>

* Add missing "static" modifier for constants (#256)

To reduce memory per instance

Co-authored-by: Jörg Kubitz <jkubitz-eclipse@gmx.de>

* [trivial] Fixed "Redundant specification of type arguments" warnings

Reported by official SDK build since 4.29 for whatever reason

See for example
https://download.eclipse.org/eclipse/downloads/drops4/I20230621-1800/compilelogs/plugins/org.eclipse.jdt.debug.jdi.tests_1.1.0.v20230328-1614/@dot.html#OTHER_WARNINGS

* Records with inner records breaks breakpoint toggling
fixes #270

Boundary for Breakpoint should be checked

* Touch bundles affected by the new ecj version

See eclipse-platform/eclipse.platform.releng.aggregator#1184

* Fix html links in VMInstall(Type) Extension-Point documentation

* Re-throw underlying exceptions in OpenFromClipboardTests #27 (#279)

Replace call to Display::syncExec with call to Display::syncCall in the
private method getJavaElementMatches. snycCall does not hide exceptions,
it re-throws them to the calling thread (which helps debugging).

Don't catch exceptions in the helper class "Accessor", re-throw them so
the calling tests can show a more meaningful stack-trace when they fail.

* Use typed for-each loop

Avoiding type-casts makes code easier to read.

* Avoid wrapping primitives for toString()

see https://rules.sonarsource.com/java/RSPEC-2131

* ReferenceTypeImpl: compare Array content

instead of instance comparison.
https://stackoverflow.com/questions/8777257/equals-vs-arrays-equals-in-java

* VMInstallTests: fix random ConcurrentModificationException #202

by using threadsafe datastructures.

* Set console stream encoding for java >= 19 - eclipse.platform.debug#124

https://github.com/eclipse-platform/eclipse.platform.debug/issues/124

* FileHashing: avoid getCanonicalFile()

getCanonicalFile() is slow on windows / JDK17 - can costs even more then
calculating the SHA1 of the file content, which it is supposed to avoid.

* Instead use normalized path. It does not matter that multiple files
could be the same due to symbolic links, it will just recalculate their
SHA1 for all of them - which is still faster.
* Also read all file attributes at once.

* Refactor XML parsing

* Fix path decoding of URL to File containing space (fixes #64)

A space in an URL is encoded as "%20" and has to be decoded to " ".

Otherwise a debugged JAR rooted in a path containing space is not
opening class file but java file editor.

* Add MacOS support for detecting VM installs at start up (#276)

- fixes #265

* require org.eclipse.core.runtime 3.29.0

---------

Signed-off-by: Simeon Andreev <simeon.danailov.andreev@gmail.com>
Co-authored-by: Simeon Andreev <simeon.danailov.andreev@gmail.com>
Co-authored-by: Mickael Istria <mistria@redhat.com>
Co-authored-by: Diethard Ohrt <130975899+diti0023@users.noreply.github.com>
Co-authored-by: Jörg Kubitz <jkubitz-eclipse@gmx.de>
Co-authored-by: Jörg Kubitz <51790620+jukzi@users.noreply.github.com>
Co-authored-by: Jeff Johnston <jjohnstn@redhat.com>
Co-authored-by: Andrey Loskutov <loskutov@gmx.de>
Co-authored-by: Hannes Wellmann <wellmann.hannes1@gmx.net>
Co-authored-by: Federico Jeanne <2205684+fedejeanne@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants