闯祸了,我用了一个‘<>’操作符引发的线上Bug

微信公众号:Zhongger
我是Zhongger,一个在互联网行业摸鱼写代码的打工人!
关注我,了解更多你不知道的【Java后端】打工技巧、职场经验、生活感悟等

一、发现问题

昨天下午四点多的时候,一位同事找到我说,我所负责的系统中修改机器状态的功能不可用了。我当时是感到非常开心的,因为摸了这么多天的鱼,终于有活干了!
于是我在正式环境发了一个请求给出问题的接口,谷歌浏览器按F12,发现接口报错了,Http的返回码是500,很显然这是服务端报错。然后我查看报错的信息,发现:

在这里插入图片描述

原来报错的原因是:

'<>' operator is not allowed for source level below 1.7

出错的代码是:

List<Server> serverList = new ArrayList<>;

很显然这是与JDK版本的问题有关。

二、解决问题

由于这行代码是我为了完成公司安全组的需求——记录所有写操作日志而写出来的,我是想把被修改了状态的Server的信息保存到一个List里面,然后将List记录到日志里。当时在本地写完并测试通过后,是没有问题的,所以才发版上线。毕竟我本地的编译环境是JDK1.8,所以显然没有问题。但是到了线上,由于项目太老,其JDK低于1.7,就不支持在JSP页面里面使用’<>'了。

由于我担心修改了线上的JDK版本导致其他一些版本不兼容的Bug出现,就干脆把这行代码删掉了,换成了StringBuffer类去做Server的信息记录。测试通过后再发版上线,就把Bug解决了,日志记录也是正常且美观。

三、启发

这个Bug虽然没有造成重大损失,但它给了我一些启发。在维护一个老项目的时候要考虑到老项目使用技术的版本与当前主流技术版本的兼容问题,对于Java开发者而言,特别是要弄清老项目的JDK版本,这对于以后写出少Bug的代码事半功倍。

我是Zhongger,一个在互联网行业摸鱼写代码的打工人,卑微求个【关注】和【在看】,你们的支持是我创作的最大动力,我们下期见~
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值