Details
-
Type:
Bug
-
Status: Closed
-
Priority:
Minor
-
Resolution: Fixed
-
Affects Version/s: 3.12.1
-
Fix Version/s: 3.17.0
-
Labels:
-
Story Points:1
Description
Unpack a fresh PRO instance and start it without clustering.
Log in as admin and navigate to the nodes view: http://127.0.0.1:8081/#admin/system/nodes
Click the refresh symbol in the top-right of the UI and you'll get the following warning in the UI:
Unable to provision, see the following errors: 1) Error in custom provider, java.lang.IllegalStateException: Clustering is not enabled while locating com.sonatype.nexus.hazelcast.internal.HazelcastInstanceProvider at / (via modules: org.sonatype.nexus.extender.modules.NexusBundleModule -> org.eclipse.sisu.space.SpaceModule) while locating com.hazelcast.core.HazelcastInstance annotated with @com.google.inject.name.Named(value=nexus) at org.eclipse.sisu.wire.LocatorWiring while locating com.hazelcast.core.HazelcastInstance 1 error
The issue appears to be that refreshing the nodes view using the "refresh" icon triggers reloading of the NX.coreui.store.Node store which then calls NX.direct.proui_Node.read. Note this store is not loaded when you navigate to the nodes view, only when you subsequently refresh the view using the "refresh" icon (and the warning only appears when not clustered).
One fix would be to avoid reloading the store when non-clustered, even when the "refresh" icon is clicked. The other option would be to make the PRO NodeComponent more robust and only use the hazelcastProvider when clustered - the other methods in that class have similar checks, it's only the "read" method that attempts to use the hazelcastProvider without checking if clustering is enabled or not. (We should pass back an empty result if clustering is not enabled.)