Eclipse(Kepler)工作空间行为怪异(类型层次结构,搜索引用不起作用)

时间:2013-12-19 12:14:52

标签: java eclipse eclipse-kepler

使用Eclipse Kepler在Windows 7(64位)上运行,我的工作空间表现得很奇怪。

以下内容不起作用(工作区范围):

  • 类/方法的类型层次结构显示为空
  • 搜索参考资料

试过

  • 重建/清洁/关闭&开放项目
  • 重启Eclipse
  • 重新启动
  • 以清洁模式启动Eclipse(-clean)
  • 手动清除索引

到目前为止已经工作的唯一事情是切换到新的工作区并检查我的一个项目。但是,这非常不理想,因为我在当前工作区中有一定数量的项目和设置。

编辑 - 堆栈跟踪

当我在Type Hierarchy视图中专门“Focus On”时,我得到以下堆栈跟踪:

!ENTRY org.eclipse.core.jobs 4 2 2013-12-19 15:08:39.156
!MESSAGE An internal error occurred during: "Computing type hierarchy of 'String - java.lang'...".
!STACK 0
java.lang.NullPointerException
    at org.eclipse.core.runtime.Path.<init>(Path.java:183)
    at org.eclipse.core.internal.resources.WorkspaceRoot.getProject(WorkspaceRoot.java:182)
    at org.eclipse.jdt.internal.core.JavaModel.getJavaProject(JavaModel.java:189)
    at org.eclipse.jdt.internal.core.search.IndexSelector.getJavaProject(IndexSelector.java:286)
    at org.eclipse.jdt.internal.core.search.IndexSelector.initializeIndexLocations(IndexSelector.java:217)
    at org.eclipse.jdt.internal.core.search.IndexSelector.getIndexLocations(IndexSelector.java:276)
    at org.eclipse.jdt.internal.core.search.JavaSearchParticipant.selectIndexURLs(JavaSearchParticipant.java:121)
    at org.eclipse.jdt.internal.core.search.PatternSearchJob.getIndexes(PatternSearchJob.java:84)
    at org.eclipse.jdt.internal.core.search.SubTypeSearchJob.getIndexes(SubTypeSearchJob.java:33)
    at org.eclipse.jdt.internal.core.search.PatternSearchJob.ensureReadyToRun(PatternSearchJob.java:52)
    at org.eclipse.jdt.internal.core.search.processing.JobManager.performConcurrentJob(JobManager.java:174)
    at org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.searchAllPossibleSubTypes(IndexBasedHierarchyBuilder.java:523)
    at org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.determinePossibleSubTypes(IndexBasedHierarchyBuilder.java:406)
    at org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.build(IndexBasedHierarchyBuilder.java:120)
    at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.compute(TypeHierarchy.java:300)
    at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.refresh(TypeHierarchy.java:1267)
    at org.eclipse.jdt.internal.core.CreateTypeHierarchyOperation.executeOperation(CreateTypeHierarchyOperation.java:90)
    at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)
    at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:788)
    at org.eclipse.jdt.internal.core.BinaryType.newTypeHierarchy(BinaryType.java:918)
    at org.eclipse.jdt.internal.core.BinaryType.newTypeHierarchy(BinaryType.java:876)
    at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle.createTypeHierarchy(TypeHierarchyLifeCycle.java:299)
    at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle.doHierarchyRefresh(TypeHierarchyLifeCycle.java:330)
    at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle.doHierarchyRefreshBackground(TypeHierarchyLifeCycle.java:271)
    at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle$2.run(TypeHierarchyLifeCycle.java:224)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)

任何?

1 个答案:

答案 0 :(得分:1)

发现问题。

出于某种原因,我的一个项目有一个腐败的资源。它没有显示在包树中,但它确实在Eclipse的错误日志中显示为

  

为外部文件夹X创建链接时出错:\ somefolder

在检查每个项目之后(因为错误没有指向一个),我确实在其中一个构建路径中找到了这个资源(在Configure Build Path菜单中它确实显示了一个错误图标!)并将其删除。

现在,一切都恢复了!

感谢大家的回复/评论。将此问题发布给遇到同样问题的未来开发人员。

获得的经验教训:(广泛地)检查Eclipse错误日志!