武汉的开发者们注意啦!AI技术战略、框架以及最佳实战尽在Azure OpenAI Day 了解详情
写点什么

Java 近期新闻:外部函数和内存 API、OpenJDK JEP、Apache Tomcat CVE

  • 2023-10-31
    北京
  • 本文字数:4537 字

    阅读完需:约 15 分钟

大小:2.45M时长:14:14
Java近期新闻:外部函数和内存API、OpenJDK JEP、Apache Tomcat CVE

OpenJDK

 

在结束了评审之后,JEP 454(外部函数和内存 API)从 Proposed to Target进入到了 Targeted(JDK 22)状态。该 JEP 建议在经历了两轮孵化和三轮预览之后确定这个特性:在 JDK 17 中交付的 JEP 412(外部函数和内存API(孵化器))、在 JDK 18 中交付的 JEP 419(外部函数和内存API(第二轮孵化器))、在 JDK 19 中交付的 JEP 424(外部函数和内存API(预览))、在 JDK 20 中交付的 JEP 434(外部函数和内存API(第二次预览)),以及在 JDK 21 GA 版本中交付的 JEP 442(外部函数和内存API(第三次预览))。自上一个版本以来的改进包括:新的Enable-Native-Access manifest 属性,允许可执行 JAR 包中的代码调用受限制的方法而无需使用——Enable-Native-Access标志;允许客户端通过编程的方式构建 C 函数描述符,避免使用特定于平台的常量;改进了对本地内存中可变长度数组的支持;支持多字符集本地字符串。InfoQ 将会继续跟进报道。

 

