繁体   English   中英

在以下过程中发生内部错误:“JBoss 工具项目验证器”

[英]An internal error occurred during: "JBoss Tools Project Validator"

我正在使用Eclipse Kepler Service Release 2,因为我在使用JBoss Tools Project Validator大约一周后遇到了问题。 清理项目时会发生此问题。

查看日志,它看起来像一个循环依赖:

java.lang.StackOverflowError at org.eclipse.jdt.internal.core.SourceType.getPackageFragment(SourceType.java:427) at org.eclipse.jdt.internal.core.NamedMember.getFullyQualifiedName(NamedMember.java:183) at org. eclipse.jdt.internal.core.SourceType.getFullyQualifiedName(SourceType.java:272) at org.eclipse.jdt.internal.core.SourceType.getFullyQualifiedName(SourceType.java:265) at org.jboss.tools.common.java。 ParametedType.equals(ParametedType.java:161) at org.jboss.tools.common.java.ParametedType.isAssignableTo(ParametedType.java:380) at org.jboss.tools.common.java.ParametedType.areTypeParametersAssignableTo(ParametedType.java: 430) 在 org.jboss.tools.common.java.ParametedType.isAssignableTo(ParametedType.java:398) 在 org.jboss.tools.common.java.ParametedType.isAssignableTo(ParametedType.java:402) 在 org.jboss.tools .common.java.ParametedType.areTypeParametersAssignableTo(ParametedType.java:430) at org.jboss.tools.common.java.ParametedType.isAssignableTo(ParametedType.java:398) at org.jboss.t 位于 org.jboss.tools.common.java.ParametedType.areTypeParametersAssignableTo(ParametedType.java:430) 的 ools.common.java.ParametedType.isAssignableTo(ParametedType.java:402) 位于 org.jboss.tools.common.java.ParametedType。 isAssignableTo(ParametedType.java:398) at org.jboss.tools.common.java.ParametedType.isAssignableTo(ParametedType.java:402) at org.jboss.tools.common.java.ParametedType.areTypeParametersAssignableTo(ParametedType.java:430)在 org.jboss.tools.common.java.ParametedType.isAssignableTo(ParametedType.java:398) 在 org.jboss.tools.common.java.ParametedType.isAssignableTo(ParametedType.java:402)ava.lang.StackOverflowError 在 org. eclipse.jdt.internal.core.SourceType.getPackageFragment(SourceType.java:427) at org.eclipse.jdt.internal.core.NamedMember.getFullyQualifiedName(NamedMember.java:183) at org.eclipse.jdt.internal.core。 SourceType.getFullyQualifiedName(SourceType.java:272) at org.eclipse.jdt.internal.core.SourceType.getFullyQualifiedName(SourceType.java:265) at org.jboss.tools.com mon.java.ParametedType.equals(ParametedType.java:161) 在 org.jboss.tools.common.java.ParametedType.isAssignableTo(ParametedType.java:380) 在 org.jboss.tools.common.java.ParametedType.areTypeParametersAssignableTo( ParametedType.java:430) at org.jboss.tools.common.java.ParametedType.isAssignableTo(ParametedType.java:398) at org.jboss.tools.common.java.ParametedType.isAssignableTo(ParametedType.java:402) at org .jboss.tools.common.java.ParametedType.areTypeParametersAssignableTo(ParametedType.java:430) 在 org.jboss.tools.common.java.ParametedType.isAssignableTo(ParametedType.java:398) 在 org.jboss.tools.common.java .ParametedType.isAssignableTo(ParametedType.java:402) ...

在日志文件的末尾:

在 org.jboss.tools.cdi.internal.core.impl.CDIProject.containsType(CDIProject.java:498) 在 org.jboss.tools.cdi.internal.core.impl.CDIProject.getBeans(CDIProject.java:383)在 org.jboss.tools.cdi.internal.core.validation.CDICoreValidator.validateInjectionPoint(CDICoreValidator.java:1805) 在 org.jboss.tools.cdi.internal.core.validation.CDICoreValidator.validateBean(CDICoreValidator.java:742)在 org.jboss.tools.cdi.internal.core.validation.CDICoreValidator.validateResource(CDICoreValidator.java:611) 在 org.jboss.tools.cdi.internal.core.validation.CDICoreValidator.validateAll(CDICoreValidator.java:511)在 org.jboss.tools.common.validation.ValidatorManager.validateAll(ValidatorManager.java:132) 在 org.jboss.tools.common.validation.ValidatorManager.validateInJob(ValidatorManager.java:84) 在 org.eclipse.wst.validation .internal.operations.ValidatorJob.run(ValidatorJob.java:78) 在 org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)

不幸的是,我在我的 xhtml 页面或 Java 类中找不到任何循环依赖。 知道如何解决这个问题吗?

在 Viacheslav Kabanovich 的回复之后,我可以找到某事。 像这样,我无法想象这是问题所在......在我的情况下,代码中有很多这样的星座......而且这也不完全是他的意思......

@Named
public class A extends B<Y,Z> implements Serializable
{
private static final long serialVersionUID = 4283839282383928L;
@Inject
private transient C<Y,Z> c;
....

}

我用这个假豆重现了这个问题:

public class A<V extends A.B> {

    static class B extends A<V> {       
    }

    @Inject
    A<V> s2; 
}

我想看看“现实生活”中的一个例子。 您能否在您的代码中找到一个将参数类型设置为变量的注入并将其与可分配给它的 bean 类的类型声明一起发布在这里?

无论如何,这是一个需要我们修复的错误。

11 月 19 日添加:我创建了问题https://issues.jboss.org/browse/JBIDE-21036和我能找到的固定案例。 请在涉及类型参数的问题案例中添加评论。 定义集应该是完整的,例如请在您的示例中添加 B 和 C 类型的 B 和 C 声明,如果它们扩展其他类型并声明带边界的类型参数,则需要声明所有涉及的类型。

尝试更新到 Eclipse Mars + JBoss Tools 4.3.0。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM