-
-
Notifications
You must be signed in to change notification settings - Fork 101
Closed
Labels
Description
Getting TCP Client Receives a Non-Integer
I'm getting a significant in uptick of ANRs relating to getTcpClient(cid) where cid is not an integer:
java.lang.IllegalArgumentException:
at com.asterinet.react.tcpsocket.TcpSocketModule.getTcpClient (TcpSocketModule.java:251)
at com.asterinet.react.tcpsocket.TcpSocketModule.access$700 (TcpSocketModule.java:28)
at com.asterinet.react.tcpsocket.TcpSocketModule$2.run (TcpSocketModule.java:106)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
at java.lang.Thread.run (Thread.java:923)
Current behavior
It appears that the cid passed to getTcpClient() in TcpSocketModule.java when calling end() is not an integer. The JS side internally manages the _id and therefore at some point the _id is a non-integer triggering an exception when this package passes the _id to the end() or destroy() method as a cid. Seems to be occuring since upgrading from 4.x to 5.x
Expected behavior
Only way for that to happen is for the JS to lose a reference or reset the internal _id reference and pass it over the bridge. The bridge should protect against such errant calls as a noop to avoid the crash.
Relevant information
| OS | Android 10-12 |
| react-native | 0.66.4 |
| react-native-tcp-socket | 5.5.0 |