一次serialVersionUID引发的血案

2023-10-27

背景:

去掉了两个bean类中重写的equals方法(该equals方法只判断id,相同则true,否则false)

看了看没有什么地方用到了这个equals,就直接去掉了

 

测试环境出现异常:

org.springframework.core.convert.ConversionFailedException: 
Failed to convert from type [byte[]] to type [java.lang.Object] for value '{-84, -19, 0, 5, 115, 114, 0, 61, 111, 114, 103, 46, 115, 112, 114, 105, 110, 103, 102, 114, 97, 109, 101, 119, 111, 114, 107, 46, 115, 101, 99, 117, 114, 105, 116, 121, 46, 99, 111, 114, 101, 46, 99, 111, 110, 116, 101, 120, 116, 46, 83, 101, 99, 117, 114, 105, 116, 121, 67, 111, 110, 116, 101, 120, 116, 73, 109, 112, 108, 0, 0, 0, 0, 0, 0, 1, -112, 2, 0, 1, 76, 0, 14, 97, 117, 116, 104, 101, 110, 116, 105, 99, 97, 116, 105, 111, 110, 116, 0, 50, 76, 111, 114, 103, 47, 115, 112, 114, 105, 110, 103, 102, 114, 97, 109, 101, 119, 111, 114, 107, 47, 115, 101, 99, 117, 114, 105, 116, 121, 47, 99, 111, 114, 101, 47, 65, 117, 116, 104, 101, 110, 116, 105, 99, 97, 116, 105, 111, 110, 59, 120, 112, 115, 114, 0, 70, 111, 114, 103, 46, 115, 112, 114, 105, 110, 103, 102, 114, 97, 109, 101, 119, 111, 114, 107, 46, 115, 101, 99, 117, 114, 105, 116, 121, 46, 99, 97, 115, 46, 97, 117, 116, 104, 101, 110, 116, 105, 99, 97, 116, 105, 111, 110, 46, 67, 97, 115, 65, 117, 116, 104, 101, 110, 116, 105, 99, 97, 116, 105, 111, 110, 84, 111, 107, 101, 110, 0, 0, 0, 0, 0, 0, 1, -112, 2, 0, 5, 73, 0, 7, 107, 101, 121, 72, 97, 115, 104, 76, 0, 9, 97, 115, 115, 101, 114, 116, 105, 111, 110, 116, 0, 43, 76, 111, 114, 103, 47, 106, 97, 115, 105, 103, 47, 99, 97, 115, 47, 99, 108, 105, 101, 110, 116, 47, 118, 97, 108, 105, 100, 97, 116, 105, 111, 110, 47, 65, 115, 115, 101, 114, 116, 105, 111, 110, 59, 76, 0, 11, 99, 114, 101, 100, 101, 110, 116, 105, 97, 108, 115, 116, 0, 18, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 79, 98, 106, 101, 99, 116, 59, 76, 0, 9, 112, 114, 105, 110, 99, 105, 0, 0, 0, 0, 0, 0, 1, -112, 2, 0, 1, 76, 0, 4, 114, 111, 108, 101, 116, 0, 18, 76, 106, 97, 118, 97, 47, 108, 97, 110, 103, 47, 83, 116, 114, 105, 110, 103, 59, 120, 112, 116, 0, 9, 82, 79, 76, 69, 95, 85, 83, 69, 82, 115, 113, 0, 126, 0, 16, 116, 0, 10, 82, 79, 76, 69, 95, 83, 84, 65, 70, 70, 115, 113, 0, 126, 0, 16, 116, 0, 10, 82, 79, 76, 69, 95, 65, 68, 77, 73, 78, 120, 113, 0, 126, 0, 15, 115, 114, 0, 72, 111, 114, 103, 46, 115, 112, 114, 105, 110, 103, 102, 114, 97, 109, 101, 119, 111, 114, 107, 46, 115, 101, 99, 117, 114, 105, 116, 121, 46, 119, 101, 98, 46, 97, 117, 116, 104, 101, 110, 116, 105, 99, 97, 116, 105, 111, 110, 46, 87, 101, 98, 65, 117, 116, 104, 101, 110, 116, 105, 99, 97, 116, 105, 111, 110, 68, 101, 116, 97, 105, 108, 115, 0, 0, 0, 0, 0, 0, 1, -112, 2, 0, 2, 76, 0, 13, 114, 101, 109, 111, 116, 101, 65, 100, 100, 114, 101, 115, 115, 113, 0, 126, 0, 17, 76, 0, 9, 115, 101, 115, 115, 105, 111, 110, 73, 100, 113, 0, 126, 0, 17, 120, 112, 116, 0, 11, 49, 48, 46, 50, 46, 50, 49, 46, 49, 55, 57, 116, 0, 36, 97, 101, 51, 101, 54, 51, 102, 54, 45, 101, 102, 98, 99, 45, 52, 50, 97, 100, 45, 98, 54, 98, 53, 45, 99, 98, 98, 100, 101, 51, 97, 98, 98, 50, 101, 97, 58, 26, -22, -35, 115, 114, 0, 45, 111, 114, 103, 46, 106, 97, 115, 105, 103, 46, 99, 97, 115, 46, 99, 108, 105, 101, 110, 116, 46, 118, 97, 108, 105, 100, 97, 116, 105, 111, 110, 46, 65, 115, 115, 101, 114, 116, 105, 111, 110, 73, 109, 112, 108, -108, 50, -72, 39, -31, -120, 90, -53, 2, 0, 5, 76, 0, 10, 97, 116, 116, 114, 105, 98, 117, 116, 101, 115, 116, 0, 15, 76, 106, 97, 118, 97, 47, 117, 116, 105, 108, 47, 77, 97, 112, 59, 76, 0, 18, 97, 117, 116, 104, 101, 110, 116, 105, 99, 97, 116, 105, 111, 110, 68, 97, 116, 101, 116, 0, 16, 76, 106, 97, 118, 97, 47, 117, 116, 105, 108, 47, 68, 97, 116, 101, 59, 76, 0, 9, 112, 114, 105, 110, 99, 105, 112, 97, 108, 116, 0, 56, 76, 111, 114, 103, 47, 106, 97, 115, 105, 103, 47, 99, 97, 115, 47, 99, 108, 105, 101, 110, 116, 47, 97, 117, 116, 104,12, 119, 8, 0, 0, 0, 16, 0, 0, 0, 10, 116, 0, 4, 109, 97, 105, 108, 116, 0, 14, 119, 122, 120, 105, 97, 64, 116, 114, 105, 112, 46, 99, 111, 109, 116, 0, 4, 99, 105, 116, 121, 116, 0, 6, -28, -72, -118, -26, -75, -73, 116, 0, 11, 100, 105, 115, 112, 108, 97, 121, 78, 97, 109, 101, 116, 0, 25, 66, 114, 97, 117, 109, 32, 88, 105, 97, 32, -17, -68, -120, -27, -92, -113, -26, -106, -121, -26, -77, -67, -17, -68, -119, 116, 0, 4, 110, 97, 109, 101, 116, 0, 5, 119, 122, 120, 105, 97, 116, 0, 17, 100, 105, 115, 116, 105, 110, 103, 117, 105, 115, 104, 101, 100, 78, 97, 109, 101, 116, 0, 85, 67, 78, 61, 120, 119, 122, -27, -92, -113, -26, -106, -121, -26, -77, -67, 44, 79, 85, 61, 85, 115, 101, 114, 44, 79, 85, 61, -25, -77, -69, -25, -69, -97, -25, -96, -108, -27, -113, -111, -23, -125, -88, 44, 79, 85, 61, -28, -72, -118, -26, -75, -73, 44, 68, 67, 61, 99, 110, 49, 44, 68, 67, 61, 103, 108, 111, 98, 97, 108, 44, 68, 67, 61, 99, 116, 114, 105, 112, 44, 68, 67, 61, 99, 111, 109, 116, 0, 7, 99, 111, 109, 112, 97, 110, 121, 116, 0, 5, 70, 85, 45, 73, 84, 11, 98, 97, 108, 44, 68, 67, 61, 99, 116, 114, 105, 112, 44, 68, 67, 61, 99, 111, 109, 44, 32, 67, 78, 61, 83, 116, 111, 99, 107, 115, 44, 79, 85, 61, -24, -127, -116, -25, -70, -89, -25, -69, -124, 44, 79, 85, 61, -28, -70, -70, -28, -70, -117, -25, -69, -124, 44, 79, 85, 61, 85, 115, 101, 114, 71, 114, 111, 117, 112, 44, 68, 67, 61, 99, 110, 49, 44, 68, 67, 61, 103, 108, 111, 98, 97, 108, 44, 68, 67, 61, 99, 116, 11, 97, 110, 103, 46, 66, 111, 111, 108, 101, 97, 110, -51, 32, 114, -128, -43, -100, -6, -18, 2, 0, 1, 90, 0, 5, 118, 97, 108, 117, 101, 120, 112, 1, 113, 0, 126, 0, 83, 113, 0, 126, 0, 83, 113, 0, 126, 0, 36, 116, 0, 12, 120, 119, 122, -27, -92, -113, -26, -106, -121, -26, -77, -67, 112, 116, 0, 9, 101, 115, 112, 97, 97, 115, 33, 33, 33, 116, 0, 5, 119, 122, 120, 105, 97, 113, 0, 126, 0, 68}'; 
nested exception is org.springframework.core.serializer.support.SerializationFailedException: Failed to deserialize payload. 
Is the byte array a result of corresponding serialization for DefaultDeserializer?; 
nested exception is java.io.InvalidClassException: com.xxx.xxx.xxx.xxx.User; 
local class incompatible: stream classdesc serialVersionUID = -736xxxxxx3867318, local class serialVersionUID = 109xxxxxxx681261

 

