[
https://issues.apache.org/jira/browse/GEODE-3944?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16236279#comment-16236279
]
Vadim Lotarev edited comment on GEODE-3944 at 11/2/17 6:18 PM:
---------------------------------------------------------------
{quote}Spring-shell should always be required to be on the classpath. It's not
just recently introduced.{quote}
Well, we worked without spring-shell several years without any problems. It is
required for gfsh purposes only - isn't it? If your node doesn't use gfsh than
there is no any reason to have spring-shell in the classpath. Moreover there is
a logic in _your_ code that just catches all exceptions, logs the fact that
spring shell is absent (with CONFIG level, even not WARN!) and continues
working in the normal mode. Indeed, worked before 1.3.0.
was (Author: vlotarev):
{quote}Spring-shell should always be required to be on the classpath. It's not
just recently introduced.{quote}
Well, we worked without spring-shell several years without any problems. It is
required for gfsh purposes only - isn't it? If your node doesn't use gfsh than
there is no any reason to have spring-shell in the classpath. Moreover there is
a logic in _your_ code that just caught all exceptions, logs the fact that
spring shell is absent (with CONFIG level, even not WARN!) and continue working
in the normal mode. Indeed, worked before 1.3.0.
> Geode node is not able to start normally without spring-shell library anymore
> -----------------------------------------------------------------------------
>
> Key: GEODE-3944
> URL: https://issues.apache.org/jira/browse/GEODE-3944
> Project: Geode
> Issue Type: Bug
> Components: core, management
> Reporter: Vadim Lotarev
> Fix For: 1.3.0
>
>
> Starting from version 1.3.0 Geode cache is not able to start normally if
> spring-shell library is not available. This library is needed in order to
> implement gfsh commands and should not be required for any node. Everything
> worked just fine until new class {{OnlineCommandProcessor}} is introduced.
> Now, when attempt to create it failed (because of absence of spring-shell)
> {{java.lang.NoClassDefFoundError: org/springframework/shell/core/Parser}} is
> fired. This class is not an {{Exception}} so the following catch block is
> skipped and MemberMBean (as well as ManagementService) is not initialized as
> a result:
> {code}
> try {
> this.commandProcessor =
> new OnlineCommandProcessor(system.getProperties(),
> cache.getSecurityService());
> } catch (Exception e) {
> commandServiceInitError = e.getMessage();
> logger.info(LogMarker.CONFIG, "Command processor could not be
> initialized. {}",
> e.getMessage());
> }
> {code}
> Probably, the best fix would be to catch {{Throwable}} instead of
> {{Exception}}.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)