dart-lang / dart-lang/native

JArray.getRange() has thread-safety problem

Open
#1,151 4 comments 0 reactions 0 assignees View on GitHub
package:jni package:jnigen
Dominant language
Dart
Stars
275
Forks
144
Avg merge
2d 7h
Merged PRs (30d)
55

Description

```dart
Future getIcon(String packageName) async {
final JArray jArray = await getIconFromAndroid(packageName);

// There is a thread safety issue with the following line of code,
return jArray.getRange(0, jArray.length).buffer.asUint8List();
}
```

**multiple executions test(), the return value maybe incorrect.**
```dart
Isolate.run(() async {
final icon = getIcon('package1'); // maybe incorret
});
Isolate.run(() async {
final icon = getIcon('package2'); // maybe incorret
});
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.