[
https://issues.apache.org/jira/browse/KARAF-7694?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jean-Baptiste Onofré updated KARAF-7694:
----------------------------------------
Target Version/s: 4.5.0 (was: 4.5.0, 4.4.7)
> Using system environment variables does not propagate to property usage in
> same cfg file
> ----------------------------------------------------------------------------------------
>
> Key: KARAF-7694
> URL: https://issues.apache.org/jira/browse/KARAF-7694
> Project: Karaf
> Issue Type: Bug
> Components: karaf
> Affects Versions: 4.3.3
> Environment: Karaf 4.3.3 on Linux openjdk-17
> Reporter: Andre Flakowski
> Assignee: Jean-Baptiste Onofré
> Priority: Major
>
> Generally environment variable usage as described
> [here|https://karaf.apache.org/manual/latest/#_environment_variables_system_properties]
> works, but it does not propagate back to the config admin system and
> therefore it seems that referencing the property in the same cfg file does
> not resolve to the overriden value:
> Steps to reproduce:
> # Using clean Karaf 4.3.3 on Linux openjdk 17
> # export ORG_APACHE_KARAF_MANAGEMENT_RMIREGISTRYPORT=4242
> # bin/karaf
> results in:
> {code:java}
> Unable to find source-code formatter for language: shell. Available languages
> are: actionscript, ada, applescript, bash, c, c#, c++, cpp, css, erlang, go,
> groovy, haskell, html, java, javascript, js, json, lua, none, nyan, objc,
> perl, php, python, r, rainbow, ruby, scala, sh, sql, swift, visualbasic, xml,
> yamlkaraf: Enabling Java debug options:
> -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
> Listening for transport dt_socket at address: 5005
> Exception in thread "JMX Connector Thread
> [service:jmx:rmi://127.0.0.1:44444/jndi/rmi://127.0.0.1:1099/karaf-root]"
> java.lang.RuntimeException: Could not start JMX connector server
> at
> org.apache.karaf.management.ConnectorServerFactory.lambda$init$0(ConnectorServerFactory.java:438)
> at java.base/java.lang.Thread.run(Thread.java:833)
> Caused by: java.io.IOException: Cannot bind to URL
> [rmi://127.0.0.1:1099/karaf-root]: javax.naming.CommunicationException [Root
> exception is java.rmi.NoSuchObjectException: no such object in table]
> at
> java.management.rmi/javax.management.remote.rmi.RMIConnectorServer.newIOException(RMIConnectorServer.java:834)
> at
> java.management.rmi/javax.management.remote.rmi.RMIConnectorServer.start(RMIConnectorServer.java:481)
> at
> org.apache.karaf.management.ConnectorServerFactory.lambda$init$0(ConnectorServerFactory.java:421)
> ... 1 more
> Caused by: javax.naming.CommunicationException [Root exception is
> java.rmi.NoSuchObjectException: no such object in table]
> at
> jdk.naming.rmi/com.sun.jndi.rmi.registry.RegistryContext.bind(RegistryContext.java:163)
> at
> java.naming/com.sun.jndi.toolkit.url.GenericURLContext.bind(GenericURLContext.java:243)
> at java.naming/javax.naming.InitialContext.bind(InitialContext.java:417)
> at
> java.management.rmi/javax.management.remote.rmi.RMIConnectorServer.bind(RMIConnectorServer.java:693)
> at
> java.management.rmi/javax.management.remote.rmi.RMIConnectorServer.start(RMIConnectorServer.java:476)
> ... 2 more
> Caused by: java.rmi.NoSuchObjectException: no such object in table
> at
> java.rmi/sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:304)
> at
> java.rmi/sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:280)
> at java.rmi/sun.rmi.server.UnicastRef.invoke(UnicastRef.java:381)
> at
> java.rmi/sun.rmi.registry.RegistryImpl_Stub.bind(RegistryImpl_Stub.java:73)
> at
> jdk.naming.rmi/com.sun.jndi.rmi.registry.RegistryContext.bind(RegistryContext.java:157)
> ... 6 more
> {code}
>
> listing the config:
> {code:java}
> karaf@root()> cl org.apache.karaf.management
> ----------------------------------------------------------------
> Pid: org.apache.karaf.management
> BundleLocation: ?
> Properties:
> daemon = true
> felix.fileinstall.filename =
> file:/home/af/Desktop/apache-karaf-4.4.3/etc/org.apache.karaf.management.cfg
> jmxRealm = karaf
> jmxmpEnabled = false
> jmxmpHost = 127.0.0.1
> jmxmpObjectName = connector:name=jmxmp
> jmxmpPort = 9999
> jmxmpServiceUrl = service:jmx:jmxmp://127.0.0.1:9999
> objectName = connector:name=rmi
> rmiRegistryHost = 127.0.0.1
> rmiRegistryPort = 4242
> rmiServerHost = 127.0.0.1
> rmiServerPort = 44444
> service.pid = org.apache.karaf.management
> serviceUrl =
> service:jmx:rmi://127.0.0.1:44444/jndi/rmi://127.0.0.1:1099/karaf-root
> threaded = true{code}
> rmiRegistryPort = 4242 is properly set.
> serviceUrl =
> service:jmx:rmi://${rmiServerHost}:${rmiServerPort}/jndi/rmi://${rmiRegistryHost}:${rmiRegistryPort}/karaf-${karaf.name}
> referencing rmiRegistryPort is still on 1099.
> assumably this should fail on other indirect variable usages as well.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)