7.3. 已知的问题

CDI/Weld

1054876 - 当超类没有无参数构造器时创建代理失败

CDI 定义类必须有一个公共的构造器,要么用 @Inject 注解,要么就没有参数。Weld 在部署期间会检查这个要求。然而,本 JBoss EAP 版本里的 Weld 实现执行了更严格的检查,所有超类都必须有无参数的构造器。如果没有,部署会失败并抛出 `UnproxyableResolutionException`。

变通办法是在 Bean 类的所有超类里都包含一个公共的无参数构造器。
1086555 - Weld - 通用 Bean 的 Specialization 抛出不合适的异常

在这个版本的 JBoss EAP 6 里,设置通用 bean 的 specialization 会抛出 DefinitionException

这可能并不合适,我们正在进行调查。

CLI

1054874 - jboss-cli.sh 对 cygwin 的支持

本版本的 JBoss EAP 6 有一个程序错误,在 Cygwin 环境里使用产品时可能出现问题。

POSIX 和 Microsoft Windows 路径实现的不同可能导致 jboss-cli.sh 脚本里的路径变量无法正常解析。

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

群集

900483 - 节点关闭使用 DIST SYNC 时接收到过时的数据

在测试过程中,当某个节点关闭且使用了 DIST SYNCDIST ASYNC 缓存模式时,某些情况下会接收到过时的会话数据。我们仍在调查这个问题。
900378 - 带有 SET 复制触发器的 CDI bean 没有复制

由于 Weld 组件里的一个程序错误,setAttribute 方法没有被正确地调用。这导致了带有 SET 复制触发器的 CDI bean 复制失败。变通方法是使用 SET_AND_NON_PRIMITIVE_GET 触发器。我们将在以后的版本里解决这个问题。
900946 - IllegalStateException: Cache is in 'TERMINATED'/'STOPPING' state.

这个 JBoss EAP 6 版本带有一个程序错误,如果在某个节点上卸载应用程序后 5 秒内又部署到群集里的另一个节点上,这个错误可能会导致抛出 IllegalStateException

我们正在调查这个问题,希望在下一个版本里解决它。
901162 - TimeoutException: Unable to acquire lock

这是本版本的 JBoss EAP 6 里的一个已知问题,它在某些情况下会抛出 TimeoutException: Unable to acquire lock

我们期望在以后的版本里解决这个问题。
917635 - 无法加载会话:NullPointerException

这是本版本的 JBoss EAP 6 里的一个已知问题,在某些情况下部署应用程序后它会导致 NullPointerException 并遇到 Failed to load session 信息。

我们期望在下一个版本里解决这个问题。
993041 - org.jboss.as.web.session.ClusteredSession.access 里的 RuntimeException

在罕见的情况下,当分布式 Web 会话被访问时,如果另外一个节点突然离开群集,获取锁可能失败。这种情况发生时会导致这样的异常信息:
RuntimeException: JBAS018060: Exception acquiring ownership of <session-id>

这个问题的根本原因是锁的获取并没有考虑群集节点可能恰好同时离开群集,导致获取锁失败。我们正在调查这个问题并期望在以后的版本里解决它。目前还没有变通方法。
959951 - CacheException: java.lang.RuntimeException: Failure to marshal argument(s) at server shutdown

服务器关闭时下列消息会被记录:
CacheException: java.lang.RuntimeException: Failure to marshal argument(s) at server shutdown

这个信息是因为 Infinispan 还不支持干净关闭,可被安全地忽略。我们正在调查这个问题,但目前还没有变通方法。
922699 - IllegalStateException: AtomicMap stored under key X has been concurrently removed!

在偶然的情况下,当过期和钝化的例行处理访问了并删除的会话时 IllegalStateException 会被抛出。这导致异常抛出并登记日志。

这个异常可以忽略。然而,禁用会话钝化可以避免这个问题。

域管理

1111575 - subnet-match 完全无法工作

这个版本的 JBoss EAP 6 的一个程序错误会阻止 subnet-match 解析 value 属性。

我们正在调查这个问题,期望在以后的版本里解决它。
1105677 - 不存在的 ldap 组导致安全区里的验证失败

当试图查找未存在于本地 LDAP 服务器上的组时,本版本的 JBoss EAP 6 里的一个程序错误会导致 LdapGroupSearcher 运行失败。在这些情况下,搜索会返回 HTTP 500 错误代码,阻止用户的登录。

我们期望在下一个版本里解决这个问题。
1015524 - RBAC: 无法部署已经被不同 server-group 作用域的用户部署的相同部署

当启用了基于角色的访问控制时,带有 server-group 作用域角色的管理用户可能无法部署新的部署,错误信息为:
"JBAS014807: Management resource '[(\"deployment\" => \"example.war\")]' not found"

这是因为域里已存在具有相同名称的部署。这是正常的行为。然而,因为管理用户限定在某个服务器组的作用域里,它们无法查看部署是否已存在于另外一个服务器组上。这使得避免这种错误相当困难。

要绕开这个限制,我们推荐给负责添加部署到域里的用户分配无作用域的角色,或者维护一个部署名称列表以避免重复。
995439 - JTS transactions 设置依赖于 Jacorb 的设置

当在 Web 管理控制台("Profile -> Container -> Transactions")的 Transactions 部分启用 JTS 时,您需要设置 JacORB 子系统里的属性 transactionson。预期的行为是当启用 JTS 时事务也被启用。我们仍在调查这个问题产生的原因。在解决以前,变通方法是确保 transactions 属性也被设置为 on。请注意,事务子系统只在 fullfull-ha 配置集里可用。