JEP 460(Vector API(第七轮孵化器))已从 JEP Draft 8315945 进入到 Candidate 状态。这个 JEP 整合了针对前六轮孵化的增强:在 JDK 21 GA 版本中交付的 JEP 448( Vector API (第六轮孵化器))在 JDK 20 中交付的 JEP 438(Vector API (第五轮孵化器))、在 JDK 19 中交付的 JEP 426(Vector API (第四轮孵化器)、在 JDK 18 中交付的 JEP 417(Vector API (第三轮孵化器)、在 JDK 17 中交付的 JEP 414(Vector API (第二轮孵化器))、在 JDK 16 中作为孵化器模块发布的 JEP 338(Vector API (孵化器))。JEP 448 最重要的变化包括对JVM编译器接口 (JVMCI)的增强,以支持 Vector API 的值。

 

JEP Draft 8315398隐式声明类和实例主方法(第二次预览)),即之前的未命名类和实例主方法(预览)灵活主方法和匿名主类(预览)隐式类和增强的主方法(预览),根据前一轮预览,即 JEP 445(未命名类和实例主方法(预览))的反馈进行了增强。这个 JEP 建议“让学生可以在不需要理解太多语言特性的前提下编写他们的第一个程序。”2022 年 9 月,Oracle 的 Java 语言架构师Brian Goetz为此撰写了“Paving the on-ramp”一文。Oracle 技术委员会成员Gavin Bierman发布规范文档初稿,供 Java 社区评审。关于 JEP 445 的更多细节可以在 InfoQ 的其他报道中找到。

 

Oracle 技术委员会成员Gavin Bierman对 JEP 447(super()的前置语句(预览))的规范文档进行了更新。JEP 447 提议允许在构造函数的this()super()之前出现不引用正在创建的实例的语句,并保留构造函数现有的安全性和初始化保证。

 

JDK 22

 

JDK 22早期访问构建版本Build 19提供了针对 Build 18 的更新,其中包括对各种问题的修复。关于该构建版本的更多细节可以在版本说明中找到。

 

对于JDK 22,开发人员可以向Java Bug Database报告错误。

 

Spring Framework

 

Spring Framework 6.1.0 的第一个候选发行版包含了一些问题修复、文档改进、依赖项升级和新特性,例如:为改进对 CRaC 的支持,将`ReactorResourceFactory`类从org.springframework.http.client包移到了 org.springframework.http.client包中;允许为`RestClient`接口实现`ClientRequestObservationConvention`接口;在`ApplicationListenerMethodAdapter`类中公开shouldHandle(ApplicationEvent)方法,用于检查监听器是否对某个事件感兴趣。关于该版本的更多细节可以在版本说明中找到。

 

类似的,Spring Framework 6.0.13 已发布,其中包含了问题修复、文档改进、依赖项升级和新特性,如:改进了针对Spring表达式语言中因重复文本大小计算而导致的溢出的诊断;为注解了`@Configuration` 的 CGLIB 代理类重新引入`FastClass` 类。关于该版本的更多细节可以在版本说明中找到。

 

Spring Data 2023.1.0第一个候选版本(代号为 Vaughn)的特新包括:支持 JDK 21;通过配置 Java`Executor` 接口来使用虚拟线程;支持 Kotlin值类;对 CRaC 优化进行了初步探索;文档迁移到了Antora。关于该版本的更多细节可以在版本说明中找到。

 

Spring Data 各个服务版本(2023.0.5、2022.0.11 和 2021.2.17)的依赖子项目升级包括:Spring Data Commons 3.1.5、3.0.11 和 2.7.17;Spring Data MongoDB 4.1.5、4.0.11 和 3.4.17;Spring Data Elasticsearch 5.1.5、5.0.11 和 4.4.17;Spring Data Neo4j 7.1.7、7.0.11 和 6.3.17。这些版本分别包含在即将发布的 Spring Boot 3.1.5、3.0.12 和 2.7.17 中。

 

Spring Shell 3.2.0第二个里程碑版本提供了实验性的新终端 UI 和其他值得注意的变化,如:新的`ViewCommand`类,为`View`接口提供更高级别的指令;改进了`ButtonView``DialogView`类的实现。关于该版本的更多细节,包括新终端 UI 的演示,可以在版本说明中找到。

 

Micronaut

 

Micronaut 基金会发布Micronaut框架的 4.1.4 版本,包含Micronaut Core 4.1.9和模块更新:Micronaut SerializationMicronaut AWSMicronaut EmailMicronaut DataMicronaut Maven PluginMicronaut SQL LibrariesMicronaut Discovery Client。关于该版本的更多细节可以在版本说明中找到。

 

Quarkus

 

Red Hat发布Quarkus的 3.4.3 版本,主要解决了CVE-2023-44487,一个与 Tomcat HTTP/2 实现有关的问题,容易受到快速重置攻击,进而出现拒绝服务,通常表现为OutOfMemoryError。除此之外,还有文档方面的改进和一些值得注意的修复,如:调用响应式 REST 客户端被挂起(因接收到导致资源无法被释放的无效块响应);被转换为原生构建的 Quarkus 应用程序(使用了 Picocli 和 JAX-RS)消费 SSE 时抛出ClassNotFoundException;允许 MicroProfile`@ClientHeaderParam`注解覆盖“User-Agent”标头参数。关于此版本的更多细节可以在changelog中找到。

 

Micrometer

 

Micrometer Metrics1.12.0-RC1、1.11.5、1.10.12 和 1.9.16 分别带来了依赖项升级和错误修复:在运行 Spring Boot 应用程序时`ObservationRegistry.NOOP`接口的实例为空;调用定义在`Observation` 接口内部类ContextcomputeIfAbsent()方法时抛出`ConcurrentModificationException` 。版本 1.12.0-RC1 中的新特性包括:将 Jakarta Messaging 规范的增强移到新模块micrometer-jakarta9Wavefront集成支持 VMware CSP认证系统。关于这些版本的更多细节可以在1.12.0-RC11.11.51.10.121.9.16的版本说明中找到。

 

类似的,Micrometer Tracing的 1.2.0-RC1、1.1.6 和 1.0.11 版本也包含了依赖项升级和错误修复,如:在 Gradle 构建中应用更广泛的Zipkin Reporter来解决依赖问题;在`ObservationAwareSpanThreadLocalAccessor`类中设置了作用域时可以进行覆盖。1.2.0-RC1 版本的新特性包括:为改进框架的配置,在匹配`TimeAspect`类时将`SpanTagAnnotationHandler`类定义为可选的;io.opentelemetry:opentelemetry-semconv改为io.opentelemetry.semconv:opentelemetry-semconv,因为 OpenTelemetry 已经弃用了旧的语义约定模块,使用了一个具有不同 Maven 坐标的新模块。关于这些版本的更多细节可以在1.2.0-RC11.1.61.0.11的版本说明中找到。

 

Apache 软件基金会

 

Apache Tomcat团队披露了四个影响版本 11.0.0-M1 至 11.0.0-M11、10.1.0-M1 至 10.1.13、9.0.0-M1 至 9.0.80 和 8.5.0 至 8.5.93 的 CVE。

 

  • CVE-2023-42795,在回收各种内部对象(包括请求和响应)时出现的信息暴露问题,即一些错误可能导致 Tomcat 跳过回收过程的某些部分,旧对象在被下一个请求/响应重用之前发生信息泄漏

  • CVE-2023-45648,攻击者在反向代理后面通过发送特制的无效标头促使 Tomcat 将单个请求视为多个请求,从而导致请求夹带

  • 之前提到的CVE-2023-44487

  • CVE-2023-42794Commons FileUpload包的 Tomcat 内部分支包含了一个未发布的针对 Windows 的重构,如果一个 Web 应用程序为上传的文件打开了一个流,但未能关闭流就会出现该漏洞。由于磁盘已满,该文件将永远不会从磁盘上删除,从而可能导致拒绝服务。该 CVE 仅影响 Tomcat 9.0.70 至 9.0.80 和 8.5.85 至 8.5.93。

 

这些受影响版本的用户需要采取以下缓解措施之一:至少升级到 Apache Tomcat 的版本11.0.0-M1210.1.149.0.818.5.94

 

Apache Kafka 3.6.0版本包含了错误修复、改进和新功能,例如:支持Kafka Raft (KRaft)的委托令牌;将 Kafka 集群从 ZooKeeper 元数据系统迁移到 KRaft 元数据系统的能力;将分级存储作为早期访问功能。关于该版本的更多细节可以在版本说明中找到。

 

Apache Camel 4.1.0版本包含了错误修复、依赖项升级和新特性,如:捕获启动事件并按照人类可读的格式报告时间;新的Camel Thymeleaf模板组件,作为对现有Camel FreemarkerCamel Velocity组件的补充;一个新的命令,按照CycloneDX格式为给定的 JBang 项目生成 SBOM。关于该版本的更多细节可以在版本说明中找到。

 

Eclipse Vert.x

 

Eclipse Vert.x 4.4.6版本包含了依赖项升级和一些值得注意的变更,如:升级到Netty 4.1.100.Final,解决了上述的 CVE-2023-44487;修复`Money` 类,弃用Money(long,int)构造函数,转而使用Money(Number);不再支持curl命令中的空Host标头,这个空标头会抛出NullPointerException。关于该版本的更多细节可以在版本说明弃用和重大变更说明中找到。

 

Reactor

 

Reactor 2023.0.0 的第一个候选版本包含对reactor-core 3.6.0-RC1reactor-pool 1.0.3reactor-netty 1.1.12的依赖项升级。2023.0.0-RC1 版本也进行了调整,其中reactor-kafka 1.3.21reactor-addons 3.5.1reactor-kotlin-extensions 1.2.2保持不变。关于该版本的更多细节可以在变更日志中找到。

 

类似的,Reactor 2022.0.12,第十二个维护版本包含了对reactor-core 3.5.11reactor-netty 1.1.12reactor-pool 1.0.3的依赖项升级。2022.0.11 版本也进行了调整,其中reactor-kafka 1.3.21reactor-addons 3.5.1reactor-kotlin-extensions 1.2.2保持不变。关于该版本的更多细节可以在变更日志中找到。

 

JHipster Lite

 

JHipster Lite0.44.0 版本已经发布,其中包含问题修复、依赖项升级和新功能(增强),如:在 JDK 21 的某些构建版本中启用;修复了在`KafkaPropertiesTest` 类中使用 Java `HashMap`类的问题;为改善导航体验,在横向屏幕上显示小地图。关于该版本的更多细节可以在版本说明中找到。

 

Piranha

 

Piranha 23.10.0版本包含了一些显著变化,如:依赖项和插件升级;修复了`PiranhaJarContainer` 类中的代码坏味道;修复漏洞、技术债务、安全和可靠性问题。关于该版本的更多细节可以在其官方文档问题跟踪器中找到。

 

RefactorFirst

 

Improving(一家提供培训、咨询、招聘和项目服务的公司)首席软件咨询顾问Jim Bethancourt宣布发布RefactorFirst 0.5.0-M1。该版本包含了许多依赖项升级和新特性,如:新的 RefactorFirst 命令行;将 HTML、CSV 和 JSON 报告重构成各自的模块。值得注意的是,RefactorFirst 现在需要 JDK 11 来解决CVE-2023-4759,这是JGit 6.6.0 以下版本存在的一个漏洞,攻击者可以使用特制 git 存储库中的符号链接将文件写入工作树之外的位置。因此,该项目也被移到 GitHub 上新创建的 RefactorFirst 目录中。关于该版本的更多细节可以在版本说明中找到。

 

摩洛哥 Devoxx 大会

 

摩洛哥Devoxx大会Hilton Taghazout Bay Beach Resort & Spa举办,来自 Java 社区的演讲者发表了主题演讲,包括:架构、数据与人工智能、开发实践、DevOps 与云计算,以及安全。

 

原文链接

https://www.infoq.com/news/2023/10/java-news-roundup-oct09-2023/

2023-10-31 08:004514

评论

发布
暂无评论
发现更多内容

EMQX企业版正式入驻华为云云商城,成为华为云联营联运合作伙伴

EMQ映云科技

物联网 IoT 华为云 云端 企业号 1 月 PK 榜

软件测试/测试开发 | 跨平台设备管理方案 Selenium Grid

测试人

软件测试 自动化测试 测试开发 selenium Grid

使用无代码构建移动应用程序

间隔

软件测试 | 测试开发| 跨平台设备管理方案Selenium Grid

测吧(北京)科技有限公司

智能流程机器人助你“聚划算”

华为云开发者联盟

人工智能 机器人 华为云 企业号 1 月 PK 榜

ThreadLocal源码解析及实战应用

京东科技开发者

Java 源码 技术 后端 企业号 1 月 PK 榜

从一个Demo说起Dubbo3

宋小生

dubbo RPC Dubbo3

让开源和标准成为云原生的确定性力量

阿里巴巴云原生

阿里云 开源 云原生

聊聊Cookie、Session、Token 背后的故事

华为云开发者联盟

前端 华为云 企业号 1 月 PK 榜

使用服务网格提升应用和网络安全

HummerCloud

服务网格 云原生安全

【Redis 技术探索】「数据迁移实战」手把手教你如何实现在线 + 离线模式进行迁移 Redis 数据实战指南(scan模式迁移)

洛神灬殇

redis 数据同步 1月日更 RedisShake

不懂任务调度系统,快来看这篇

华为云开发者联盟

后端 开发 华为云 企业号 1 月 PK 榜

年度重磅!《2022华为开发者宝典》免费下载

华为云开发者联盟

开源 华为云 鲲鹏 昇腾 企业号 1 月 PK 榜

市面上数一数二的双机热备系统当属Skybility HA!

行云管家

高可用 厂商 双机热备 双机热备系统

送给SQL开发者的一份新年礼物!一款100%自主研发的纯Web化SQL开发工具——SQL Studio 1.0正式发布

雨果

sql 数据库管理工具 SQL开发工具

4个因素会影响LED显示屏的安全防火问题

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家

成功上岸字节全靠这份Redis技术笔记,深入浅出值得一看

小小怪下士

Java redis 程序员 面试 字节

简单聊聊Redis中的几种Java客户端,以及它们的优缺点!

程序员小毕

数据库 redis 程序员 面试 后端

KubeVela 获得 2022 “开源新锐”和“开发者最喜爱”双料年度项目

阿里巴巴云原生

阿里云 开源 云原生

一站式云原生体验|龙蜥云原生ACNS + Rainbond

北京好雨科技有限公司

Kubernetes 云原生

Apache Spark + 海豚调度:PB 级数据调度挑战,教你如何构建高效离线工作流

Apache DolphinScheduler

海豚调度 Apache Spark 大数据 开源

不会还有人不知道吧?BOM上的器件也能在PCB上快速定位啦!(内附高效手焊攻略)

华秋PCB

工艺 PCB PCB设计 焊接 PCB工艺

实录 | MegEngine 大 Kernel 卷积工程优化实践

MegEngineBot

深度学习 开源 卷积 MegEngine 大 Kernel

桌面云是什么?有什么优势?桌面云是云桌面吗?

行云管家

云计算 桌面云 云桌面

漏洞优先级排序的六大关键因素

SEAL安全

安全 漏洞 企业号 1 月 PK 榜 优先级排序

全景剖析阿里云容器网络数据链路(二):Terway EN

阿里巴巴云原生

阿里云 容器 云原生

Spring Boot 3.0横空出世,快来看看是不是该升级了

程序那些事

Java spring 程序那些事 spring boot3

Hive查询语句

mm

解决Redis缓存穿透/击穿/雪崩以及数据一致性的方案

风铃架构日知录

Java redis 缓存穿透 缓存雪崩 数据一致性

基于单机最高能效270亿参数GPT模型的文本生成与理解

阿里云大数据AI技术

自然语言处理 机器学习 GPT 企业号 1 月 PK 榜

DNS 代理?Pipy:这我也可以

Flomesh

Pipy 可编程代理 流量管理

Java近期新闻:外部函数和内存API、OpenJDK JEP、Apache Tomcat CVE_编程语言_Michael Redlich_InfoQ精选文章