eclipse eclipse-juno call-hierarchy

Eclipse IDE-Abrir jerarquía de llamadas está vacío/roto



eclipse-juno call-hierarchy (8)

¿Qué debo hacer si la "Jerarquía de llamada abierta" está rota (vacía para cada método en un proyecto)? Es muy útil para la navegación de código, no sé, cómo trabajar sin él!


Además, puedes intentar eliminar el área de trabajo y recrearla. Asegúrese de que todos sus proyectos están respaldados.


En mi caso parecía que mi espacio de trabajo estaba contaminado.

Abrir / cerrar proyectos y comenzar con limpio no se solucionó. Tuve que empezar un nuevo espacio de trabajo.

Fedora 20, Eclipse Kepler.


En mi caso, estaba tratando de obtener la jerarquía de llamadas de un método en la clase derivada de una clase abstracta. El método solicitado fue declarado abstracto en la clase base. Cuando abrí la jerarquía de llamadas directamente en el método abstracto en lugar del implementado, todo funcionó bien. (Eclipse Neon).


Lo siguiente puede ayudar:

  • Llamar a eclise con eclipse.exe -clean -refresh obliga a Eclipse a reconstruir el índice. Después de eso la función volvió a funcionar.
  • Cierre y reapertura del proyecto.

Mi problema era que la jerarquía de llamadas abiertas estaba buscando solo el proyecto, no todo el espacio de trabajo. Así que tuve que hacer clic en la pequeña flecha hacia abajo (en la ventana de vista de Jerarquía de llamadas a la derecha; es la flecha "Ver menú", un triángulo que apunta hacia abajo) en la vista de Jerarquía de llamadas, configurar el Ámbito de búsqueda> Espacio de trabajo.


Para Kepler y PDT (PHP IDE) se rompe en al menos PDT 3.2.0 y 3.3.0 (probé ambos). La solución está en 3.3.1 y actualizar a eso fue todo lo que tuve que hacer para que la jerarquía de llamadas volviera a funcionar.

(disculpas, aún no tengo permiso para agregar comentarios, sin embargo, esto debería ser útil para muchos)


También probé las sugerencias anteriores, así como la sugerencia que se proporciona aquí: http://mschrag.blogspot.co.at/2009/01/open-type-cant-find-your-class.html

Nada funcionó hasta hoy, cuando descubrí que soy un burro ... Una vez configuré un filtro en la vista "Jerarquía de llamadas" y, por lo tanto, no se mostraron entradas porque se eliminaron. Una vez que quité / desactivé el filtro todo funcionó bien otra vez.


Tengo el mismo comportamiento con el eclipse Kepler (4.3.2).

Descubrí que hay un error con los métodos con la firma de:

void get(Object o) Object get(Object o)

En la vista de registro de errores de Eclipse encuentro la siguiente excepción:

java.lang.NullPointerException at org.eclipse.jdt.internal.core.search.matching.ClasspathSourceDirectory.directoryTable(ClasspathSourceDirectory.java:52) at org.eclipse.jdt.internal.core.search.matching.ClasspathSourceDirectory.findClass(ClasspathSourceDirectory.java:109) at org.eclipse.jdt.internal.core.search.matching.JavaSearchNameEnvironment.findClass(JavaSearchNameEnvironment.java:146) at org.eclipse.jdt.internal.core.search.matching.JavaSearchNameEnvironment.findType(JavaSearchNameEnvironment.java:185) at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:145) at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:197) at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage(Scope.java:2799) at org.eclipse.jdt.internal.compiler.lookup.Scope.getType(Scope.java:2556) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.getType(MatchLocator.java:899) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.getMethodBinding0(MatchLocator.java:955) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.getMethodBinding(MatchLocator.java:907) at org.eclipse.jdt.internal.core.search.matching.MethodLocator.matchMethod(MethodLocator.java:327) at org.eclipse.jdt.internal.core.search.matching.MethodLocator.resolveLevel(MethodLocator.java:664) at org.eclipse.jdt.internal.core.search.matching.ClassFileMatchLocator.locateMatches(ClassFileMatchLocator.java:209) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.process(MatchLocator.java:1699) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1143) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1184) at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1301) at org.eclipse.jdt.internal.core.search.JavaSearchParticipant.locateMatches(JavaSearchParticipant.java:95) at org.eclipse.jdt.internal.core.search.BasicSearchEngine.findMatches(BasicSearchEngine.java:231) at org.eclipse.jdt.internal.core.search.BasicSearchEngine.search(BasicSearchEngine.java:515) at org.eclipse.jdt.core.search.SearchEngine.search(SearchEngine.java:584) at org.eclipse.jdt.internal.corext.callhierarchy.CallerMethodWrapper.findChildren(CallerMethodWrapper.java:155) at org.eclipse.jdt.internal.corext.callhierarchy.MethodWrapper.performSearch(MethodWrapper.java:301) at org.eclipse.jdt.internal.corext.callhierarchy.MethodWrapper.doFindChildren(MethodWrapper.java:232) at org.eclipse.jdt.internal.corext.callhierarchy.MethodWrapper.getCalls(MethodWrapper.java:84) at org.eclipse.jdt.internal.ui.callhierarchy.DeferredMethodWrapper.getCalls(DeferredMethodWrapper.java:65) at org.eclipse.jdt.internal.ui.callhierarchy.DeferredMethodWrapper.fetchDeferredChildren(DeferredMethodWrapper.java:79) at org.eclipse.ui.progress.DeferredTreeContentManager$1.run(DeferredTreeContentManager.java:235) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)

Al final, parece un error en esta versión:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=401272

Supongo que la actualización al menos a la versión 4.4 (Luna) resolverá este problema.