artur-shaik / vim-javacomplete2

DEPRECATED in favor of jc.nvim

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Can't enable logger.

johnzeng opened this issue · comments

Actual behavior (Required!)

After adding

let g:JavaComplete_JavaviLogDirectory = '/Users/johnvzeng/javalog'
let g:JavaComplete_JavaviLogLevel = 'debug'

to my vimfile, I can't get log in dir javalog, the error is saying:

ERROR StatusLogger File not found in file system or classpath: /Users/johnvzeng/.vim/bundle/vim-javacomplete2/libs/javavi/target/classes/log4j2.xml
ERROR StatusLogger Reconfiguration failed: No configuration found for '4f8e5cde' at 'null' in 'null'

in javavi_stdout.log

If I use log4j2.xml file:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Root level="debug">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</Configuration>

In vi, there is a message tells that the javavi is recompiled, and then this log4j2.xml file is deleted.

but if I change Root level to error, it can log some error stack

Exception in thread "Thread-3" java.lang.NullPointerException
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
	at java.base/java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:590)
	at java.base/java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:668)
	at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:726)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:430)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:594)
	at kg.ash.javavi.searchers.PackagesLoader.collectPackages(PackagesLoader.java:21)
	at kg.ash.javavi.cache.Cache.lambda$collectPackages$0(Cache.java:55)
	at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.lang.NullPointerException
	at kg.ash.javavi.searchers.ClasspathCollector.collectClassPath(ClasspathCollector.java:30)
	at kg.ash.javavi.searchers.ClasspathPackageSearcher.loadEntries(ClasspathPackageSearcher.java:23)
	at kg.ash.javavi.searchers.PackagesLoader.lambda$collectPackages$0(PackagesLoader.java:21)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1494)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	at java.base/java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291)
	at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:747)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:283)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1603)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:175)

looks like I get some error no java.ext.dirs, I wanna find it out so I added a debug log to log what java.ext.dirs is, but it's not working.

    public List<String> collectClassPath() {
        List<String> result = new ArrayList<>();

        String extdirs = System.getProperty("java.ext.dirs");
        logger.debug("the extdirs are: " + extdirs);
        if (extdirs != null) {
            Stream.of(extdirs.split(pSep))
                .map(path -> addPathFromDir(path + File.separator))
                .forEach(result::addAll);
        }

Expected behavior (Required!)

1, log the debug message
2,handle the java.ext.dirs properly

The steps to reproduce actual behavior (Required!)

  1. in a maven project, import from a local lib
  2. try to do completing
  3. it just happend

Environment (Required!)

  • OS: MACOS
  • Vim version:
  • Neovim version: VIM v0.2.1

Q&A

  • Yes, I tried minimal .vimrc configuraion.
  • Yes, I have enabled logs with JCdebugEnableLogs and can put here content of JCdebugGetLogContent command, if you need.
  • Even, if you wish, I can set g:JavaComplete_JavaviLogLevel to 'debug', then set g:JavaComplete_JavaviLogDirectory, and put here server logs, too.

Screenshot (Optional)

The output of :redir and :message (Optional)

Is this issue still relevant for you? I couldn't reproduce it.