Uploaded image for project: 'Zeppelin'
  1. Zeppelin
  2. ZEPPELIN-5989

Default notebook path resolving failed on windows

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • zeppelin-server
    • None
    • sys: windows 10

      IDE: IDEA

      branch: master

       

    Description

      I'm trying to start the zeppelin without configuration file in my IDE on windows, and i get error as below:

      ```bash
      java.io.IOException: java.net.URISyntaxException: Illegal character in path at index 2: ./\notebook
          at org.apache.zeppelin.notebook.repo.VFSNotebookRepo.setNotebookDirectory(VFSNotebookRepo.java:76)
          at org.apache.zeppelin.notebook.repo.GitNotebookRepo.init(GitNotebookRepo.java:74)
          at org.apache.zeppelin.notebook.repo.NotebookRepoSync.init(NotebookRepoSync.java:83)
          at org.apache.zeppelin.notebook.repo.NotebookRepoSync.<init>(NotebookRepoSync.java:62)
          at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
          at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
          at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
          at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
          at org.glassfish.hk2.utilities.reflection.ReflectionHelper.makeMe(ReflectionHelper.java:1356)
          at org.jvnet.hk2.internal.ClazzCreator.createMe(ClazzCreator.java:248)
          at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:342)
          at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:463)
          at org.glassfish.hk2.utilities.ImmediateContext.findOrCreate(ImmediateContext.java:111)
          at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2102)
          at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:93)
          at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:679)
          at org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:54)
          at org.jvnet.hk2.internal.ClazzCreator.resolve(ClazzCreator.java:188)
          at org.jvnet.hk2.internal.ClazzCreator.resolveAllDependencies(ClazzCreator.java:205)
          at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:334)
          at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:463)
          at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:59)
          at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:47)
          at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture$1.call(Cache.java:74)
          at java.util.concurrent.FutureTask.run(FutureTask.java:266)
          at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture.run(Cache.java:131)
          at org.glassfish.hk2.utilities.cache.Cache.compute(Cache.java:176)
          at org.jvnet.hk2.internal.SingletonContext.findOrCreate(SingletonContext.java:98)
          at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2102)
          at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:93)
          at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:679)
          at org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:54)
          at org.jvnet.hk2.internal.ClazzCreator.resolve(ClazzCreator.java:188)
          at org.jvnet.hk2.internal.ClazzCreator.resolveAllDependencies(ClazzCreator.java:205)
          at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:334)
          at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:463)
          at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:59)
          at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:47)
          at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture$1.call(Cache.java:74)
          at java.util.concurrent.FutureTask.run(FutureTask.java:266)
          at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture.run(Cache.java:131)
          at org.glassfish.hk2.utilities.cache.Cache.compute(Cache.java:176)
          at org.jvnet.hk2.internal.SingletonContext.findOrCreate(SingletonContext.java:98)
          at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2102)
          at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:93)
          at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:679)
          at org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:54)
          at org.jvnet.hk2.internal.ClazzCreator.resolve(ClazzCreator.java:188)
          at org.jvnet.hk2.internal.ClazzCreator.resolveAllDependencies(ClazzCreator.java:205)
          at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:334)
          at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:463)
          at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:59)
          at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:47)
          at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture$1.call(Cache.java:74)
          at java.util.concurrent.FutureTask.run(FutureTask.java:266)
          at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture.run(Cache.java:131)
          at org.glassfish.hk2.utilities.cache.Cache.compute(Cache.java:176)
          at org.jvnet.hk2.internal.SingletonContext.findOrCreate(SingletonContext.java:98)
          at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2102)
          at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:93)
          at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:67)
          at org.glassfish.hk2.utilities.ServiceLocatorUtilities.getService(ServiceLocatorUtilities.java:669)
          at org.apache.zeppelin.server.ZeppelinServer.main(ZeppelinServer.java:249)
      ```

      Problem I found is that org.apache.zeppelin.conf.ZeppelinConfiguration.ConfVars defines 
      ZEPPELIN_HOME as './' and using File.separator as joint. So, URI parse failed.
      Could we define default ZEPPELIN_HOME as '.' and using Paths.get to join two part of notebook or other path?

      I'll make a PR if this could help.

      Attachments

        Activity

          No work has yet been logged on this issue.

          People

            Unassigned Unassigned
            supermaskv Guorong Xu
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: