Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

在core event的online方法中使用bot.getGroupList()返回值为null #240

Closed
cold233 opened this issue Sep 3, 2024 · 3 comments
Closed
Labels
bug Something isn't working

Comments

@cold233
Copy link

cold233 commented Sep 3, 2024

详细描述
环境:Ubuntu 24.04 LTS (GNU/Linux 6.8.0-41-generic x86_64)

Java 版本:
openjdk 21.0.4 2024-07-16
OpenJDK Runtime Environment (build 21.0.4+7-Ubuntu-1ubuntu224.04)
OpenJDK 64-Bit Server VM (build 21.0.4+7-Ubuntu-1ubuntu224.04, mixed mode, sharing)

OneBot协议实现:
Lagrange.OneBot

Shiro版本:2.3.1

为了在机器人上线时更新机器人所在的所有群的信息并获取机器人自身角色,在Core Event中重写了online(Bot bot)方法,并在其中使用了如下代码获取群列表:
List<GroupInfoResp> groupInfos = bot.getGroupList().getData();
编译运行后日志显示该行代码中getGroupList()返回了null

日志如下:
`2024-09-03T10:11:12.259+08:00 ERROR 59184 --- [cTaskExecutor-1] .w.s.a.s.StandardWebSocketHandlerAdapter : Closing session due to exception for StandardWebSocketSession[id=25a23ce8-ad54-05a6-b72c-20dc16edd936, uri=null]

java.lang.NullPointerException: Cannot invoke "com.mikuac.shiro.dto.action.common.ActionList.getData()" because the return value of "com.mikuac.shiro.core.Bot.getGroupList()" is null
at com.cold.flatfish.Initializer.online(Initializer.java:116) ~[!/:0.5.2-ALPHA]
at com.mikuac.shiro.adapter.WebSocketClientHandler.afterConnectionEstablished(WebSocketClientHandler.java:75) ~[shiro-2.3.1.jar!/:na]
at com.mikuac.shiro.adapter.WebSocketClientHandler.handleTextMessage(WebSocketClientHandler.java:103) ~[shiro-2.3.1.jar!/:na]
at org.springframework.web.socket.handler.AbstractWebSocketHandler.handleMessage(AbstractWebSocketHandler.java:43) ~[spring-websocket-6.1.11.jar!/:6.1.11]
at org.springframework.web.socket.handler.WebSocketHandlerDecorator.handleMessage(WebSocketHandlerDecorator.java:75) ~[spring-websocket-6.1.11.jar!/:6.1.11]
at org.springframework.web.socket.handler.LoggingWebSocketHandlerDecorator.handleMessage(LoggingWebSocketHandlerDecorator.java:56) ~[spring-websocket-6.1.11.jar!/:6.1.11]
at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter.handleTextMessage(StandardWebSocketHandlerAdapter.java:113) ~[spring-websocket-6.1.11.jar!/:6.1.11]
at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter$3.onMessage(StandardWebSocketHandlerAdapter.java:84) ~[spring-websocket-6.1.11.jar!/:6.1.11]
at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter$3.onMessage(StandardWebSocketHandlerAdapter.java:81) ~[spring-websocket-6.1.11.jar!/:6.1.11]
at org.apache.tomcat.websocket.WsFrameBase.sendMessageText(WsFrameBase.java:390) ~[tomcat-embed-websocket-10.1.26.jar!/:na]
at org.apache.tomcat.websocket.WsFrameBase.processDataText(WsFrameBase.java:484) ~[tomcat-embed-websocket-10.1.26.jar!/:na]
at org.apache.tomcat.websocket.WsFrameBase.processData(WsFrameBase.java:284) ~[tomcat-embed-websocket-10.1.26.jar!/:na]
at org.apache.tomcat.websocket.WsFrameBase.processInputBuffer(WsFrameBase.java:130) ~[tomcat-embed-websocket-10.1.26.jar!/:na]
at org.apache.tomcat.websocket.WsFrameClient.processSocketRead(WsFrameClient.java:95) ~[tomcat-embed-websocket-10.1.26.jar!/:na]
at org.apache.tomcat.websocket.WsFrameClient.startInputProcessing(WsFrameClient.java:52) ~[tomcat-embed-websocket-10.1.26.jar!/:na]
at org.apache.tomcat.websocket.WsWebSocketContainer.connectToServerRecursive(WsWebSocketContainer.java:466) ~[tomcat-embed-websocket-10.1.26.jar!/:na]
at org.apache.tomcat.websocket.WsWebSocketContainer.connectToServer(WsWebSocketContainer.java:179) ~[tomcat-embed-websocket-10.1.26.jar!/:na]
at org.springframework.web.socket.client.standard.StandardWebSocketClient.lambda$executeInternal$0(StandardWebSocketClient.java:175) ~[spring-websocket-6.1.11.jar!/:6.1.11]
at org.springframework.util.concurrent.FutureUtils.lambda$toSupplier$0(FutureUtils.java:74) ~[spring-core-6.1.11.jar!/:6.1.11]
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]

2024-09-03T10:11:12.262+08:00 DEBUG 59184 --- [cTaskExecutor-1] o.s.w.s.adapter.NativeWebSocketSession : Closing StandardWebSocketSession[id=25a23ce8-ad54-05a6-b72c-20dc16edd936, uri=null]`

