gpt4 book ai didi

java - : "JBoss Tools Project Validator" 期间发生内部错误

转载 作者:行者123 更新时间:2023-11-30 10:55:36 25 4
gpt4 key购买 nike

我使用 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) 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) 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) 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) at org.jboss.tools.common.java.ParametedType.isAssignableTo(ParametedType.java:398) at org.jboss.tools.common.java.ParametedType.isAssignableTo(ParametedType.java:402)ava.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) 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) 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.cdi.internal.core.impl.CDIProject.containsType(CDIProject.java:498) at org.jboss.tools.cdi.internal.core.impl.CDIProject.getBeans(CDIProject.java:383) at org.jboss.tools.cdi.internal.core.validation.CDICoreValidator.validateInjectionPoint(CDICoreValidator.java:1805) at org.jboss.tools.cdi.internal.core.validation.CDICoreValidator.validateBean(CDICoreValidator.java:742) at org.jboss.tools.cdi.internal.core.validation.CDICoreValidator.validateResource(CDICoreValidator.java:611) at org.jboss.tools.cdi.internal.core.validation.CDICoreValidator.validateAll(CDICoreValidator.java:511) at org.jboss.tools.common.validation.ValidatorManager.validateAll(ValidatorManager.java:132) at org.jboss.tools.common.validation.ValidatorManager.validateInJob(ValidatorManager.java:84) at org.eclipse.wst.validation.internal.operations.ValidatorJob.run(ValidatorJob.java:78) at 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;
....

最佳答案

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

public class A<V extends A.B> {

static class B extends A<V> {
}

@Inject
A<V> s2;
}

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

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

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

关于java - : "JBoss Tools Project Validator" 期间发生内部错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33301776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com