检查:

发现两个类均 implements Serializable

但是没有设置 serialVersionUID

怀疑是序列化反序列化出现异常

补上serialVersionUID重新发布

 

发到测试后,页面没有挂掉,但是仍然存在大量的类似error,通过其他人的账号登陆,再次出现页面挂掉的场景

 

继续检查:

发现报错中只是在报User类的异常,另一个bean似乎被忽略了

通过User类联想到session共享

session信息记录了下了,与User重新序列化可能存在冲突

于是将两个相关session表的数据全部清理

异常结束

 

如何平滑上线?

没有找到完全平滑上线的方法

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一次serialVersionUID引发的血案 的相关文章

随机推荐

  • 2013年11月26日星期二(t3dlib1剩余部分---2)

    接下来 继续进行T3DLIB1剩余部分 倒着进行 先进行bob碰撞检测 int DDraw BOB Collision BOBS BOB PTR bob1 BOB PTR bob2 if bob1 bob2 return 0 int wid
  • 【Unity3D游戏开发学习笔记】(七)上帝之眼—第三人称摄像机的简单实现(跟随视角,自由视角)

    陆陆续续又开始更新自己的博客 看来自我驱动能力还是不够啊 废话不多说了 之前的内容大概说了一下Unity的一些基础知识 接下来我们将要对一些基本功能做一些学习 大家都知道 一个游戏 少不了摄像机的参与 这不是废话么 没摄像机怎么玩 画面都不
  • linux脚本的注释符号是什么,Shell中的变量和符号

    Shell中的变量 变量 shell 变量 可以保存如路径名 文件名或者一个数字 变量名称可以由字母 数字和下划线组成 但是不能以数字开头 如果变量名是 2name 则是错误的 在Bash中 变量的默认类型都是字符串型 如果要进行数值运算
  • log4j2史诗级漏洞攻击重现

    早上来到公司 就听到安全团队的同事说log4j2有个高危漏洞 起初并不是很在意 想着一个日志框架能有啥高危漏洞嘛 但是仔细一看 居然是远程执行命令的漏洞 上次看到这个名字还是struts2 修复方法也很简单 升级log4j依赖版本到2 15
  • vue【element ui】el-date-picker 日期选择器控件 限制可选的开始时间和结束时间

    项目场景 总结一下日期控件实现开始日期 结束日期的选择范围限制 以便更符合实际情况 需求 1 开始时间和结束时间都不能选当前日期之后的时间 当前时间 2022年5月16日 2 先选开始时间的话 结束时间是在开始时间的后一周内选择 也就是不能
  • 实习中了解的互联网数仓

    大数据平台 之前在两家互联网企业都做过数仓相关方面的实习岗位 一家中大厂 一家大厂 在这里简单分享一些数仓在企业中实际的运作 方便一些对数仓有兴趣但尚未在企业中数仓岗位实践过的同学了解 数据开发平台 一般来说 中型或大型企业都会有自己的大数
  • 【Shell编程】条件判断

    系列文章 Shell编程 Shell中的正则表达式 Shell编程 字符截取命令cut printf命令 Shell编程 字符截取命令awk sed命令 目录 系列文章 按照文件类型进行判断 实例 测试上一条命令是否执行成功 编写一个she
  • 建立图(邻接矩阵、邻近表任选其一)的存储结构、实现图的深度优先遍历和广度优先遍历。

    include
  • Qt connect 中, SIGNAL,SLOT 与 lambda 对比

    简单的信息就不说了 主要谈谈区别 首先结论是 推荐用 lambda 格式绑定信号槽 个人看法 有其他建议欢迎讨论 具体原因如下 SIGNAL SLOT 是 Qt4 时期的方法 lambda 是 Qt5 引入的 新的总比老的好 SIGNAL
  • Java之spring新手教程(包教包会)

    Java Spring 一 之IoC以及bean的生命周期 文章目录 Java Spring 一 之IoC以及bean的生命周期 一 什么是Spring 二 Spring的核心 三 什么是耦合 四 spring项目的搭建 五 配置文件 六
  • js逆向 极验滑块(记录学习 3.17)

    目录 一 分析整体流程 1 点击按钮之前 2 点击按钮之后 3 滑动之后 二 还原底图 三 跟W值 aa 四 部分代码 目标网站 aHR0cHM6Ly93d3cuZ2VldGVzdC5jb20vZGVtby9zbGlkZS1mbG9hdC5
  • 服务启动后停止 mysql5.7不能启动(mysqld --initialize 命令)不能解决?看这里!!!

    mysqld initialize 命令创建了date文件之后还是不能启动mysql的解决办法 win10 mysql5 7 今天因为测试的原因 关掉了本机的mysql数据库服务 然后启动报错 然后就开始了为期两小时的寻找之路 第一种方法
  • [极客大挑战 2019]HardSQL

    我们用万能密码试了一下发现不可行 正常注入发现会过滤and 空格 但没过滤or 可以结合报错注入来做 extractvalue 1 concat 07xe 执行语句 updatexml 1 concat 07xe 执行语句 1 这里面我们用
  • 学习笔记-二分法查找

    二分法查找 要求必须是一个有序数组 才可以进行二分法查找 二分法运用到了递归回溯的思想 思路 1 确定中间数的坐标 mid left right 2 2 如果中间数大于查询的数 说明查询的数在左边 向左递归继续查询 此时left不变 rig
  • Vijava 学习笔记之ResourcePool(基础配置信息)

    Vijava 代码 实体类 package com vmware pojo import java util ArrayList import java util Calendar import java util Date 虚拟机信息 a
  • js引入mathjax时注意事项

    首先 保证网络畅通 必须网络好 不然js响应不回来 需要先在head标签中引入js
  • (阿里云)使用WordPress搭建一个专属自己的博客

    一 创建资源 在页面左侧 单击 云产品资源 下拉列表 查看本次实验所需资源 单击屏幕右侧 创建资源 免费创建当前实验所需云产品资源 说明 资源创建过程需要1 3分钟 完成实验资源的创建后 您可以在 云产品资源 列表查看已创建的资源信息 例如
  • 浅析ARM公司在物联网领域的战略布局

    原文地址 http blog csdn net yefanqiu article details 17006331 随着ARM芯片的出货量越来越多 自信满满的ARM公司统一软硬件平台的战略和雄心壮志越来越凸显 最初ARM公司仅是出售自己的知
  • 解决VMware出现“磁盘实用工具不可用”

    可能有人想用vmware的磁盘映射 但是磁盘映射按钮是灰色的 按钮上面还有一行字 磁盘实用工具不可用 我也遇到过这个问题 上网查了一下 结果网上愣是没有一篇博客说明了这个问题 我想 难道这些人从来没遇到过吗 后来 经过自己的实验 我发现了解
  • 一次serialVersionUID引发的血案

    背景 去掉了两个bean类中重写的equals方法 该equals方法只判断id 相同则true 否则false 看了看没有什么地方用到了这个equals 就直接去掉了 测试环境出现异常 org springframework core c