[
https://issues.apache.org/jira/browse/NIFI-2184?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16173615#comment-16173615
]
ASF GitHub Bot commented on NIFI-2184:
--------------------------------------
GitHub user jmark99 opened a pull request:
https://github.com/apache/nifi/pull/2164
NIFI-2184 JettyServer should confirm "docs" path exists before using it in
.createDocsWebApp().
NIFI-2184 JettyServer should confirm "docs" path exists before using it in
.createDocsWebApp().
Refactored the createDocsWebApp method of the JettyServer.java class.
Previously NiFi would fail to
start up and instead throw an IllegalStatException if the ''docs' directory
did not exist in the
installation directory. With the update, if the 'docs' directory is
missing, an attempt to create
the missing directory will be made and if successful will enable NIFI to
startup successfully, barring
any other startup errors of course. The side effect of this change is that
the help documentation
under the 'General' heading of the help page will be missing but the start
up process will have
succeeded.
Three small helper methods were extracted from the original method. Each
related to a section of the
original code that could throw an exception. In each case if an exception
is now thrown a more helpful
log message will be output and the process will be closed via the
startUpfailure method rather than
throwing an exception
The update was tested successfully on my local instance of NiFi with
various scenarios (missing directories, introduced exceptions, etc). Due to
the fact that the updated method is private and several layers into the call
chain of the Jetty server constructor there did not appear to be a clean way to
write a unit test. Conversation with one of the committers suggested
submitting without a unit test given this situation.
Additionally, Contrib-check build discovered a long line in
ProcessGroupResource.java. Re-formatted line to pass checkstyle requirement.
Thank you for submitting a contribution to Apache NiFi.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
### For all changes:
- [ x] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?
- [x ] Does your PR title start with NIFI-XXXX where XXXX is the JIRA
number you are trying to resolve? Pay particular attention to the hyphen "-"
character.
- [x ] Has your PR been rebased against the latest commit within the target
branch (typically master)?
- [x ] Is your initial contribution a single, squashed commit?
### For code changes:
- [x ] Have you ensured that the full suite of tests is executed via mvn
-Pcontrib-check clean install at the root nifi folder?
- [ ] Have you written or updated unit tests to verify your changes?
- [n/a] If adding new dependencies to the code, are these dependencies
licensed in a way that is compatible for inclusion under [ASF
2.0](http://www.apache.org/legal/resolved.html#category-a)?
- [n/a] If applicable, have you updated the LICENSE file, including the
main LICENSE file under nifi-assembly?
- [n/a] If applicable, have you updated the NOTICE file, including the main
NOTICE file found under nifi-assembly?
- [n/a] If adding new Properties, have you added .displayName in addition
to .name (programmatic access) for each of the new properties?
### For documentation related changes:
- [n/a] Have you ensured that format looks appropriate for the output in
which it is rendered?
### Note:
Please ensure that once the PR is submitted, you check travis-ci for build
issues and submit an update to your PR as soon as possible.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/jmark99/nifi nifi-2184
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/nifi/pull/2164.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #2164
----
commit 14ad50141cb012afddb4ef63853c559cbf24ec02
Author: Mark Owens <[email protected]>
Date: 2017-09-20T14:14:08Z
NIFI-2184 JettyServer should confirm "docs" path exists before using it in
.createDocsWebApp().
Refactored the createDocsWebApp method of the JettyServer.java class.
Previously NiFi would fail to
start up and instead throw an IllegalStatException if the ''docs' directory
did not exist in the
installation directory. With the update, if the 'docs' directory is
missing, an attempt to create
the missing directory will be made and if successful will enable NIFI to
startup successfully, barring
any other startup errors of course. The side effect of this change is that
the help documentation
under the 'General' heading of the help page will be missing.
Three small helper methods were extracted from the original method. Each
related to a section of the
original code that could throw an exception. In each case if an exception
is now thrown a more helpful
log message will be output and the process will be closed via the
startUpfailure method rather than
throwing an exceptio
commit 2ac9fc0ff674cb630032e708c3154ab0b46e3487
Author: Mark Owens <[email protected]>
Date: 2017-09-20T16:51:34Z
NIFI-2184 JettyServer should confirm "docs" path exists before using it in
.createDocsWebApp().
Contrib-check build discovered a long line in ProcessGroupResource.java.
Re-formatted line to pass
checkstyle requirement.
----
> JettyServer should confirm "docs" path exists before using it in
> .createDocsWebApp().
> -------------------------------------------------------------------------------------
>
> Key: NIFI-2184
> URL: https://issues.apache.org/jira/browse/NIFI-2184
> Project: Apache NiFi
> Issue Type: Bug
> Components: Core Framework, Documentation & Website
> Affects Versions: 1.0.0, 0.7.0
> Environment: Tested with 0.7.0-SNAPSHOT. Looks like it will occur
> with 1.x, but that is not confirmed.
> Reporter: Joe Skora
> Assignee: Mark Owens
> Priority: Minor
> Labels: easyfix
>
> Application throws exception and startup fails with "Resource directory paths
> are malformed: docs" if configured docs directory does not exist.
> Ideally it should startup without online documentation, but if it doesn't
> start an explicit log message and possibly a message to the console should
> explain that the directory is missing.
> {code}
> 2016-07-06 13:30:13,840 ERROR [main] org.apache.nifi.NiFi Failure to launch
> NiFi due to java.lang.reflect.InvocationTargetException
> java.lang.reflect.InvocationTargetException: null
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method) ~[na:1.7.0_80]
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
> ~[na:1.7.0_80]
> at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> ~[na:1.7.0_80]
> at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
> ~[na:1.7.0_80]
> at org.apache.nifi.NiFi.<init>(NiFi.java:131)
> ~[nifi-runtime-0.7.0-SNAPSHOT.jar:0.7.0-SNAPSHOT]
> at org.apache.nifi.NiFi.main(NiFi.java:227)
> ~[nifi-runtime-0.7.0-SNAPSHOT.jar:0.7.0-SNAPSHOT]
> Caused by: java.lang.IllegalStateException: Resource directory paths are
> malformed: docs
> at
> org.apache.nifi.web.server.JettyServer.createDocsWebApp(JettyServer.java:553)
> ~[nifi-jetty-0.7.0-SNAPSHOT.jar:0.7.0-SNAPSHOT]
> at
> org.apache.nifi.web.server.JettyServer.loadWars(JettyServer.java:337)
> ~[nifi-jetty-0.7.0-SNAPSHOT.jar:0.7.0-SNAPSHOT]
> at
> org.apache.nifi.web.server.JettyServer.<init>(JettyServer.java:140)
> ~[nifi-jetty-0.7.0-SNAPSHOT.jar:0.7.0-SNAPSHOT]
> ... 6 common frames omitted
> 2016-07-06 13:30:13,841 INFO [Thread-1] org.apache.nifi.NiFi Initiating
> shutdown of Jetty web server...
> {code}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)