一毛
一毛
### 运行环境 ### - [x] 设备型号:`Pixel 3 XL` - [x] 设备系统版本:`Android 9` - [x] Gradle 版本:`7.0.2` - [x] AgentWeb 版本:`v5.0.0-alpha.1-androidx` ### 具体问题描述 ### 在该机型下出现Crash,应该源码中manifest文件中activity的name定义成fragment的问题,出现类型装换异常 ``` ``` ### 异常日志(堆栈) ### ```...
源码中ByeBurgerBehavior类的mAnimateHelper变量没有赋值,导致调用show方法空指针异常,ByeBurgerBehavior.from(mFab).show(),这个方法根本没办法使用,一调用就崩溃
## Issue description 小米登录在移动端是有区分的,Android和ios的clientId和clientSecret是不一样的,代码中没有作区分
### 运行环境 ### - [x] 设备型号:如:`Xiaom 10` - [x] 设备系统版本:如 `Android 11` - [x] Gradle 版本:如 `7.0.2` - [x] QMUI Android 版本:`2.0.1` ### 具体问题描述 ### QMUIFragment的onCreateView的只在第一次创建的时候调用,如果startFragment打开新的fragment在返回上一个fragment,不会再走onCreateView,在这个前提下,如果在onDestroyView中做一些销毁操作,由于onDestroyView和onCreateView并不是成对出现,就会导致空指针,比如在onCreateView中初始化ViewBinding,在onDestroyView中viewBinding=null,但是如果不这样做又会导致严重的内存泄露,GC log一直打印 #### 问题截图 ####...
**描述 bug** 项目中使用delete_time作为逻辑删除字段,默认为null值,经测试null值建立的唯一索引是不生效的,如下面的建表语句,仍然可以插入相同username的数据 ``` CREATE TABLE lin_user ( id int(10) unsigned NOT NULL AUTO_INCREMENT, username varchar(24) NOT NULL COMMENT '用户名,唯一', nickname varchar(24) DEFAULT NULL COMMENT '用户昵称', avatar varchar(500) DEFAULT NULL...
**描述 bug** 两个异常和两个Code码含义写反了 AuthorizationException和AuthenticationException UN_AUTHORIZATION(10000, "Authorization Failed", "认证失败"), UN_AUTHENTICATION(10010, "Authentication Failed", "授权失败"), 认证实现类 AuthorizeVerifyResolverImpl和AuthorizeVerifyResolver应该是AuthenticateVerifyResolverImpl和AuthenticateVerifyResolver
### putUser 源码里实现是先查询再判断,这里应该是有问题的,如果多个终端同时登录同一个账号,可能会存在丢失Channel导致资源泄露的问题。多个线程同时进到putUser,onlineSessions.get(user_id)结果都为空,就会执行到else里onlineSessions.put(user_id, newSession);这样就后一个就会把前一个Channel覆盖掉,导致Channel泄露,前一个Channel资源不能及时得到释放,也就不会kick掉。 - 修改方案:直接先使用ConcurrentHashMap的put方法添加user_id和Channel的映射,put的结果会返回old值,因为ConcurrentHashMap是线程安全的,而且put始终会返回old值,再判断old值,如果old值不为空,直接走kick流程。 ### removeUser 这里完全没有必要上锁,直接加synchronized也太暴力了,把所有用户的remove都阻塞了。 - 修改方案:也是直接利用ConcurrentHashMap先remove,remove结果为true表示移除成功,false表示移除过了,通过remove返回结果来处理其他业务。 贴一段我这块的实现代码吧,可能也存在问题,一起来交流下 ``` // 绑定用户和Channel的关系 public void bindSession(Session session, Channel newChannel) { final Channel oldChannel = userIdChannelMap.put(session.getUserId(), newChannel); // 如果oldChannel不为空,表明操作的是同一个userId,如果是同一个userId表示重复登录了...
Module: camellia-delay-queue Version: v1.2.16 Content: 请教一下作者,CamelliaDelayQueueServer源码中发布有消息ready的通知是先放到eventMap中,再使用一个singleThread轮询去调用redis的publish,为什么不直接publish,如果是为了减少redis远程调用耗时,在将消息放入eventMap之前也有redis的操作。 
redis部署cluster模式,配置notify-keyspace-events Ex,连接predixy代理,有的key过期能收到通知,有的key过期收不到通知
版本:1.6.1 手机型号:Pixel 5、小米12SU、小米13、三星,都是Android 13的机型 现象描述:在Fragment onViewCreated中使用请求权限出现崩溃 崩溃日志: ``` Process Name: 'com.example.demo' Thread Name: 'main' Back traces starts. java.lang.IllegalStateException: FragmentManager is already executing transactions at androidx.fragment.app.FragmentManager.ensureExecReady(FragmentManager.java:80) at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:0) at androidx.fragment.app.FragmentManager.handleOnBackPressed(FragmentManager.java:1) at...