8143911: java/lang/StackWalker tests fail on Solaris with IllegalStateException (original) (raw)

Mandy Chung mandy.chung at oracle.com
Wed Nov 25 03:15:26 UTC 2015


On Nov 24, 2015, at 6:28 PM, David Holmes <david.holmes at oracle.com> wrote:

Hi Mandy, Seems okay. I presume when you say the anchor is unsigned, you mean it represents an external unsigned value? So -1 is the only sentinel value being used?

Anchor is an internal unsigned value. It’s a native address (VM StackFrameAnchor created when the stack walking begins) and then get cleared when the stack walking is done.

I want to rethink a little bit as a follow up whether anchor could be something different.

The patch is on its way to hs-rt and so the commit message can’t add you as the reviewer, sorry for that David. Thanks for the review.

Mandy

Thanks, David On 25/11/2015 8:37 AM, Mandy Chung wrote:

On Nov 24, 2015, at 2:20 PM, Daniel D. Daugherty <daniel.daugherty at oracle.com> wrote:

You use both 'this.anchor' and 'anchor'. Seems inconsistent. Oh yeah. I took out “this.” from it. diff --git a/src/java.base/share/classes/java/lang/StackStreamFactory.java b/src/java.base/share/classes/java/lang/StackStreamFactory.java --- a/src/java.base/share/classes/java/lang/StackStreamFactory.java +++ b/src/java.base/share/classes/java/lang/StackStreamFactory.java @@ -225,17 +225,17 @@ } switch (state) { case NEW: - if (this.anchor != 0) { + if (anchor != 0) { throw new IllegalStateException("This stack stream is being reused."); } break; case OPEN: - if (this.anchor <= 0) { - throw new IllegalStateException("This stack stream is not valid for walking"); + if (anchor == 0 || anchor == -1L) { + throw new IllegalStateException("This stack stream is not valid for walking: " + anchor); } break; case CLOSED: - if (this.anchor != -1L) { + if (anchor != -1L) { throw new IllegalStateException("This stack stream is not closed."); } } Mandy



More information about the hotspot-runtime-dev mailing list