artur-shaik / vim-javacomplete2

DEPRECATED in favor of jc.nvim

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Autocompletion fails in subpackage

agis-theodoropoulos opened this issue · comments

Actual behavior

When using a Java type Foo in a subpackage of the package which contains Foo, autocompletion doesn't list the methods of Foo.

Expected behavior

Autocompletion on type Foo should list the methods of Foo, regardless of where the code which uses Foo is located.

The steps to reproduce actual behavior

  1. Define interface:
package abc.def.ghi;

public interface IFoo {

  void bar();
}

2a. Use interface in subfolder:

package abc.def.ghi.argh;

import abc.def.ghi.IFoo;

public class Main {

  public static void main(String[] args) {
  	IFoo f = (IFoo) null;

  	f.bar(); // <-- this is where autocompletion fails
  }
}

2b. Attempt to autocomplete lists methods of java.lang.Object only, i.e. method bar is not listed.
3a. Use interface, but not in subfolder!

package abc.def.ghi;

import abc.def.ghi.IFoo;

public class Main2 {

  public static void main(String[] args) {
  	IFoo f = (IFoo) null;

  	f.bar(); // <-- autocomplete works here
  }
}

3b. Autocompletion works as expected, i.e. method bar is listed.

Environment

  • OS: Ubuntu 18.04
  • Vim version: 8.2.1719
  • Neovim version: N/A

