TooTallNate / Java-WebSocket

A barebones WebSocket client and server implementation written in 100% Java.
http://tootallnate.github.io/Java-WebSocket
MIT License
10.36k stars 2.57k forks source link

With root right, "new Draft_6455()" will report error "java.lang.ArrayIndexOutOfBoundsException" #1322

Closed hytTony closed 1 year ago

hytTony commented 1 year ago

public JWebSocketClient(URI serverUri, Map<String, String> httpHeaders){ super(serverUri, new Draft_6455(), httpHeaders); }

For other user (shell, normal), it works correct, Just when run it with root.

java.lang.ArrayIndexOutOfBoundsException: length=0; index=0 at android.os.Environment.getExternalStorageState(Environment.java:896) at ch.qos.logback.core.android.AndroidContextUtil.getMountedExternalStorageDirectoryPath(Unknown Source:0) at ch.qos.logback.core.android.AndroidContextUtil.setupProperties(Unknown Source:14) at ch.qos.logback.classic.util.ContextInitializer.autoConfig(Unknown Source:12) at org.slf4j.impl.StaticLoggerBinder.init(Unknown Source:7) at org.slf4j.impl.StaticLoggerBinder.(Unknown Source:16) at org.slf4j.impl.StaticLoggerBinder.getSingleton(Unknown Source:0) at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150) at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124) at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:412) at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:357) at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:383) at org.java_websocket.drafts.Draft_6455.(Draft_6455.java:113) at org.java_websocket.drafts.Draft_6455.(Draft_6455.java:200) at org.java_websocket.drafts.Draft_6455.(Draft_6455.java:188) at org.java_websocket.drafts.Draft_6455.(Draft_6455.java:168) at com.xhuwei.firstview.JWebSocketClient.(JWebSocketClient.java:51) at com.xhuwei.firstview.Server$5.(Server.java:1122) at com.xhuwei.firstview.Server.InitReceiveRingSocket(Server.java:1122) at com.xhuwei.firstview.Server.createServerSocket(Server.java:783) at com.xhuwei.firstview.Server.main(Server.java:2092) at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:340)

PhilipRoman commented 1 year ago

What version of this library are you using?

hytTony commented 1 year ago

implementation 'org.java-websocket:Java-WebSocket:1.5.2'

PhilipRoman commented 1 year ago

This is an issue in logback-android, nothing we can do about it. See https://github.com/tony19/logback-android/issues/315