EJB

990102 - 并发访问超时 -- 无法在 5000 毫秒内获取锁

这个 JBoss EAP 6 版本带有一个程序错误,当 EJB 客户在 "forwarding" 群集里调用 stateful bean 上的方法时,它可能导致 concurrent access timeout。这个 bean 将调用转发到 "target" 群集里的 stateful bean,然后再转回来。调用是有序的;客户在获得前一个调用的响应前无法调用新的方法。当群集里的其中一个服务器被关闭时,错误就出现了。
1118432 - 如果 remote-naming InitialContext 应被关闭,将抛出 java.util.concurrent.RejectedExecutionException。

这是本 JBoss EAP 6 版本里,如果使用远程命名来查找 EJB,它会创建一个 ejb-client 上下文。

而如果远程命名上下文对象被关闭时,客户将记录下面的错误,因为 ejb-client 上下文已经关闭。
ERROR [org.jboss.remoting.handler-errors] Close handler threw an exception: java.util.concurrent.RejectedExecutionException

这个问题将在以后的版本里得到解决。
1067194 - EJB3 客户代码吞没了异常信息,使跟踪产品里的问题变得很困难。

本版本的 JBoss EAP 6 有一个程序错误,除非日志级别设置为 DEBUG,否则 EJB3 客户将吞没异常信息。

我们期望在下一个版本里解决这个问题。
1123505 - 如果连接使用相互验证,那 EJB/remoting 配置不会将证书作为凭证传播来进行验证。

在这个 JBoss EAP 6 版本里,如果连接使用相互验证,那 EJB/remoting 配置不会将证书作为凭证传播来进行验证。

这个问题使得无法将用于验证的 BaseCertLoginModule 和用 SSL 保护的 EJB 一起使用。

我们正在调查这个问题,期望在以后的版本里解决它。

Hibernate

1102974 - HHH-9231 如果事务性集合在冲刷后再初始化,回滚后未提交的数据仍会保留在集合缓存里。

本版本的 JBoss EAP 6 有一个程序错误,它导致回滚后某些修改会保留在二级缓存里。

这个问题可能导致 javax.persistence.EntityNotFoundException 或遇到不存在的实体。

我们期望在下一个版本里解决这个问题。
1111706 - NonUniqueDiscoveredSqlAliasException: Encountered a duplicated sql alias

在这个 JBoss EAP 6 版本里,对简单实体(如 Event)的原生 SQL 查询,如果多次指定没有唯一别名的列(如 "select e.id, e.title, e.id from Event e"),会失败并显示如下信息:
org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException: Encountered a duplicated sql alias [id] during auto-discovery of a native-sql query

这是因为 Hibernate 从 java.sql.ResultSetMetaData.getColumnLabel() 获取列标签。而 Hibernate 无法确定具有相同名字的列是否引用了相同实体里的相同值。

Hibernate 无法进行错误的假设,所以抛出这个异常。

变通方法是为具有相同名称提供唯一别名(如 "select e.id AS id1, e.title, e.id AS id2 from Event e")。
1094951 - HHH-9261 相同实体的多个独立的表示方式无法用 cascade=merge 进行合并

本 JBoss EAP 6 里的一个问题可能导致 java.lang.IllegalStateException: An entity copy was already assigned to a different entity 错误。

在 cascade 合并过程中如果检测到多个具有相同标识符的实体实例时,这个问题就会出现。因为它们无法自动合并,所以抛出了异常。

我们期望在下一个版本里解决这个问题。
1105078 - HHH-9062 Envers validity audit 策略:最终修订时间戳没有保存在联合子类的表里。

在这个 JBoss EAP 6 版本里,当使用 validity audit 策略和 Enver 通过 JOINED 继承来审计实体层次结构时,为联合子类创建的审计表结果会不包含最终修订列。

这会使联合子类的审计表的分区变得复杂。

我们正在调查这个问题。
1085982 - Envers: 审计表 (HHH-8908) 里缺少 Embedded 列

这个版本的 JBoss EAP 6 的一个程序错误会阻止 Hibernate 里从超类继承的属性被审计,除非这个类用 @Audited 进行标记。

解决的办法是确保在跟踪类时使用 @Audited 属性。

我们期望在下一个版本里解决这个问题。
1117447 - HHH-9280 @ElementCollection 的联合表明使用实体类名而不是指定的实体名

这个版本的 JBoss EAP 6 的 Hibernate 组件里有一个程序错误,它导致根据 @ElementCollection 计算的表名使用实体类名而不是指定的实体名。

我们期望在下一个版本里解决这个问题。
900321 - HHH-7287 当使用 NaturalIdLoadAccess 获取 naturalIdQuery 结果时缓存 natural-id-values 出现问题

当从非事务性场景更新 natural-id 值之后试图从二级缓存(L2)加载实体时,Hibernate 接口 NaturalIdLoadAccess 的行为不一致。

当对数据进行事务和非事务的混合访问时,Hibernate 目前不支持具有 natural-id 的实体的 L2 缓存。

安装程序

1032892 - 对于 Windows 里以盘符开始的路径无法使用 Tab 填充

在 Windows 服务器上的 JBoss EAP 6 控制台安装程序里,以盘符开始目录路径的 Tab 完成功能无法工作。

当输入以盘符开始的路径时,例如 C:\,并按 Tab 键,不会显示任何东西。而在这种情况下,本应该显示该目录的内容。

这个问题将在以后的版本里解决。
977805 - Solaris 里无法从启动菜单里启动 JBoss 管理控制台