Q&A

  • No, I haven't tried minimal .vimrc configuraion.
  • Yes, I have enabled logs with JCdebugEnableLogs. Here is the content of JCdebugGetLogContent command:
    Failing case:
 13.130331 [context] context: CONTEXT_AFTER_DOT
 13.130424 [context] dot expression: f.
 13.130579 [complete] complete after dot. expr: f.
 13.132601 [collector] get declared class name for: "f"
 13.158600 [complete] F3. "f.|"  typename: "IFoo"
 13.158664 [collector] get class info. class: IFoo
 13.179213 [server] communicate: -E "abc.def.ghi.IFoo" [collector#FetchInfoFromServer]
 13.332389 [server] {'abc.def.ghi.IFoo':{'tag':'CLASSDEF','flags':'1','name':'abc.def.ghi.IFoo','classpath':'1','pos':[3,1],'endpos':[6,1],'fqn':'abc.def.ghi.IFoo','interface':'1','extends':[],'nested':[],'ctors':[{'m':'1','d':'public abc.def.ghi.IFoo()'},],'fields':[],'methods':[{'n':'bar','c':'void','m':'0','r':'void','d':'void bar()'},{'n':'finalize','c':'void','m':'100','r':'void','d':'protected void java.lang.Object.finalize() throws java.lang.Throwable'},{'n':'toString','c':'java.lang.String','m':'1','r':'java.lang.String','d':'public java.lang.String java.lang.Object.toString()'},{'n':'registerNatives','c':'void','m':'100001010','r':'void','d':'private static native void java.lang.Object.registerNatives()'},{'n':'clone','c':'java.lang.Object','m':'100000100','r':'java.lang.Object','d':'protected native java.lang.Object java.lang.Object.clone() throws java.lang.CloneNotSupportedException'},{'n':'notify','c':'void','m':'100010001','r':'void','d':'public final native void java.lang.Object.notify()'},{'n':'wait','c':'void','m':'10001','r':'void','p':['long','int',],'d':'public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException'},{'n':'wait','c':'void','m':'100010001','r':'void','p':['long',],'d':'public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException'},{'n':'wait','c':'void','m':'10001','r':'void','d':'public final void java.lang.Object.wait() throws java.lang.InterruptedException'},{'n':'getClass','c':'java.lang.Class<?>','m':'100010001','r':'java.lang.Class<?>','d':'public final native java.lang.Class<?> java.lang.Object.getClass()'},{'n':'hashCode','c':'int','m':'100000001','r':'int','d':'public native int java.lang.Object.hashCode()'},{'n':'equals','c':'boolean','m':'1','r':'boolean','p':['java.lang.Object',],'d':'public boolean java.lang.Object.equals(java.lang.Object)'},{'n':'notifyAll','c':'void','m':'100010001','r':'void','d':'public final native void java.lang.Object.notifyAll()'},],},'java.lang.Object':{'tag':'CLASSDEF','flags':'1','name':'java.lang.Object','classpath':'1','pos':[-1,-1],'endpos':[-1,-1],'fqn':'java.lang.Object','implements':[],'nested':[],'ctors':[{'m':'1','d':'public java.lang.Object()'},],'fields':[],'methods':[{'n':'finalize','c':'void','m':'100','r':'void','d':'protected void java.lang.Object.finalize() throws java.lang.Throwable'},{'n':'toString','c':'java.lang.String','m':'1','r':'java.lang.String','d':'public java.lang.String java.lang.Object.toString()'},{'n':'registerNatives','c':'void','m':'100001010','r':'void','d':'private static native void java.lang.Object.registerNatives()'},{'n':'clone','m':'100000100','r':'java.lang.Object','d':'protected native java.lang.Object java.lang.Object.clone() throws java.lang.CloneNotSupportedException'},{'n':'notify','c':'void','m':'100010001','r':'void','d':'public final native void java.lang.Object.notify()'},{'n':'wait','c':'void','m':'10001','r':'void','p':['long','int',],'d':'public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException'},{'n':'wait','c':'void','m':'100010001','r':'void','p':['long',],'d':'public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException'},{'n':'wait','c':'void','m':'10001','r':'void','d':'public final void java.lang.Object.wait() throws java.lang.InterruptedException'},{'n':'getClass','c':'java.lang.Class<?>','m':'100010001','r':'java.lang.Class<?>','d':'public final native java.lang.Class<?> java.lang.Object.getClass()'},{'n':'hashCode','c':'int','m':'100000001','r':'int','d':'public native int java.lang.Object.hashCode()'},{'n':'equals','c':'boolean','m':'1','r':'boolean','p':['java.lang.Object',],'d':'public boolean java.lang.Object.equals(java.lang.Object)'},{'n':'notifyAll','c':'void','m':'100010001','r':'void','d':'public final native void java.lang.Object.notifyAll()'},],},}
 13.334658 [complete] get member list. outputkind: 0
 13.334786 [complete] search member. name: , kind: 0, outputkind: 0
 13.348241 [complete] finish completion  0.222059s

Successful case:

18.944026 [context] context: CONTEXT_AFTER_DOT
18.944128 [context] dot expression: f.
18.944298 [complete] complete after dot. expr: f.
18.946498 [collector] get declared class name for: "f"
18.973286 [complete] F3. "f.|"  typename: "IFoo"
18.973352 [collector] get class info. class: IFoo
18.993527 [server] communicate: -E "abc.def.ghi.IFoo" [collector#FetchInfoFromServer]
19.142276 [server] {'abc.def.ghi.IFoo':{'tag':'CLASSDEF','flags':'1','name':'abc.def.ghi.IFoo','classpath':'1','pos':[3,1],'endpos':[6,1],'fqn':'abc.def.ghi.IFoo','interface':'1','extends':[],'nested':[],'ctors':[{'m':'1','d':'public abc.def.ghi.IFoo()'},],'fields':[],'methods':[{'n':'bar','c':'void','m':'0','r':'void','d':'void bar()'},{'n':'finalize','c':'void','m':'100','r':'void','d':'protected void java.lang.Object.finalize() throws java.lang.Throwable'},{'n':'toString','c':'java.lang.String','m':'1','r':'java.lang.String','d':'public java.lang.String java.lang.Object.toString()'},{'n':'registerNatives','c':'void','m':'100001010','r':'void','d':'private static native void java.lang.Object.registerNatives()'},{'n':'clone','c':'java.lang.Object','m':'100000100','r':'java.lang.Object','d':'protected native java.lang.Object java.lang.Object.clone() throws java.lang.CloneNotSupportedException'},{'n':'notify','c':'void','m':'100010001','r':'void','d':'public final native void java.lang.Object.notify()'},{'n':'wait','c':'void','m':'10001','r':'void','p':['long','int',],'d':'public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException'},{'n':'wait','c':'void','m':'100010001','r':'void','p':['long',],'d':'public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException'},{'n':'wait','c':'void','m':'10001','r':'void','d':'public final void java.lang.Object.wait() throws java.lang.InterruptedException'},{'n':'getClass','c':'java.lang.Class<?>','m':'100010001','r':'java.lang.Class<?>','d':'public final native java.lang.Class<?> java.lang.Object.getClass()'},{'n':'hashCode','c':'int','m':'100000001','r':'int','d':'public native int java.lang.Object.hashCode()'},{'n':'equals','c':'boolean','m':'1','r':'boolean','p':['java.lang.Object',],'d':'public boolean java.lang.Object.equals(java.lang.Object)'},{'n':'notifyAll','c':'void','m':'100010001','r':'void','d':'public final native void java.lang.Object.notifyAll()'},],},'java.lang.Object':{'tag':'CLASSDEF','flags':'1','name':'java.lang.Object','classpath':'1','pos':[-1,-1],'endpos':[-1,-1],'fqn':'java.lang.Object','implements':[],'nested':[],'ctors':[{'m':'1','d':'public java.lang.Object()'},],'fields':[],'methods':[{'n':'finalize','c':'void','m':'100','r':'void','d':'protected void java.lang.Object.finalize() throws java.lang.Throwable'},{'n':'toString','c':'java.lang.String','m':'1','r':'java.lang.String','d':'public java.lang.String java.lang.Object.toString()'},{'n':'registerNatives','c':'void','m':'100001010','r':'void','d':'private static native void java.lang.Object.registerNatives()'},{'n':'clone','m':'100000100','r':'java.lang.Object','d':'protected native java.lang.Object java.lang.Object.clone() throws java.lang.CloneNotSupportedException'},{'n':'notify','c':'void','m':'100010001','r':'void','d':'public final native void java.lang.Object.notify()'},{'n':'wait','c':'void','m':'10001','r':'void','p':['long','int',],'d':'public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException'},{'n':'wait','c':'void','m':'100010001','r':'void','p':['long',],'d':'public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException'},{'n':'wait','c':'void','m':'10001','r':'void','d':'public final void java.lang.Object.wait() throws java.lang.InterruptedException'},{'n':'getClass','c':'java.lang.Class<?>','m':'100010001','r':'java.lang.Class<?>','d':'public final native java.lang.Class<?> java.lang.Object.getClass()'},{'n':'hashCode','c':'int','m':'100000001','r':'int','d':'public native int java.lang.Object.hashCode()'},{'n':'equals','c':'boolean','m':'1','r':'boolean','p':['java.lang.Object',],'d':'public boolean java.lang.Object.equals(java.lang.Object)'},{'n':'notifyAll','c':'void','m':'100010001','r':'void','d':'public final native void java.lang.Object.notifyAll()'},],},}
19.144628 [complete] get member list. outputkind: 0
19.144775 [complete] search member. name: , kind: 0, outputkind: 0
19.160741 [complete] finish completion  0.221355s
  • I have set g:JavaComplete_JavaviLogLevel to 'debug' and then set g:JavaComplete_JavaviLogDirectory.
    Failing case:
18:39:13.748 [main] INFO  kg.ash.javavi.Javavi - starting javavi server on port: 40373
18:39:13.751 [main] TRACE kg.ash.javavi.Javavi - output included libraries
18:39:13.897 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/cldrdata.jar
18:39:13.898 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/dnsns.jar
18:39:13.898 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/jaccess.jar
18:39:13.898 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/zipfs.jar
18:39:13.898 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunjce_provider.jar
18:39:13.898 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/localedata.jar
18:39:13.898 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/nashorn.jar
18:39:13.898 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunec.jar
18:39:13.898 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunpkcs11.jar
18:39:13.899 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/cldrdata.jar
18:39:13.899 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/dnsns.jar
18:39:13.899 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/jaccess.jar
18:39:13.899 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/zipfs.jar
18:39:13.899 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunjce_provider.jar
18:39:13.899 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/localedata.jar
18:39:13.899 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/nashorn.jar
18:39:13.899 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunec.jar
18:39:13.899 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunpkcs11.jar
18:39:13.899 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/cldrdata.jar
18:39:13.899 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/dnsns.jar
18:39:13.900 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/jaccess.jar
18:39:13.900 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/zipfs.jar
18:39:13.900 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunjce_provider.jar
18:39:13.900 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/localedata.jar
18:39:13.900 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/nashorn.jar
18:39:13.900 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunec.jar
18:39:13.900 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunpkcs11.jar
18:39:13.900 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/security/policy/unlimited/local_policy.jar
18:39:13.900 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/security/policy/unlimited/US_export_policy.jar
18:39:13.900 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/security/policy/limited/local_policy.jar
18:39:13.901 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/security/policy/limited/US_export_policy.jar
18:39:13.901 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/charsets.jar
18:39:13.901 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/resources.jar
18:39:13.901 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/jce.jar
18:39:13.901 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/management-agent.jar
18:39:13.901 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/rt.jar
18:39:13.901 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/jsse.jar
18:39:13.901 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/classlist
18:39:13.901 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/cldrdata.jar
18:39:13.901 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/dnsns.jar
18:39:13.901 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/jaccess.jar
18:39:13.902 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/zipfs.jar
18:39:13.902 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunjce_provider.jar
18:39:13.902 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/localedata.jar
18:39:13.902 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/nashorn.jar
18:39:13.902 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunec.jar
18:39:13.902 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunpkcs11.jar
18:39:13.902 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/cldrdata.jar
18:39:13.902 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/dnsns.jar
18:39:13.902 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/jaccess.jar
18:39:13.902 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/zipfs.jar
18:39:13.902 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunjce_provider.jar
18:39:13.903 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/localedata.jar
18:39:13.903 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/nashorn.jar
18:39:13.903 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunec.jar
18:39:13.903 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunpkcs11.jar
18:39:13.903 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/security/policy/unlimited/local_policy.jar
18:39:13.903 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/security/policy/unlimited/US_export_policy.jar
18:39:13.903 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/security/policy/limited/local_policy.jar
18:39:13.903 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/security/policy/limited/US_export_policy.jar
18:39:13.903 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/charsets.jar
18:39:13.903 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/resources.jar
18:39:13.904 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/jce.jar
18:39:13.904 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/management-agent.jar
18:39:13.904 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/rt.jar
18:39:13.904 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/jsse.jar
18:39:13.904 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/classlist
18:39:13.904 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/lib/sa-jdi.jar
18:39:13.905 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/lib/jconsole.jar
18:39:13.905 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/lib/tools.jar
18:39:13.905 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/lib/dt.jar
18:39:13.905 [main] DEBUG kg.ash.javavi.Javavi - argument: -sources
18:39:13.905 [main] DEBUG kg.ash.javavi.Javavi - argument: -base
18:39:13.905 [main] DEBUG kg.ash.javavi.Javavi - argument: -compiler
18:39:13.905 [main] DEBUG kg.ash.javavi.Javavi - argument: -D
18:39:13.907 [main] DEBUG kg.ash.javavi.Javavi - new  action: "ExecuteDaemonAction"
18:39:13.907 [main] DEBUG kg.ash.javavi.actions.ExecuteDaemonAction - starting daemon mode
18:39:13.910 [main] DEBUG kg.ash.javavi.Javavi - action time: 5ms
18:39:13.914 [Thread-4] INFO  kg.ash.javavi.cache.Cache - start collecting cache
18:39:13.914 [Thread-4] INFO  kg.ash.javavi.cache.Cache - collecting empty cache
18:39:13.924 [Thread-4] DEBUG kg.ash.javavi.searchers.SourcePackageSearcher - search source files
18:39:14.250 [Thread-4] TRACE kg.ash.javavi.searchers.SourcePackageSearcher - /home/agis/work/sandbox/app/src/main/java/abc/def/ghi/argh/Main.java
18:39:14.256 [Thread-4] TRACE kg.ash.javavi.searchers.SourcePackageSearcher - /home/agis/work/sandbox/app/src/main/java/abc/def/ghi/IFoo.java
18:39:14.261 [Thread-4] TRACE kg.ash.javavi.searchers.SourcePackageSearcher - /home/agis/work/sandbox/app/src/main/java/abc/def/ghi/Main2.java
18:39:21.556 [Thread-1] DEBUG kg.ash.javavi.Javavi - argument: -E
18:39:21.559 [Thread-1] DEBUG kg.ash.javavi.Javavi - new  action: "GetClassInfoAction"
18:39:21.559 [Thread-1] DEBUG kg.ash.javavi.searchers.ClassSearcher - executing search of "abc.def.ghi.IFoo"
18:39:21.562 [Thread-1] INFO  kg.ash.javavi.searchers.SourceFileVisitor - visit source: IFoo
18:39:21.565 [Thread-1] DEBUG kg.ash.javavi.readers.Parser - read class from sources: abc.def.ghi.IFoo
18:39:21.579 [Thread-1] DEBUG kg.ash.javavi.searchers.ClassSearcher - executing search of "abc.def.ghi.void"
18:39:21.579 [Thread-1] INFO  kg.ash.javavi.searchers.SourceFileVisitor - visit source: void
18:39:21.580 [Thread-1] DEBUG kg.ash.javavi.searchers.ClassSearcher - executing search of "java.lang.Object"
18:39:21.581 [Thread-1] DEBUG kg.ash.javavi.readers.Reflection - read class with reflections: java.lang.Object
18:39:21.581 [Thread-1] DEBUG kg.ash.javavi.readers.Reflection - lookup class name: java.lang.Object
18:39:21.581 [Thread-1] DEBUG kg.ash.javavi.readers.Reflection - class loaded: java.lang.Object
18:39:21.598 [Thread-1] DEBUG kg.ash.javavi.Javavi - action time: 42ms

Successful case:

18:40:46.225 [main] INFO  kg.ash.javavi.Javavi - starting javavi server on port: 51421
18:40:46.228 [main] TRACE kg.ash.javavi.Javavi - output included libraries
18:40:46.374 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/cldrdata.jar
18:40:46.375 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/dnsns.jar
18:40:46.375 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/jaccess.jar
18:40:46.375 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/zipfs.jar
18:40:46.375 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunjce_provider.jar
18:40:46.375 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/localedata.jar
18:40:46.375 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/nashorn.jar
18:40:46.376 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunec.jar
18:40:46.376 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunpkcs11.jar
18:40:46.376 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/cldrdata.jar
18:40:46.376 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/dnsns.jar
18:40:46.376 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/jaccess.jar
18:40:46.376 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/zipfs.jar
18:40:46.376 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunjce_provider.jar
18:40:46.376 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/localedata.jar
18:40:46.377 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/nashorn.jar
18:40:46.377 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunec.jar
18:40:46.377 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunpkcs11.jar
18:40:46.377 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/cldrdata.jar
18:40:46.377 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/dnsns.jar
18:40:46.377 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/jaccess.jar
18:40:46.377 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/zipfs.jar
18:40:46.377 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunjce_provider.jar
18:40:46.377 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/localedata.jar
18:40:46.378 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/nashorn.jar
18:40:46.378 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunec.jar
18:40:46.378 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunpkcs11.jar
18:40:46.378 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/security/policy/unlimited/local_policy.jar
18:40:46.378 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/security/policy/unlimited/US_export_policy.jar
18:40:46.378 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/security/policy/limited/local_policy.jar
18:40:46.378 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/security/policy/limited/US_export_policy.jar
18:40:46.378 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/charsets.jar
18:40:46.378 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/resources.jar
18:40:46.384 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/jce.jar
18:40:46.384 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/management-agent.jar
18:40:46.384 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/rt.jar
18:40:46.384 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/jsse.jar
18:40:46.384 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/classlist
18:40:46.384 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/cldrdata.jar
18:40:46.384 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/dnsns.jar
18:40:46.385 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/jaccess.jar
18:40:46.385 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/zipfs.jar
18:40:46.385 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunjce_provider.jar
18:40:46.385 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/localedata.jar
18:40:46.385 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/nashorn.jar
18:40:46.385 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunec.jar
18:40:46.385 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunpkcs11.jar
18:40:46.385 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/cldrdata.jar
18:40:46.385 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/dnsns.jar
18:40:46.385 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/jaccess.jar
18:40:46.385 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/zipfs.jar
18:40:46.386 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunjce_provider.jar
18:40:46.386 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/localedata.jar
18:40:46.386 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/nashorn.jar
18:40:46.386 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunec.jar
18:40:46.386 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/ext/sunpkcs11.jar
18:40:46.386 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/security/policy/unlimited/local_policy.jar
18:40:46.386 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/security/policy/unlimited/US_export_policy.jar
18:40:46.386 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/security/policy/limited/local_policy.jar
18:40:46.386 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/security/policy/limited/US_export_policy.jar
18:40:46.386 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/charsets.jar
18:40:46.386 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/resources.jar
18:40:46.387 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/jce.jar
18:40:46.387 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/management-agent.jar
18:40:46.387 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/rt.jar
18:40:46.387 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/jsse.jar
18:40:46.387 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/jre/lib/classlist
18:40:46.387 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/lib/sa-jdi.jar
18:40:46.387 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/lib/jconsole.jar
18:40:46.387 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/lib/tools.jar
18:40:46.387 [main] TRACE kg.ash.javavi.Javavi - /home/agis/tools/android/studio/jre/lib/dt.jar
18:40:46.387 [main] DEBUG kg.ash.javavi.Javavi - argument: -sources
18:40:46.388 [main] DEBUG kg.ash.javavi.Javavi - argument: -base
18:40:46.388 [main] DEBUG kg.ash.javavi.Javavi - argument: -compiler
18:40:46.388 [main] DEBUG kg.ash.javavi.Javavi - argument: -D
18:40:46.389 [main] DEBUG kg.ash.javavi.Javavi - new  action: "ExecuteDaemonAction"
18:40:46.389 [main] DEBUG kg.ash.javavi.actions.ExecuteDaemonAction - starting daemon mode
18:40:46.391 [main] DEBUG kg.ash.javavi.Javavi - action time: 4ms
18:40:46.395 [Thread-4] INFO  kg.ash.javavi.cache.Cache - start collecting cache
18:40:46.396 [Thread-4] INFO  kg.ash.javavi.cache.Cache - collecting empty cache
18:40:46.406 [Thread-4] DEBUG kg.ash.javavi.searchers.SourcePackageSearcher - search source files
18:40:46.760 [Thread-4] TRACE kg.ash.javavi.searchers.SourcePackageSearcher - /home/agis/work/sandbox/app/src/main/java/abc/def/ghi/argh/Main.java
18:40:46.767 [Thread-4] TRACE kg.ash.javavi.searchers.SourcePackageSearcher - /home/agis/work/sandbox/app/src/main/java/abc/def/ghi/IFoo.java
18:40:46.771 [Thread-4] TRACE kg.ash.javavi.searchers.SourcePackageSearcher - /home/agis/work/sandbox/app/src/main/java/abc/def/ghi/Main2.java
18:40:53.522 [Thread-1] DEBUG kg.ash.javavi.Javavi - argument: -E
18:40:53.528 [Thread-1] DEBUG kg.ash.javavi.Javavi - new  action: "GetClassInfoAction"
18:40:53.529 [Thread-1] DEBUG kg.ash.javavi.searchers.ClassSearcher - executing search of "abc.def.ghi.IFoo"
18:40:53.535 [Thread-1] INFO  kg.ash.javavi.searchers.SourceFileVisitor - visit source: IFoo
18:40:53.538 [Thread-1] DEBUG kg.ash.javavi.readers.Parser - read class from sources: abc.def.ghi.IFoo
18:40:53.554 [Thread-1] DEBUG kg.ash.javavi.searchers.ClassSearcher - executing search of "abc.def.ghi.void"
18:40:53.554 [Thread-1] INFO  kg.ash.javavi.searchers.SourceFileVisitor - visit source: void
18:40:53.556 [Thread-1] DEBUG kg.ash.javavi.searchers.ClassSearcher - executing search of "java.lang.Object"
18:40:53.557 [Thread-1] DEBUG kg.ash.javavi.readers.Reflection - read class with reflections: java.lang.Object
18:40:53.557 [Thread-1] DEBUG kg.ash.javavi.readers.Reflection - lookup class name: java.lang.Object
18:40:53.557 [Thread-1] DEBUG kg.ash.javavi.readers.Reflection - class loaded: java.lang.Object
18:40:53.576 [Thread-1] DEBUG kg.ash.javavi.Javavi - action time: 54ms

The strangest thing about the failing case is that void bar() appears in the logs, but doesn't get printed on the screen.

should be fixed in 5e15ab7

Indeed, it is. Thanks!