[ 
https://issues.apache.org/jira/browse/NIFI-4685?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16620727#comment-16620727
 ] 

Imre edited comment on NIFI-4685 at 9/19/18 3:53 PM:
-----------------------------------------------------

I just bumped into the same issue (NiFi v1.7.1). In my case, running on 
Windows, I created my own batch file to start NiFi, with the lib directory of 
NiFi being installed in {{c:\Program Files\NiFi}}, and all generated files 
(logs, internal DB, etc.) pointed to {{C:\ProgramData\NiFi}}.  (I modified 
several NiFi config files to achieve this.) I happened to start the batch file 
from somewhere other than the NiFi root dir in {{C:\Program Files\NiFi}}, and I 
got the following exception (due to the above code):

{{2018-09-19 09:30:25,895 INFO [main] org.apache.nifi.NiFi Launching NiFi...}}
 {{2018-09-19 09:30:25,906 ERROR [main] org.apache.nifi.NiFi Failure to launch 
NiFi due to java.nio.file.NoSuchFileException: lib\bootstrap}}
 {{java.nio.file.NoSuchFileException: lib\bootstrap}}
 {{at 
sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:79)}}
 {{at 
sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)}}
 {{at 
sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)}}
 {{at sun.nio.fs.WindowsDirectoryStream.<init>(WindowsDirectoryStream.java:86)}}
 {{at 
sun.nio.fs.WindowsFileSystemProvider.newDirectoryStream(WindowsFileSystemProvider.java:518)}}
 {{at java.nio.file.Files.newDirectoryStream(Files.java:457)}}
 {{at java.nio.file.Files.list(Files.java:3451)}}
 {{at org.apache.nifi.NiFi.createBootstrapClassLoader(NiFi.java:197)}}
 {{at 
org.apache.nifi.NiFi.convertArgumentsToValidatedNiFiProperties(NiFi.java:299)}}
 {{at org.apache.nifi.NiFi.main(NiFi.java:291)}}

 

Although, interestingly, starting Java on the command-line from the 
{{C:\Program Files\NiFi}} directory also results in the same exception, even 
though there's definitely a {{lib\bootstrapper}} directory there relative to 
the current dir...


was (Author: olajos):
I just bumped into the same issue. In my case, I'm running on Windows, I 
created my own batch file to start NiFi, with the lib directory of NiFi being 
installed in {{c:\Program Files\NiFi}}, and all generated files (logs, internal 
DB, etc.) pointed to {{C:\ProgramData\NiFi}}. I happened to start the batch 
file from somewhere other than the NiFi root dir in {{C:\Program Files\NiFi}}, 
and I got the following exception (due to the above code):

{{2018-09-19 09:30:25,895 INFO [main] org.apache.nifi.NiFi Launching NiFi...}}
{{2018-09-19 09:30:25,906 ERROR [main] org.apache.nifi.NiFi Failure to launch 
NiFi due to java.nio.file.NoSuchFileException: lib\bootstrap}}
{{java.nio.file.NoSuchFileException: lib\bootstrap}}
{{at 
sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:79)}}
{{at 
sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)}}
{{at 
sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)}}
{{at sun.nio.fs.WindowsDirectoryStream.<init>(WindowsDirectoryStream.java:86)}}
{{at 
sun.nio.fs.WindowsFileSystemProvider.newDirectoryStream(WindowsFileSystemProvider.java:518)}}
{{at java.nio.file.Files.newDirectoryStream(Files.java:457)}}
{{at java.nio.file.Files.list(Files.java:3451)}}
{{at org.apache.nifi.NiFi.createBootstrapClassLoader(NiFi.java:197)}}
{{at 
org.apache.nifi.NiFi.convertArgumentsToValidatedNiFiProperties(NiFi.java:299)}}
{{at org.apache.nifi.NiFi.main(NiFi.java:291)}}

> Hardcoded path when creating Bootstrap ClassLoader in Nifi
> ----------------------------------------------------------
>
>                 Key: NIFI-4685
>                 URL: https://issues.apache.org/jira/browse/NIFI-4685
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Configuration, Core Framework
>    Affects Versions: 1.4.0
>         Environment: Windows 7, JRE 1.8.0_144
>            Reporter: Sorin Florea
>            Priority: Minor
>              Labels: easyfix, usability, windows
>
> Found a hardcoded path to {{lib/bootstrap}} in 
> [org.apache.nifi.NiFi|https://github.com/apache/nifi/blob/master/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/NiFi.java#L3]
>  class when calling {{createBootstrapClassLoader()}} :
> {code:java}
> private static ClassLoader createBootstrapClassLoader() throws IOException {
>         //Get list of files in bootstrap folder
>         final List<URL> urls = new ArrayList<>();
>         Files.list(Paths.get({color:red}_"lib/bootstrap"_{color})).forEach(p 
> -> {
>             try {
>                 urls.add(p.toUri().toURL());
>             } catch (final MalformedURLException mef) {
>                 LOGGER.warn("Unable to load " + p.getFileName() + " due to " 
> + mef, mef);
>             }
>         });
>         //Create the bootstrap classloader
>         return new URLClassLoader(urls.toArray(new URL[0]), 
> Thread.currentThread().getContextClassLoader());
>     }
> {code}
> There are multiple places where the {{.\lib}} directory is defined: 
> * {{BOOTSTRAP_LIBS}} or {{%LIB_DIR%}} environment variables in {{nifi.sh}} or 
> {{run-nifi.bat}} 
> * {{lib.dir}} in {{bootstrap.conf}} is most likely it
> * {{nifi.nar.library.directory}} or {{nifi.web.war.directory}} identify the 
> library folder but don't quite refer to the bootstrap
> Perhaps using {{lib.dir}} in {{bootstrap.conf}} or create a new 
> {{lib.bootstrap.dir}} property.
> Using different library folders would allow configuring multiple instances of 
> Nifi using the same resource. I managed changing the properties and 
> environment variables above to point to a common {{lib}} directory but this 
> harcoded prevented {{run-nifi.bat}} to run successfully. {{dump-nifi.bat}} 
> and {{status-nifi.bat}} ran without issue.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to