6. 本版本里的修改


6.1. 程序错误修复

Apache 服务器(httpd)和连接器

900363 - JK Status Manager 无法运行

Apache mod_jk 包含 Status Manager API。当操作使用它来运行时没有应用修改,不管是通过 API 还是 JK Status Manager web 接口。这是由于共享内存同步的一个错误引起的。其根本原因现已修复,使用 Status Manager 的存在已可以正常执行了。

群集

900392 - 单点登录服务可能失败,抛出异常 "IllegalStateException: JBAS010350: Expected result from singleton provider only, but instead received 0 results"

SingletonService 有时会失败,日志会有下列输出:
    IllegalStateException: JBAS010350: Expected result from singleton provider only, but instead received 0 results

这个错误发生在 getValueRef 方法里且在发生视图更改时被触发,这是因为旧的主节点已停止而新的主节点仍在启动。为了解决这个问题,我们修改了 getValueRef,当没有结果返回时它会重试。SingletonService 现在已可以正常运行了。
920367 - 非可分布式应用程序出现 ClusteredSingleSignOn ClassCastException
901028 - CLONE AS7-5688 ISPN000136: Execution error: java.lang.NullPointerException -> JBAS018079: Failed to passivate session
947420 - 启用会话钝化时在 [0] 毫秒后无法获得锁

控制台

900849 - 当数据大于 64k 时出现 EAP6 CLI 错误

返回长度超过 65535 个字符的任何 CLI 命令都会失败,错误信息如下:
Communication error: java.util.concurrent.ExecutionException: Operation failed

这是由于使用 JBoss DMR 库里的 java.io.DataOutput.writeUTF() 方法造成的。如果被处理的字符串超出 65535 个字符,这个方法会抛出 UTFDataFormatException。我们已更新 JBoss DMR 库以使用其他技术来正确处理超过这个长度的字符。现在,任何返回超过 65535 个字符的 CLI 命令都可以正常执行了。

EJB

957171 - 如果节点已关闭或卸载,而 EJB 调用到达处于这种状态的节点,客户将不会重试这个调用。
955506 - Connections not registered correctly for inner TX 当 Outer TX 暂停时内部 TX 没有正确注册连接
928922 - [AS7-6526] 用登记的 timer-id 识别 EJB 定时期很困难,尤其是它不存在时。
901203 - 远程 EJB 调用一次只能读/写一个字节

HornetQ

900359 - CLONE - 创建 JMS 桥的子系统
901137 - 当 reconnect-attempts 设置为 -1时,服务器无法优雅地(gracefully)关闭。
901177 - 当消息回滚而 DLQ 不存在时,HornetQ 没有从队列里删除消息。
913507 - SpecJMS2007 satellite 驱动里出现 OutOfMemory

当连接器上启用了 NIO 时,巨量的线程处于活动状态,这可能导致 OutOfMemory 错误。这是因为 NioWorker 没有正确关闭,所以它们使用的线程和内存都没被释放。现在关于线程处理的底层问题已被纠正,降低了 OutOfMemory 错误的风险。

我们推荐启用 "use-nio-global-worker-pool" 参数来最小化 OutOfMemory 错误的风险。下面是一个连接器配置示例:
<netty-connector name="netty" socket-binding="messaging">
   <param key="use-nio" value="true"/>
   <param key="use-nio-global-worker-pool" value="true"/>
</netty-connector>
919446 - 复制的日志 - 在持续的 backup/live 切换后磁盘空间将被用尽。

JSF

957838 - 当在 JBoss EAP 6 里序列化 FacesMessage 对象时出现 "java.io.NotActiveException: Fields were never written"。

FacesMessage 对象的解序列化在某些情况下将抛出java.io.NotActiveException。这是因为ObjectOutputStreamdefaultWriteObject()writeFields() 方法在序列化期间没有按 JSF 规格要求的被调用。这些方法现在在序列化期间都被正确调用,而 FacesMessage 对象的解序列化也可以正常进行了。
901266 - viewScoped MBean 上没有调用 @PreDestroy

JSF ViewScoped bean 使用的内存在某些情况下不会被回收,导致应用服务器使用的内存逐渐增加(内存溢出)。这是因为在会话过期时,这些 Bean 的 @PreDetroy 方法没有被调用。JBoss EAP 6 里的 JavaServer Faces 实现已经更新为 Mojarra 2.1.16,它可以解决这个问题。当会话过期时,每个 ViewScoped MBean 的@PreDestroy 方法都会被正确调用,而且分配给每个 bean 的资源都会被回收。

脚本和命令

900518 - Jdr 脚本根本无法连接 localhost:9990

安全性

910322 - 无法使用 CLI 添加安全性角色到 security-setting

当使用 CLI 或 API 添加 security-role 时,要求用户指定它应该具有的角色以及所有不应该有的角色。这是因为这个资源的 :add 操作没有这些参数的默认只。这些参数现在默认都是 false。添加一个角色现在只要求你通过设置它们为 true 来指定 security-role 必须具有的角色。所有其他角色都默认为 false

Web

901061 - EAP 6 Web 子系统里需要类似的 "DeleteWorkDirOnContextDestroy" 配置

在重部署时,JBoss EAP 6 没有重新编译 JSP 源码,除非它们比相关的 Java 或类文件更新。JBoss EAP 6 的早期版本没有包含在重新部署时删除 Java 和类文件的代码。这意味着如果用户试图从旧版本的 web 应用程序里恢复源码,.java.class 文件将不会被删除,从而阻止了 JSP 被重新编译。我们在 JBoss EAP 6 里已经添加了对应的代码,它可以通过系统属性 org.jboss.as.web.deployment.DELETE_WORK_DIR_ONCONTEXTDESTROY 激活。这个属性的默认值是 false。JBoss EAP 6 用户现在可以使用这个属性来删除 .java.class 文件以确保 JSP 源码被重新编译。
905165 - 方法表达式参数导致了 NPE/MethodNotFoundException

如果将 JSF 页面里的 EL 方法的任何参数设置为 null 都会导致异常抛出(NullPointerException)。这时因为 JBoss Web EL 解析器无法处理参数为 null 值的情况。我们已经更新了 JBoss Web,现在已可以正常处理参数为 null 的情况。
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部