当 JBoss EAP 6 使用安装程序安装后,Solaris 上的 JBoss EAP 6 管理控制台的启动菜单快捷键无法使用。

不是在浏览器里打开管理控制台,而是显示下列错误信息:
Error showing url: HTTP Error: Method Not Allowed

这是因为 Solaris 上的 xdg-open 没有按预期地运行。

变通方法是直接通过浏览器打开管理控制台。如果配置了默认的端口,管理控制台的 URL 是:http://localhost:8080/console(独立模式)、http://localhost:9990/console(域模式)。

JCA

1109691 - 当没有在 RA 配置里的 recovery 元素指定凭证时,Recovery 无法工作。

在这个JBoss EAP 6 版本里,当没有在 XML 里指定 recovery 元素的安全性凭证时,对于某些 JMS 资源 Recovery 将无法启动。

因为应该可以无需凭证(或类似情况)创建连接,所以这种行为不是我们预期的。

我们期望在下一个版本里解决这个问题。
991389 - 在服务器用 JTS 事务模式集重载后 generic-jms-ra.rar 资源适配器里的连接工厂没有激活

当配有资源适配器的 JBoss EAP 服务器使用 generic-jms-ra.rar 部署时,服务器重载时连接工厂会撤销注册。其原因是如果配置事务子系统在 JTS 上运行,事务通用资源适配器无法正确处理重载。我们仍在调查这个问题的根本原因。

变通方法是在 RAR 归档里添加一个指定连接属性的 JCA 描述符 XML 文件。
1023193 - 在定期故障恢复过程中,JMS 通用资源适配器显示 'lock owned during cleanup'。

我们已确定在定期恢复里有个小问题,导致在日志里记录了以下列文本开始的信息。
WARN [org.jboss.resource.adapter.jms.JmsManagedConnection] (Periodic Recovery) Lock owned during cleanup: java.lang.Throwable: Lock owned during cleanup

底层原因是通用 JMS 适配器错误地处理了第二个定期恢复调用。根据 Object Transaction Service 规格,当设置事务管理者在 JTS 上运行时,定期恢复调用将用相同的 XID 回滚两次。通用 JMS 适配器错误地处理了相同 XID 的第二次回滚调用,所以出现了上述的警告信息。请注意,尽管有这样的警告信息,但恢复仍会正常进行。
1107120 - 部署 MySQL JDBC 驱动到 EAP 6.x 时失败

这个版本的 JBoss EAP 6 的一个程序错误在某些情况下会阻止 MySQL JDBC 驱动的部署。

部署失败时会提示部署已经存在。而试图删除现有的部署也会失败。

变通方法是重启服务器。然后驱动就可以成功部署了。

我们正在调查这个问题。
901300 - 群集 SFSB 上的 Datasource 字段的 @Resource 注入失败并显示序列化错误

本版本的 JBoss EAP 6 有一个程序错误,它导致群集 SFSB 上的 Datasource 字段的 @Resource 注入失败并显示序列化错误。

变通方法是将字段标记为临时的并手动在 @PostActivate 里再次填充。

我们将在下一个版本里解决这个问题。
1033008 - 通用 JMS 资源适配器和 EE 规格不兼容 - 当在事务上下文里创建会话时,它*没有*忽略参数。

当在事务上下文里创建会话且参数被传递到通用 JMS 资源适配器时,NPE(Null Pointer Exception)将会发生。这是因为尝试处理参数时,当 Java EE 规格表明它们不会被处理。我们仍在调查这个问题的根本原因,目前的变通方法是像下面这个例子一样设置会话为有事务的。由此,NPE 不会再发生了。
connection.createSession(true, Session.SESSION_TRANSACTED);
1104227 - 当更多的数据源存在时,为用于恢复的 JDBC 驱动提供了不正确的数据源 JNDI。

在这个 JBoss EAP 6 版本里,当定义了多个数据源时,恢复过程中传递数据源的 JNDI 会出现问题。

这些数据源属于某台物理主机,但每个都指向不同的数据库(使用不同的用户进行连接)。

这个导致恢复失败并抛出异常,且显示下列错误信息:
WARN [com.arjuna.ats.jta] (Periodic Recovery) ARJUNA016027: Local XARecoveryModule.xaRecovery got XA exception XAException.XAER_RMERR: oracle.jdbc.xa.OracleXAException

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

JDR

917683 - Windows 里运行的 JDR 工具生成错误的归档条目名称

我们发现在 Windows 环境里使用 JDR 工具时有一个程序错误。它会将原始 $JBOSS_HOME 目录的最后一个字符附加到归档里创建的 JBOSS_HOME 目录上。

例如,对于原始 JBOSS_HOME 目录 jboss-eap-6.2,JDR 工具生成一个名为 JBOSS_HOME2 的归档目录。

我们正在调查这个错误的原因,目前还没有变通方法。

JPA

1114726 - 当其他子部署引用了实体类时,JPA 实体类的增强无法用于子部署。

这个版本的 JBoss EAP 6 的一个程序错误允许用户程序里的实体类被应用程序部署里的持久化提供者重写。

当并行部署子部署部署且在包含持久化单元的部署外的其他子部署里有对实体类的引用。在这些实例里,每个子部署都会经由不同的并行内部部署阶段。

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

JSF

1096905 - EAP 6.2 里切换到 JSF 1.2 时 WeldApplicationFactory 上出现 InstantiationException

JBoss EAP 6 允许用户通过部署捆绑的描述符选择部署的 JSF 版本。

然而,当部署也使用 CDI 时,它目前无法正确地工作。现在,如果两个不同的部署也使用 CDI,它们使用不同的 JSF 版本是不可能的。