使用wscat发送get_group_list请求结果如下(隐藏了QQ号及群号):
`wscat -c ws://127.0.0.1:8081/websocket
Connected (press CTRL+C to quit)
< {"sub_type":"connect","meta_event_type":"lifecycle","time":1725329292,"self_id":,"post_type":"meta_event"}
< {"interval":50000,"status":{"app_initialized":true,"app_enabled":true,"app_good":true,"online":true,"good":true},"meta_event_type":"heartbeat","time":1725329292,"self_id":
,"post_type":"meta_event"}

{"action": "get_group_list","params": {}}
< {"status":"ok","retcode":0,"data":[{"group_id":,"group_name":"\u3010\u5927\u660E\u4E1C\u6D0B\u8230\u961F\u63D0\u7763\u5E9C\u3011","member_count":747,"max_member_count":1000},{"group_id":,"group_name":"bot","member_count":8,"max_member_count":200},{"group_id":,"group_name":"\u3010\u5927\u590F\u6D77\u5916\u5F00\u62D3\u56E2\u3011","member_count":137,"max_member_count":200},{"group_id":,"group_name":"MC\u670D\u52A1\u5668\u603B\u53F0","member_count":7,"max_member_count":200},{"group_id":,"group_name":"\u67D0\u6251\u8857\u7537\u7684\u6251\u8857\u670D\u52A1\u5668\u7684\u6251\u8857\u7FA4","member_count":14,"max_member_count":200},{"group_id":,"group_name":"167\u72AF\u89C4\u5C31\u8E22\u5C0F\u5B87\u5B99\uFF08\u7FA4\u89C4\u8BF7\u770B\u516C\u544A\u7F6E\u9876","member_count":1485,"max_member_count":2000},{"group_id":,"group_name":"167\u53F7\u7EFF\u6D32\uFF08\u590D\u6D3B\u6210\u529F\uFF01\uFF09","member_count":199,"max_member_count":200}],"echo":null}
< {"interval":50000,"status":{"app_initialized":true,"app_enabled":true,"app_good":true,"online":true,"good":true},"meta_event_type":"heartbeat","time":1725329342,"self_id":
,"post_type":"meta_event"}`

预期结果
返回群列表

当前结果
返回了null

在最新的RELEASE版本中能否复现?

复现方法
在online(Bot bot)中使用bot.getGroupList()

@cold233 cold233 added the bug Something isn't working label Sep 3, 2024
@MisakaTAT
Copy link
Owner

duplicate #222

@MisakaTAT MisakaTAT reopened this Sep 5, 2024
@MisakaTAT
Copy link
Owner

这应该是一个需要被修复的问题,需要等有时间看看。

@MisakaTAT
Copy link
Owner

fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants