Skip to content

Commit

Permalink
support graalvm issue #386
Browse files Browse the repository at this point in the history
  • Loading branch information
wenshao committed Jun 1, 2022
1 parent 5d1191b commit 667ff49
Showing 1 changed file with 21 additions and 1 deletion.
22 changes: 21 additions & 1 deletion core/src/main/java/com/alibaba/fastjson2/JSONPath.java
Original file line number Diff line number Diff line change
Expand Up @@ -4671,7 +4671,7 @@ static final class RandomIndexSegment
extends Segment {
public static final RandomIndexSegment INSTANCE = new RandomIndexSegment();

Random random = new Random();
Random random;

@Override
public void accept(JSONReader jsonReader, Context context) {
Expand All @@ -4692,6 +4692,11 @@ public void accept(JSONReader jsonReader, Context context) {
}
}

// lazy init for graalvm
if (random == null) {
random = new Random();
}

int index = Math.abs(random.nextInt()) % array.size();
context.value = array.get(index);
context.eval = true;
Expand Down Expand Up @@ -4749,6 +4754,11 @@ public void accept(JSONReader jsonReader, Context context) {
array.add(val);
}

// lazy init for graalvm
if (random == null) {
random = new Random();
}

int index = Math.abs(random.nextInt()) % array.size();
context.value = array.get(index);
context.eval = true;
Expand All @@ -4766,6 +4776,11 @@ public void eval(Context context) {
return;
}

// lazy init for graalvm
if (random == null) {
random = new Random();
}

int randomIndex = Math.abs(random.nextInt()) % list.size();
context.value = list.get(randomIndex);
context.eval = true;
Expand All @@ -4778,6 +4793,11 @@ public void eval(Context context) {
return;
}

// lazy init for graalvm
if (random == null) {
random = new Random();
}

int randomIndex = random.nextInt() % array.length;
context.value = array[randomIndex];
context.eval = true;
Expand Down

0 comments on commit 667ff49

Please sign in to comment.