当进行尝试时,异常将被抛出且部署失败并带有下列错误信息:
java.lang.InstantiationException: org.jboss.as.weld.webtier.jsf.WeldApplicationFactory

虽然JSF 1.2 和 CDI 的一起使用并没有官方支持 ,但是由于 JSF 1.2 是 EE5 的技术,而 CDI 是 EE6 的技术,采用下列变通方法,所有部署仍可能将 JSF 1.2 和 CDI 一起使用:
  1. 在 jboss-cli 里执行下列命令将 JSF 1.2 设置为 EAP 里的默认版本:/subsystem=jsf/:write-attribute(name=default-jsf-impl-slot,value=1.2)
  2. 通过修改 /modules/system/layers/base/org/jboss/weld/core/main/module.xml 和 `/modules/system/layers/base/org/jboss/as/weld/main/module.xml 里的 <module name="javax.faces.api"/> 行为 <module name="javax.faces.api" slot="1.2" /> 为 Weld 模块配置 JSF 1.2 依赖关系。
  3. 重启服务器。

日志

1096053 - SyslogHandler 没有正确处理多字节的字符

使用 org.jboss.logmanager.handlers.SyslogHandler 来登记多字节字符可能导致日志里的错误输出。例如:
Mar 8 17:29:09 UNKNOWN_HOSTNAME java[9896]: SyslogHandler: ????????????

变通方法是用 org.apache.log4j.net.SyslogAppender 登记多字节字符。

这个问题部分是由于 UTF 转换算法引起的,我们期望在以后的版本里解决它。
1031448 - logging-profile 可用于 servlet,但不能用于 JSP

在这个 JBoss EAP 6 版本里,logging-profile 可用于 servlet,但无法用于 JSP。JSP 里的所有日志消息都会进入系统日志上下文。

这是因为被检查的类加载器是 org.apache.jasper.servlet.JasperLoader,其父类加载器在日志上下文里进行了注册。

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

其他

901231 - IBM JDK 上使用 finalize() 需要更多的保护

当运行在 IBM JDK6 或 7 上时,JBoss EAP 6 可能遇到间歇性的故障。这是因为 IBM JDK 的垃圾回收比其他 JVM 要激进得多。这导致内存有时候会被意外地回收,而在其他 JVM 上测试时则注意不到这个问题。

在这个问题得到解决前,Red Hat 建议不要使用 IBM JDK6 或 7 来运行 JBoss EAP 6。

补丁

1120535 - 在关闭过程中查询 Patching MBean 导致 IllegalStateException

在本版本的 JBoss EAP 6 里,patching 子系统 PatchResource 虽然没有对 InstallationManagerService 的依赖关系,但在关闭时会试图使用它而导致了程序错误。

这可能导致当关闭 hook 试图查询 patching 子系统 MBean 时抛出 IllegalStateException

解决的办法是在使用 InstallationManagerService 前先确认它是否已启动 。

PicketLink

1086733 - PicketLink 2.1 和 2.5 版本间的 API 修改

自版本 2.1 后,PicketLink 2.5 已经对 API 进行了一些修改,这些都包含在以前的 JBoss EAP 6.x 发行版本里。

这些修改包括几个影响向后兼容性的类。PicketLink 2.1 应用程序需要相应地进行更新。

本文档里结尾提供了改动的完整列表。

RBAC

1021607 - RBAC 的 non-addressability

某些资源对于作用域为服务器组和主机的角色是不可寻址的,目的是提供管理模型的简化视图,从而提高可用性。这和以不可寻址来保护敏感数据的资源是不同的。

对于作用域为服务器组的角色来说,这意味着管理模型的 profile, socket binding group, deployment, deployment override, server group, server configserver 部分里的资源将是不可见的,如果它们和为该角色指定的服务器无关的话。

对于作用域为主机的角色来说,这意味着管理模型的 /host=* 部分里的资源将是不可见的,如果它们和为该角色指定的服务器无关的话。

然而,在某些情况下,这种简化的视图可以隐藏超出用户管理的范围的信息,它可以为用户的一系列动作提供指导。一个例子是 BZ# 1015524

在以后的版本里,这些不可寻址的资源可能会改为可寻址但不可读的。这不会影响服务器的安全性,因为出于安全原因它们是不可寻址的。红帽推荐您不要依赖于资源的不可寻址来隐藏信息,除非这种不可寻址性是在敏感性约束里定义的。

RESTEasy

899666 - RESTEasy: 空的 cfg. param javax.ws.rs.Application 导致异常

WEB-INF/web.xml 文件里的 _javax.ws.rs.Application_ 配置选项为空时,这个版本的 JBoss EAP 6 附带的 RESTEasy 组件抛出 java.lang.StringIndexOutOfBoundsException: String index out of range: 0

这个行为是次优的,我们期望在以后的版本里解决这个问题。
1088956 - Windows 上的命名空间测试抛出 MalformedByteSequenceException

在这个 JBoss EAP 6 版本里,当在客户请求的主体里指定编码时,RESTeasy 会返回以服务器的编码而不是以原始请求编码为格式的响应。要以指定的编码接收响应,您必须指定 request.accept(mediaType) 头部或使用 @Produces 注解。

我们期望在下一个版本里解决这个问题。
1078186 - 尽管在成功验证后连接已关闭,重用的连接会处于不一致的状态。

在这个 JBoss EAP 6 版本里,当多次发送某个客户请求时,底层的 httpClient 没有正确处理连接。RESTeasy 使用 JBoss EAP 提供的 org.apache.httpcomponents 模块(目前版本是 4.2.1-redhat-1)。 4.2.6 版本的org.apache.httpcomponents 会修复这个问题。
1122779 - DataSourceProvider 没有删除它创建的临时文件

当读取超过 4096 个字节时,DataSourceProvider (org.jboss.resteasy.plugins.providers.DataSourceProvider.readDataSource(InputStream, MediaType)) 会创建一个名为 resteasy-provider-datasource ... .tmp 的临时文件。然而,它不会删除这个临时文件也不会提供删除它的工具,这会导致资源的溢出。我们仍在调查这个问题并期望在下一个版本里解决它。
1080420 - DataSourceProvider 使用了不安全的方法来读取输入流

RESTEasy 使用 InputStream.available() 来确定它是否完成了从客户读取输入流

RESTEasy 有时候不能完整地从客户读取输入数据。

我们期望在下一个版本里解决这个问题。
899664 - (EAP 6.4.x) RESTEasy: Boolean 配置参数没有拒绝无效的内容

这个版本的 JBoss EAP 6 的一个程序错误允许设置无效的 Boolean 配置参数。这个行为是计划外的,无效的参数应该被拒绝且应用程序也不应该部署。

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

RPM

1124516 - RPM 里缺少 snmpd.conf.sample 文件

下列版本的 mod_snmp RPM 里缺少 httpd/conf.d/snmpd/snmpd.conf.sample 文件:
  • mod_snmp-2.4.1-7.GA.ep6.el5.i386.rpm
  • mod_snmp-2.4.1-7.GA.ep6.el5.x86_64.rpm
  • mod_snmp-2.4.1-8.GA.ep6.el6.i386.rpm
  • mod_snmp-2.4.1-8.GA.ep6.el6.x86_64.rpm
  • mod_snmp-2.4.1-9.GA.ep6.el7.x86_64.rpm

这个问题的 Bugzilla 里附加了一个 snmpd.conf.sample 示例文件,您可以按需要进行修改。

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

Remoting

1104328 - 'Compatible Change' 编组不允许从序列化类的层次结构里删除类

如果序列化类的层次结构了里缺少了某个类,在解组(unmarshalling)过程中可能遇到 ClassNotFoundException

例如,如果某个系统编组类 A,它继承了类 B,而 B 反过来继承了类 C,当它们发送到没有在同一个层次结构里包含这三个类的系统里时,会抛出关于缺少类的异常。

我们将在下一个版本里解决这个问题。
1089236 - AS 日子里的 JBoss Remoting 版本显示为 unknown

在这个 JBoss EAP 6 版本里,服务器日志里的 JBoss Remoting 版本显示为 (unknown)

这是 Remoting 系统日志里的一个程序错误,但它对性能没有任何影响。

我们期望在以后的版本里通过组件升级解决这个问题。

脚本和命令

1069252 - add-user.sh 在 cygwin 里无法使用

在这个 JBoss EAP 6 版本里,add-user.sh 脚本无法运行并抛出 IllegalStateException

当在 Cygwin 里执行 Java 进程时,因为没有可用的 java.io.Console,意味着没有 API 可以读取屏蔽的密码,从而出现了这个问题。

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

安全性

949737 - NegotiationAuthenticator valve 中断了会话复制

WEB-INF/web.xml 文件里启用了 NegotiationAuthenticator valve 的应用程序里的会话复制无法运行。 NegotiationAuthenticator valve 提供了自己的 setNext()getNext() 方法,它们没有正确地添加群集会话 Valve 到 JBossWeb 请求管道里。

我们正在调查这个问题。
1103684 - 无法在数据源间分享标识符安全域

当定义了同一个安全域支持的多个数据源时,这个版本的 JBoss EAP 6 的一个程序错误会导致 javax.resource.ResourceException: No matching credentials in Subject! 错误。

我们正在调查这个问题,期望在以后的版本里解决它。
1052644 - LdapExtLoginModule 无法找到自定义的 LDAP 套接字工厂

在这个 JBoss EAP 6 版本里,LdapExtLoginModule 没有设置 TCCL 为(可配置)JBoss 模块的类加载器。这个 JBoss 模块将包含一个自定义套接字工厂。

因此,LdapExtLoginModule 无法使用自定义的套接字工厂来创建到 LDAP 服务器的连接。当试图使用自定义套接字工厂和 LdapExtLoginModule 时会抛出 ClassNotFoundException

我们将在下一个版本里解决这个问题。
1097276 - 当获取连接时,MsSql 数据源抛出 IllegalStateException。

这个版本的 JBoss EAP 6 里的一个程序错误会导致在获取连接时 MySQL 数据源抛出 java.lang.IllegalStateException: This ticket is no longer valid

我们期望在下一个版本里解决这个问题。
979369 - 通过程序调用 login() 时 HttpSession 的创建具有不同的行为

我们发现当使用程序登录时 HttpSession 的创建行为会不一致:
  • 不使用 SSO:调用 login() 方法时不会创建会话 - 也就是随后的请求无法被验证;
  • 使用非群集的 SSO:调用 login() 方法时会创建会话,但第一次调用不会设置验证状态 - 也就是随后的请求无法被验证;用户在第二次调用 login() 方法后被验证,因为会话已经存在了。
  • 使用群集的 SSO:调用 login() 方法时会创建会话,且随后的请求会被验证。

我们正在调查这种行为不一致的原因。目前还没有变通方法。
1069326 - 需要 login/logout 审计事件

域管理请求是使用 stageless 协议来处理的。对于 HTTP,每次请求都会进行验证。对于原生验证,它是在连接建立时发生的。但是这里没有已验证的会话

因为没有已验证的会话loginlogout 事件无法被审计。相反,当从用户接收操作时,审计消息被登记。

事务管理者

1124861 - 用 CMR 进行恢复时出现问题,虽然恢复正常但会依赖于 orphan 检测。

在这个 JBoss EAP 6 里,如果服务器在两阶段提交的 prepare 阶段崩溃,而 Commit Markable Resource 是 XA 资源的一部分时,XA 资源不会按预期地立即回滚。资源将保留在这个状态,直至启动了 orphan 检测。

我们期望在下一个版本里解决这个问题。
1017256 - 恢复进行时计算的事务统计不正确

这个版本的 JBoss EAP 6 里的一个程序错误会导致当处理有疑问的 prepared 事务时,如果使用了恢复,错误的事务统计信息将被显示。

在服务器崩溃前,以及在服务器重启后当恢复操作修复了有疑问的状态时,已处理的事务总数会不正确地增加。在这些情况下,事务会被统计两次。

我们正在调查这个问题,期望在以后的版本里解决它。
1077156 - 服务器绑定到 ::1 时无法在 IPv6 上启动 XST 事务

在这个 JBoss EAP 6 版本里,服务器绑定到地址 ::1 时无法在 IPv6 上启动 XST 事务。这是因为地址的一部分必须包裹在方括号里:如 [::1]

我们期望在下一个版本里解决这个问题。
1113225 - CMR: 在崩溃后 TX 日志没有显示参与者

这个版本的 JBoss EAP 6 的一个程序错误会阻止在崩溃后在 TX 日志里显示参与者。

如果服务器在 CommitMarkableResourceRecord.commit 方法退出后崩溃(且在重启过程中定期恢复暂停),TX 日志将不会显示参与者。

我们正在调查这个问题。

Web

1076439 - IBM 1.7 JDK 上的重载操作期间 NIO2 连接器没有正确地重载

如果这个版本的 JBoss EAP 6 在 IBM JDK 1.7 上启动并试图重载服务器,下列错误信息将出现在日志里。
ERROR [org.apache.coyote.http11.Http11NioProtocol] (MSC service thread 1-6) JBWEB003043: Error initializing endpoint: java.net.BindException: Address already in use

这个错误是由于 IBM JDK 里的一个问题引起的,它导致 NIO2 连接器没有正确重载,而原来的连接器继续运行。要绕过这个问题,请使用不同的连接器(注意每个连接器都有自己的功能)或不同的 JDK。

我们期望在下一个版本里解决这个问题。
918130 - JBossWeb 连接器在应用程序部署完成前启动

我们发现 JBossWeb 连接器在启动时有一个时机问题,连接器会在应用程序程序完全部署之前启动并接受请求,通过负载平衡器或直接连至 JBoss EAP 的客户连接会返回 404 消息。这个问题影响 JBoss EAP 6.0.1 和更高的版本。目前还没有变通方法,我们仍在调查这个问题。

Web 控制台

1017655 - Web services 配置检验出错

在这个 JBoss EAP 6 版本里,Web 控制台不会拒绝使用 > Web > 配置集的 Web Services 里的 WSDL HostWSDL PortWSDL Secure Port 的无效值。

一些无效值会导致错误信息,而另外一些则被忽略且不会显示错误信息。这些无效值都没有保存在配置里。

我们将在下一个版本里解决这个问题。
1051991 - 管理控制台上没有显示 JMS 目的地的统计信息

这个 JBoss EAP 6 版本里的一个程序错误会阻止管理控制台显示 JMS 目的地的正确数量。数量总是显示为 0

我们期望在下一个版本里解决这个问题。
1027586 - RBAC: Web 控制台对应用程序资源的控制过于粗颗粒度

在这个 JBoss EAP 6 版本里,当资源被定义为应用程序资源时,控制台可能不会体现这种定义。这是因为控制台经常在一个视图下对几个资源进行分组。如果相关的资源是可写的,视图里的控件就是可用的。然而,如果其中的任何资源被配置为应用程序资源,相关的控件会保持为禁用的。

目前的变通方法是,如果可能的话,配置所有和子系统相关联的资源类型为应用程序资源。
1029851 - 管理控制台 - 即使在取消部署文件的上传后,其内容仍会被添加到 data 目录。

这是本 JBoss EAP 6 版本里的一个已知问题,它导致即使用户取消的文件的上传,这个文件仍会通过管理部署屏幕上传成功。

取消操作会导致上传的文件被添加到 data 目录,但也会阻止其添加为 domain.xml 文件的部署。这意味着文件无法通过 CLI 或 Web 管理界面进行删除。

我们将在下一个版本里解决这个问题。
1026823 - 提供可靠的方法来清除 "Run as" 对话框设置的 "ROLE" 头部

在这个 JBoss EAP 6 版本里,当 Superuser 代替其他用户(通过 Run As... 链接)运行时,它们的角色在动作结束后没有重置。

变通方法是关闭浏览器窗口(而不只是活动的标签页)并重新访问 Web 控制台。我们将在下一个版本里解决这个问题。
1014048 - RBAC: 在域模式下登出后再登录不会正确清除 UI

在某些情况下,当登出 Web 控制台时,在登录另外一个用户前控制台将部分地刷新。这会导致“混合”的屏幕内容,有些区域好像还是旧用户登录,而另外一些区域则是新用户登录的样子。

这个问题不是一个安全隐患,不会泄露敏感数据。

变通方法是关闭浏览器窗口(不仅仅是活动的标签页)并以新的用户登录。

Web Services

1111046 - 具有 WS-Security Policy Signature 配置集的端点抛出 SOAP Fault 时返回空的响应

本版本的 JBoss EAP 6 有一个程序错误,它导致在 WSDL 里具有 WS-Security Policy Signature 配置集的 Web 服务返回长度为零的空的 HTTP 响应,且抛出 SOAP Fault 而不是返回实际的 SOAP Fault。

这个问题只有在使用 Signature 策略时才会出现。

我们期望在下一个版本里解决这个问题。
1079049 - @SchemaValidation 和 wsrm 1.1 一起使用时出现问题

如果客户发送引用 CreateSequence 的 WS-RM 1.1 消息到利用 WS-RM 和 schema 检验的端点,应用程序将抛出下列错误:
Unmarshalling Error: cvc-elt.1: Cannot find the declaration of element 'CreateSequence'.

org.apache.xerces.impl.xs.XMLSchemaLoader 里的 fGrammerPool 里未找到 CreateSequence,因为 CXF 和 JBossWS 还未完全支持 WS-RM 1.1。
1074368 - 从 exception 类生成的 Schema 无法识别 @XmlElement 注解

我们在这个 JBoss EAP 6 版本里找到一个程序错误,从 exception 类生成的 Schema 无法识别 @XmlElement 注解。我们将在以后的版本里解决这个问题。
1103847 - 当使用注解且没有独立的 Java 接口时 Java First WS-Policy 复制了 PolicyReferences 元素

JBoss EAP 6 附带的 CXF 组件里的一个程序错误导致了在使用 Java First WS-Policy 注解(如 @Policies)时 PolicyReferences 被复制。这使得在没有独立的 Java 接口时 WSDL 生成多个 PolicyReference 元素。

我们期望在下一个版本里解决这个问题。
1121223 - [CXF-5892] 确保 EncryptedKey 元素引用它前面的 BinarySecurityToken

在这个JBoss EAP 6 版本里,当 WSS 时间戳没有包含在 SOAP 消息里时,CXF 将 EncryptedKey 元素引用的 BinarySecurityToken 放在 EncryptedKey 元素之后。

这可能导致期望 EncryptedKey 引用的 BinarySecurityToken 在EncryptedKey 元素之上的接收者执行失败,因为当他们在处理 EncryptedKey 元素时试图查找 BinarySecurityToken 但没有处理它。

我们期望在下一个版本里解决这个问题。
1115215 - CXF-5679, CXF-5724 - WS-S 在升级后失败并抛出异常 org.apache.ws.security.WSSecurityException: The signature or decryption was invalid

CXF 2.7.10 里引入的 regression 运行失败,错误信息为:org.apache.ws.security.WSSecurityException: The signature or decryption was invalid

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

mod_cluster

1085427 - StickySessions 无法用于未启用上下文的 ProxyPass

本版本 JBoss EAP 6 的一个程序错误阻止了 StickySession 用于未启用上下文的 StickySession。我们期望在下一个版本里解决这个问题。
1044879 - 如果 Balancer 名称包含了大写字母,modcluster 不会保留 sticky sessions。

负载平衡器命名如果使用了大写字母,JBoss EAP 6 里的一个问题会阻止 modcluster 模块保留 sticky session。

这个问题导致特定会话的请求被导向到不同的节点,而不是服务该会话的第一个请求的节点。

这是因为 JBoss EAP 6 不支持负载平衡器名称使用大写字母,因为其名称和 URL 里的主机名类似。

如果模块里的所有负载平衡器名称都使用小些字母,则 modcluster 模块可以保留 Sticky Session。
900047 - Linux/Unix 上的 SystemMemoryUsageLoadMetric 不正确

SystemMemoryUsageLoadMetric 在 Linux 或 Unix 操作系统上没有显示有用的信息。对于这些系统,HeapMemoryUsageLoadMetric 提供了更多有用的信息。这个问题的解决方案是修改 SystemMemoryUsageLoadMetric 的算法,从 used 数目里减去 buffers/cache 数目。我们仍在研究最佳的实现办法。

Apache 服务器 (httpd) 和连接器

1125829 - 在 PPC64 架构的 RHEL6、RHEL7 上缺失了 HTTP 模块 mod_snmp

这个 JBoss EAP 6 版本没有为 PPC64 平台(RHEL6、RHEL7)提供 mod_snmp 库。
900620 - 如果使用 UAC 则不会加载 APR natives(Windows Server 2008 R2)

在 Windows 服务器上,如果启用了 UAC 则无法加载 Apache portable runtime (APR) 库。在安装了这些库后,管理员用户需要右击 JBoss 目录,并在 Properties -> Security 标签页里设置 "Full control" 为 "Allow"。这将纠正 UAC 的访问权限。
1125833 - RHEL7-x86_64 平台的 ZIP 里缺失了 snmpd.conf.sample

RHEL 7 x86_64 里的 Apache HTTP Server zip 归档里缺失了 snmpd.conf.sample

变通方法是从 https://bugzilla.redhat.com/show_bug.cgi?id=1125833 里的附件下载缺失的 snmpd.conf.sample
1122799 - postinstall 脚本没有更新 mod_snmp.conf.sample 里的路径

这是本版本里的一个程序错误,postinstall 脚本没有更新mod_snmp.conf.sample 里的路径。

安装后,路径仍然包含了 installroot 变量:
SNMPConf "@installroot@/etc/httpd/conf.d/snmpd"

变通方法是手动修改 mod_snmp.conf.sample 文件。

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

Apache 服务器 (httpd) 和连接器、文档

900580 - httpd: libaprutil-1.so.0: 文件太短

Red Hat 企业版 Linux 里的 JBoss EAP 或 JBoss 企业级 Web Server 并没有附带 Apache portable runtime (APR) 库。我们使用 Symlink 来引用基本的 Red Hat 企业版 Linux 库。如果没有安装下列软件包而又试图使用 APR 库时会导致 symlink 无法解析:apr, apr-util, apr-devel, apr-util-devel

以后的 Red Hat 企业版 Linux APR 更新里会修复这个问题。

CDI/Weld,EJB

971679 - 当卸载已经初始化 Interval EJB Timer 的应用程序时会出现问题

当关闭部署了使用 EJB Interval Timer 的 EAP 实例时,在包含 "Formatting error" 或 "Error invoking timeout for timer" 的服务器日志有时候会出现 IllegalStateExceptionEJBComponentUnavailableException

这个问题的出现是因为 JBoss EAP 6 在关闭时不会等待所有的请求完成。

这个问题目前还没有解决办法,但是它并不会对产品有任何负面影响。

EE,EJB

1114061 - ejb-jar.xml 的 interceptor-binding 不接受 "*"

在本版本的 JBoss EAP 6,由于过于严格的检查,默认的 EJB 拦截器要求 interceptors 定义以及声明作为 assembly-descriptor 的一部分。

EJB,Naming

923836 - 在 IBM JDK 里 remote:// protocol 无法使用 SSL 运行

这是本 JBoss EAP 6 的一个已知问题,在 IBM JDK 上远程命名查找会间歇性地失败并抛出下列异常:
org.jboss.remoting3.NotOpenException: Endpoint is not open.

当客户使用 IBM JDK 时会出现这个问题。当服务器使用 IBM JDK 但客户使用 JDK 时,这个问题则不会出现。

我们正在寻求解决这个问题的方案。
1069591 - 当查找远程队列时看到 ERROR: remote lookup Channel end notification received, closing channel Channel ID

当在 EJB 里的远程队列上执行查找时,虽然操作执行成功,但在上下文关闭后会显示下列错误:
Channel end notification received, closing channel Channel ID b8e969d6 (outbound) of Remoting connection 4970f4db to DEVPC016970/10.23.132.245:5301

这个问题将在以后的更新解决。

EJB、Transaction Manager

952746 - 修复在调用远程 EJB 资源时事务恢复操作失败的问题

在这个版本的 JBoss EAP 6 里,如果调用了可能已经崩溃的远程 EJB 资源,事务恢复操作可能会失败。

这是由于服务器和客户间的连接断开了(特别是当客户崩溃且重启),服务器和客户将不会彼此自动通讯。

在这种情况下,服务器无法知道客户已经重启,意味着 EJB 的事务恢复过程也无法知道要与哪个 EJB 节点通讯。

我们正在调查这个问题并寻求解决方案。

对 IPv6 的支持

900564 - 日志条目里的 IPv6 地址格式错误

IPv6 地址应该用方括号("[" 和 "]")格式化,如 http://[2620:52:0:105f::ffff:2]:9990。JBoss EAP 6 的日志文件里缺失了这些括号。我们会在以后的版本里解决这个问题。
900609 - 当 Windows 服务器绑定 IPv6 时,IPv4 套接字仍会被打开。

如果JBoss EAP 6 在 Windows 服务器上启动时禁用了 IPv4 栈并启用了 IPv6 栈,IPv4 套接字仍会被打开。我们仍在调查这个问题。

Security,Web

952518 - Servlet 里 init() 和 destroy() 方法方法未使用 run-as

JBoss EAP 6 里存在一个问题,run-as 标识符未用于 Servlet.init(),这和 Java Servlet 2.4 规格是矛盾的。

这是因为与 JBoss EAP 6 5 一样,JBoss EAP 6 里不存在 RunAsListener 引起的。

要绕过这个问题,请在 servlet 的 init() 方法里建立一个调用被保护的 EJB 的安全上下文。这可以用《JBoss Security FAQ》的 A10 和 A23 里描述的方法来完成: https://community.jboss.org/wiki/SecurityFAQ

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

Web Console - UX

1016546 - RBAC: [可用性] 尝试配置 Auditor 角色为 Administrator 时显示不清楚的错误消息

在这个 JBoss EAP 6 版本里,如果用户试图执行他们并没有权限执行的操作,他们会看到下列错误信息:

You don't have the permissions to access this resource!

这样的信息会让用户感到困惑,因为他们只是执行某个操作,而不是访问某个资源。在以后的版本里我们会修改这个错误信息。

XML 框架

1065128 - 处理大型文本节点时出现性能问题

我们在这个版本的 JBoss EAP 6 里发现了一个程序错误,当试图用 Xalan Transformer 转换大型文本节点它会导致性能问题。在使用 Transformer 来转换 StreamSource 为 DOMResult 时,Transformer 的性能会随着字符数据的大小增加而降低。这是一个已知的问题,我们将在以后的版本里解决。

doc-Release_Notes,JCA,JMS

1002518 - 对于非事务性的操作,通用资源适配器不允许使用 TIBCO EMS 的 XAConnectionFactory 实例。

在这个版本的 JBoss EAP 6 里,当事务上下文里创建会话时(如 connection.createSession(false,0);),IllegalArgumentException 将被抛出。

这是因为通用的 RA 不会忽略传递到 createSession 的参数,其中第一个设置会话为非事务性的,而第二个设置为事务模式。

要避免这个问题,请创建一个带事务的会话:connection.createSession(true,0);