mapbox / mapbox/mapbox-maps-flutter

getStyleImage & hasStyleImage methods not responding

Open
#411 7 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Dart
Stars
380
Forks
204
PR merge metrics
No merged PRs in 30d

Description

### **Environment**
Flutter version: 3.13.0
mapbox_maps_flutter version: 1.0.0-beta.3
Device: Samsung Galaxy A53
OS: Android 14
### **Steps to Reproduce**
Call `getStyleImage(imageId)` or `hasStyleImage(imageId)` methods from StyleManager

### **Expected Behavior**
These two methods should return either a `Future` or a `Future`

### **Actual Behavior**
`getStyleImage(imageId)` actually throw the following exception:
`E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): Failed to handle message
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): java.lang.IllegalStateException: Reply already submitted
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at io.flutter.embedding.engine.dart.DartMessenger$Reply.reply(DartMessenger.java:435)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at io.flutter.plugin.common.BasicMessageChannel$IncomingMessageHandler$1.reply(BasicMessageChannel.java:224)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at com.mapbox.maps.pigeons.FLTMapInterfaces$StyleManager$33.success(FLTMapInterfaces.java:10964)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at com.mapbox.maps.pigeons.FLTMapInterfaces$StyleManager$33.success(FLTMapInterfaces.java:10961)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at com.mapbox.maps.mapbox_maps.StyleController.getStyleImage(StyleController.kt:487)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at com.mapbox.maps.pigeons.FLTMapInterfaces$StyleManager$-CC.lambda$setUp$42(FLTMapInterfaces.java:10973)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at com.mapbox.maps.pigeons.FLTMapInterfaces$StyleManager$$ExternalSyntheticLambda30.onMessage(Unknown Source:2)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at io.flutter.plugin.common.BasicMessageChannel$IncomingMessageHandler.onMessage(BasicMessageChannel.java:219)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:295)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:322)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at android.os.Handler.handleCallback(Handler.java:958)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at android.os.Handler.dispatchMessage(Handler.java:99)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at android.os.Looper.loopOnce(Looper.java:230)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at android.os.Looper.loop(Looper.java:319)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at android.app.ActivityThread.main(ActivityThread.java:8893)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at java.lang.reflect.Method.invoke(Native Method)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:608)
E/BasicMessageChannel#dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.getStyleImage(13885): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
E/DartMessenger(13885): Uncaught exception in binary message listener`

`hasStyleImage(imageId)` returns nothing

Thanks.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the Android implementation in StyleController.kt around line 487 and trace the StyleManager getStyleImage and hasStyleImage entry points through FLTMapInterfaces.java. Reproduce the calls on Android and inspect how each asynchronous reply is returned. Done means getStyleImage returns one Future without a duplicate reply and hasStyleImage returns the expected Future.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, dart, flutter
Domain
mobile
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.