2015-10-23 26 views
2

我使用Eclipse的開普勒服務版本2因爲大約一個星期我遇到JBoss的工具項目審定問題。清理項目時發生問題。內部錯誤:「JBoss的工具項目審定」

望着日誌,它看起來像一個循環依賴:

java.lang.StackOverflowError的在org.eclipse.jdt.internal.core.SourceType.getPackageFragment(SourceType.java:427) 在 org.eclipse.jdt.internal.core.NamedMember.getFullyQualifiedName(NamedMember.java:183) 在 org.eclipse.jdt.internal.core.SourceType.getFullyQualifiedName(SourceType.java:272) 在 有機eclipse.jdt.internal.core.SourceType.getFullyQualifiedName(SourceType.java:265) at 個org.jboss.tools.common.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) 在 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) 在 org.jboss.tools.common.java.ParametedType .isAssignableTo(P arametedType.java:398) 在 org.jboss.tools.common.java.ParametedType.isAssignableTo(ParametedType.java:402) 在 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) 在 org.jboss.tools.common.java.ParametedType.isAssignableTo(ParametedType.java:398) 在(org.eclipse.jdt.internal.core.SourceType.getPackageFragment(SourceType.java:427) 在 org.eclipse.jdt.internal.core.NamedMember.getFullyQualifiedName(NamedMember.java:183) 在 org.eclipse.jdt.internal.core.SourceType.getFullyQualifiedName(SourceType.java:272) 在 有機eclipse.jdt.internal.core.SourceType.getFullyQualifiedName(SourceType.java:265) 在 org.jboss.tools.common.java.ParametedType.equals(ParametedType.java:161) 在 org.jboss.tools。 common.java.ParametedType.isAssignableTo(帕拉metedType.java:380) 在 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) 在 組織。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) 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) 在 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) 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)

Unfortuantely我無法找到我的XHTML頁面或Java類的任何自行車扶養。任何想法如何解決這個問題?

從Viacheslav Kabanovich回覆後,我可以找到某事。這樣,我無法想象是問題...在我的情況有這個星座的碼堆......也實在是不exactely他指的是組合...

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

}

回答

1

我轉載此假綠豆的問題:

public class A<V extends A.B> { 

    static class B extends A<V> {  
    } 

    @Inject 
    A<V> s2; 
} 

我想看到從「現實生活」的例子。你可以在你的代碼中找到一個注入,它將一個參數類型設置爲一個變量,並在此處使用可分配給它的類的類型聲明?

無論如何,這是我們修復的一個錯誤。

11月19日添加: 我創建了問題https://issues.jboss.org/browse/JBIDE-21036和我能找到的固定案例。 請在涉及類型參數的問題案例中添加註釋。定義的集合應該是完整的,例如,請在您的示例中添加B和C類型的B和C聲明,如果它們擴展了其他類型並聲明帶有邊界的類型參數,則需要聲明所有相關類型的聲明。

+0

我看了一下,但很難找到該項目由數百個類組成......第一次快速掃描只是透露了我上面編輯的一個... – Fendrix

+0

有沒有辦法找到導致此問題的類? – Fendrix

+0

我現在非常確定上面的代碼導致了這個問題......當我刪除注入的參數類型變量時,這個類的驗證完成而沒有警告.... – Fendrix

0

嘗試更新到Eclipse Mars + JBoss Tools 4.3.0。