6.2.4 发行注记


JBoss 企业级应用程序平台 6.2

适用于红帽 JBoss 企业版应用程序平台 6.2

Nidhi Chaudhary

Lucas Costi

Russell Dickenson

Sande Gilda

Vikram Goyal

Eamon Logue

Darrin Mison

Scott Mumford

David Ryan

Nidhi Srinivas

Misty Stanley-Jones

Keerat Verma

Tom Wells

摘要

这些注记包含和红帽企业级应用程序平台 6.2.4 相关的重要信息。在安装产品前请仔细阅读这些发行注记。

1. 关于维护发行版本

为了更好地满足客户的要求,在 6.2 以后 JBoss EAP 6 的小版本(Micro Release)已不再发行并用定期发布(目标是每隔 6 个星期)的补丁更新的方式替代。这些补丁将适用于以 ZIP 和 RPM 方式安装的 JBoss EAP。
  • 对于以 ZIP 文件进行的安装,我们将发布可以应用、删除补丁、查看补丁状态的新的 EAP 功能所管理的累积补丁。
  • 对于以 RPM 方式进行的安装,包含与累积补丁相等内容的 RPM 将通过 RHN 以相同的周期来发布。
每个新的补丁都将包含大量的对客户报告的问题的程序错误修复、以及可能的安全修复。我们期望这些补丁更新将明显减少客户必须管理的单独补丁的数量。
更多的信息请查看下列红帽知识库文章:Maintenance Release Changes in EAP 6.2+ (https://access.redhat.com/site/articles/547663) 和 Updated Patch Management with EAP 6.2+ (https://access.redhat.com/site/articles/547673)。

图 1. JBoss EAP 的补丁时间表

2. 应用补丁更新

应用补丁更新的方法按照安装 JBoss EAP 的方法不同而不同。更多细节,请参考《安装指南》里的 『安装补丁和升级 JBoss EAP』章节。
关于如何将增量补丁应用到本地的 Maven 资料库里,请参考《开发指南》里的『应用补丁到本地 Maven 资料库』章节。

3. 这个版本中所做的修改

3.1. 程序错误修复

CDI/Weld

1101968 - 创建拦截器失败 - WELD-1683

在以前的 JBoss EAP 6 里,Weld 错误地包含了实现 package-private 接口的 Bean 里不同软件包中不可访问的 package-private 接口。

每当 CDI 功能(包括拦截和注入)使用这样的 Bean 时,就会由于 IllegalAccessError 而导致部署失败。

在这个 JBoss EAP 6 里,Weld 不再在 Bean 的类型集里包含不可访问的 package-private 接口。不同软件包里直接或间接实现 package-private 接口的 Bean 现在可以正确地支持所有的 CDI 操作。

域管理

1102753 - 部署的应用程序没有分布到主机控制器上。

在以前的 JBoss EAP 6 版本里,部署只按需要复制到主机控制器。

--backup 选项启动的主机控制器没有所有可用的部署,所以无法在失效切换时提升为域控制器。

在这个版本里,所有的内容都复制到以 --backup 选项启动的主机控制器上,以在失效切换进行提升。

EJB

1093752 - 远程客户事务的超时时间被硬编码值所替代

以前的 JBoss EAP 6 版本里有一个问题,导致跨越多个服务器的远程客户事务过早或过、晚过期。

这个问题的出现是因为超时时间没有正确地在服务器间传播,让系统依赖硬编码的值(300秒)。

这个版本里已经删除了这个硬编码值,现在超时时间可以正常使用了。

EJB,Remoting

1098879 - 如果用于 EJB 调用的群集无法为群集节点创建连接,EJB 客户一开始就会失败,ClusterNode{} -> 操作失败,状态为 WAITING。

由于在初始连接后作为 cluster-view 提供的竞争条件,到不同服务器节点的连接无法建立。在多数情况下,客户会被终止并在所有连接请求超时时继续工作。

Hibernate

1094080 - HHH-8749 用 unique="true" 和 cascading orphan delete 定义的多对对表冲刷出错

在以前的 JBoss EAP 6 版本里,当使用用 unique= true 和 cascading orphan deletes 映射为多对多的编有索引的集合(Map 或 List)时,冲刷时抛出异常(Unable to resolve property: null)。这个问题现已得到解决。

JCA

1103238 - JBoss EAP 里 WFL-2912 的 Back port

在以前的 JBoss EAP 版本里,在资源适配器的 add 操作里没有正确地检查上下文信息,这阻止了域模式里通用 JMS 适配器的部署。

这个版本已经解决了这个问题。

其他

1101925 - org.jboss.dmr 缺失 Javadoc

之前版本的 JBoss EAP 6 里缺失了org.jboss.dmr 的 javadoc。在这个版本里已经加上了这些 Javadoc。

RESTEasy

1091547 - DataSourceProvider 使用了不安全的方法来读取输入流

如 Javadoc 里所提到的,RESTeasy 附带的数据源使用 InputStream::available 方法是不合适的:

请注意,虽然某些 inputStream 的实现将返回流的总共字节数,有些则不会。使用这个方法的返回值来分配要保存流里所有数据的缓冲不是正确的做法。

本版本的 JBoss EAP 6 避免了使用这个方法。

安全性

1098365 - 修复 'Continuation Required' 逻辑

对 Negotiation 问题的修复实现对 NegotiationAuthenticator 的协商逻辑("Continuation Required")有反向的影响。这个问题阻止了某些浏览器正确地连接用 Negotiation 保护的 Web 程序。

在这个版本里,我们修复了 "Continuation Required" 逻辑。当接收到 NTLM 令牌时,它可以和 "fallback to FORM" l逻辑一起使用。
1086795 - LdapExt 登录模块在 RoleSearch 里获取了太多的属性

在以前的 JBoss EAP 6 版本里,我们发现当用 RoleSearch 执行验证查询 LdapExtended 登录模块返回太多的属性。这个问题是由于删除一个约束过滤器引起的( constraints.setReturningAttributes(new String[0]);)。这个过滤器已经在这个版本里重新引入了,所以不存在这个问题了。
1105330 - 修复 NegotiationAuthenticator 里回退至表单的 SSO 处理

在以前的 JBoss EAP 6 版本里,当 fallback to form 的逻辑被触发时,NegotiationAuthenticator 不支持 SSO 。因此,如果用户用用户名和密码(fallback to form)登录时,群集和非群集的 SSO 都无法工作。

在这个版本里,我们在 NegotiationAuthenticator 里添加了 SSO 逻辑,当回退至表单验证时 SSO 不再如期工作。

事务管理者

1096947 - JBTM-1702: 一阶段优化:XAResource 抛出 XAException 被忽略和 bean 调用成功是不实的

在以前的 JBoss EAP 6 版本里,我们发现 XAResource 抛出的 XAExceptions 被忽略且 bean 调用错误地显示为成功。

当使用一阶段优化且 XAResource.end() 方法抛出 XA_RBCOMMFAIL 错误时这个问题会出现。Bean 客户看似成功地完成了方法调用,然而因为要保存的数据比并不可用,事务将回滚并导致随后的 bean 调用失败。

在这个版本里,如果事务在 XAResource 里运行失败,它仍会回滚,但现在不会抛出异常,所以调用代码可以检测到错误而不是假定调用成功了。

Web

1103891 - NIO 会错误地导致 request/response 对象被并行使用

在以前的 JBoss EAP 6 版本里,使用带有异步 servlet 的 NIO 将导致处理器及其 request/response 对象被多个线程使用在同时处理不同的请求。

如果在相同的频道上发生两个事件并同时执行 Http11NioProtocol.event,这个问题就会出现。如果导致了 SocketState 而不是 LONG,两者都提供相同的处理器给 finally block 里的 recycledProcessors。然后它们会允许两种不同的请求同时轮询 reycledProcessors 里相同的处理器。

这个行为是错误的,因为处理器在 recycledProcessors 里只能有一个条目。

这个版本已经解决了这个问题。
1103018 - 对 JSSESupport keySizeCache map 进行并行访问时出现高 CPU 使用率

在以前的 JBoss EAP 6 版本里,JSSESupport 里的 keySizeCache 部署没有正确地同步。

因此,对 JSSESupport keySizeCache 的并行访问可能导致占用高 CPU 使用率的 HASH MAP 循环。

在这个版本里,对 JSSESupport 里的 keySizeCache 的访问被同步,不会出现并发访问且避免了高 CPU 占用率的 HASH MAP 循环。
1101472 - 使用群集 SSO 时在会话失效上抛出 ContextNotActiveException

在以前的 JBoss EAP 6 版本里,当过期的会话和 SSO 关联时 SSO Valve 没有设置上下文。

这意味着在会话被销毁后 ClusteredSingleSignOn 将调用 WeldListener.sessionDestroyed(event),导致会话失效上出现 ContextNotActiveException

在这个版本里,当过期会话和 SSO 关联时 SSO Valve 会设置上下文,会话失效时也避免了 ContextNotActiveException
1097410 - 因为未捕获的 NPE,NIO EventPoller 线程中止。

在以前的 JBoss EAP 6 里,请求线程和 NIO EventPoller 线程间的并行会导致 EventPoller 在其主循环里遇到空的 ChannelInfo 对象。

因此,NIO EventPoller 线程可能由于未捕获的 NullPointerException 而中止。这会导致服务器不响应而连接保持打开状态直至连接池溢出。

在这个版本里,EventPoller 线程可容忍任何 null 对象而阻止了 NullPointerException 的抛出,且 EventPoller 线程也不会因为 NullPointerException 而中止了。

Web Services

1069352 - 在用于获取 CXF 里的 Schema 导入的 URL 里可能有命名冲突

在以前的 JBoss EAP 6 里,CXF 没有用相同的名称而是不同的路径正确解析 SD 文件的外部 WSDL 模式链接。这意味着 WSDL 模式在某些情况下无法正确下载。

这个版本在模式链接里包含了足够的信息来唯一确认每个模式文件,现在 WSDL 模式可以正常下载了。
1079044 - 当 JAX-WS 客户在 JAX-WS 端点实现里被调用时丢失了 MessageContext

在以前的 JBoss EAP 版本里出现了一个程序错误,当 JAX-WS 客户在端点里被调用时,导致端点的 MessageContext 从 ThreadLocal 里被删除且在客户调用结束后无法被替换。这导致在进行任何 JAX-WS 调用后 MessageContext 对于端点不可用。

Apache CXF 组件的升级(从 2.7.10 到 2.7.11)解决了这个问题。
1040703 - JAXBDataBinding 无法处理带有普通对象(如 ObjectWithGenerics<Boolean, Integer>)的异常。

以前的 JBoss EAP 6 版本里有一个问题,当 Exception 类带有一些象下面例子里定义的类型参数时,从 Exception 类生成的 WSDL 不正确且出现 SOAP 故障消息。
@javaxml.ws.WebFault
public class GenericsException extends Exception {
    private static final long serialVersionUID = 1L;
    private ObjectWithGenerics<Boolean, Integer> obj;

    public ObjectWithGenerics<Boolean, Integer> getObj {
        return obj;
    }
    public void setObj(ObjectWithGenerics<Boolean, Integer> obj) {
        this.obj = obj;
    }
}
Copy to Clipboard Toggle word wrap

这个版本已经解决了这个问题。
1077262 - 对于带有 WSA ReplyTo prop set 的请求,没有创建 HttpServletRequestSnapshot。

在以前的 JBoss EAP 6 里,Servlet 请求对象在某些情况下将 WSA ReplyTo prop set 在其他线程里进行排队处理前不会被克隆。

因此,JBossWeb 在 initiator 接收到 acknowledgment 响应后将回收过期的请求对象,导致端点实现试图访问过期请求对象时使用了无效的数据。

这个版本确保了 Servlet 请求对象在需要时被克隆,无效数据不会再被在原始 HTTP 请求之外的其他线程上执行的端点实现使用。

3.2. 已知的问题

文档

1058768 - OSGi 子系统不能应用补丁机制

OSGi helloworld quickstart 在 JBoss EAP 6 里没有部署成功。这是一个已知的问题,因为产品里已经舍弃了 OSGi 组件。这个问题无法得到解决。

脚本和命令

1072227 - standalone.[sh|bat] 脚本错误处理了 --debug 参数

这个 JBoss EAP 6 版本带有一个程序错误,当以独立模式运行 EAP 的脚本( standalone.sh|bat)没有使用默认端口(8787)时、和使用 debug 参数但没有端口号码时出错。

带有 debug 参数的脚本执行会导致错误且无法启动服务器。

可能的办法是在使用带有 debug 参数的脚本时指定端口号码。
standalone.[sh|bat] --debug [port number]
Copy to Clipboard Toggle word wrap

我们期望在下一个版本里解决这个问题。

补丁

1108952 - 应用大型补丁时出现 OutOfMemoryError。

这个 JBoss EAP 6 版本带有一个程序错误,当安装大型补丁时可能在子主机控制器上出现 OutOfMemoryError。当通过域控制器安装 CP04 并使用默认的内存设置时就会出现这个问题。

这个错误出现是因为从主主机控制器传递到从主机控制器的附件数据全部被读取到内存里了。

绕过这个问题的办法:编辑 bin/domain.confbin/domain.conf.bat,如果补丁需要从域控制器上安装时临时附加 -Xmx1024m 到子主机控制器上 HOST_CONTROLLER_JAVA_OPTS 设置。

我们期望在下一个版本里解决这个问题。

A. 修订历史记录

修订历史
修订 6.2.4-5Wed June 25 2014Scott Mumford
Bugzilla Sync 06/25/2014 (10:08 am) Brisbane Time

法律通告

Copyright © 2014 Red Hat, Inc..
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部