[ 
https://issues.apache.org/jira/browse/AMQ-9459?focusedWorklogId=910271&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-910271
 ]

ASF GitHub Bot logged work on AMQ-9459:
---------------------------------------

                Author: ASF GitHub Bot
            Created on: 18/Mar/24 06:16
            Start Date: 18/Mar/24 06:16
    Worklog Time Spent: 10m 
      Work Description: AM-19 opened a new pull request, #1181:
URL: https://github.com/apache/activemq/pull/1181

   When ActiveMQ running ActiveMQ on Java 17 or later JRE, it encounters 
following exception:
   
   ```
   ERROR | Could not set property soTimeout on 
ServerSocket[addr=/0:0:0:0:0:0:0:0,localport=xxxxx] | 
org.apache.activemq.util.IntrospectionSupport | main
   java.lang.reflect.InaccessibleObjectException: Unable to make public void 
sun.nio.ch.ServerSocketAdaptor.setSoTimeout(int) throws 
java.net.SocketException accessible: module java.base does not "opens 
sun.nio.ch" to unnamed module @4739cd70
        at 
java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
        at 
java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
        at 
java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199)
        at java.base/java.lang.reflect.Method.setAccessible(Method.java:193)
        at 
org.apache.activemq.util.IntrospectionSupport.setProperty(IntrospectionSupport.java:179)
        at 
org.apache.activemq.util.IntrospectionSupport.setProperties(IntrospectionSupport.java:155)
        at 
org.apache.activemq.transport.tcp.TcpTransportServer.configureServerSocket(TcpTransportServer.java:202)
        at 
org.apache.activemq.transport.tcp.TcpTransportServer.bind(TcpTransportServer.java:144)
        at 
org.apache.activemq.transport.auto.nio.AutoNioSslTransportFactory.doBind(AutoNioSslTransportFactory.java:122)
        at 
org.apache.activemq.transport.TransportFactorySupport.bind(TransportFactorySupport.java:40)
        at 
org.apache.activemq.broker.TransportConnector.createTransportServer(TransportConnector.java:340)
        at 
org.apache.activemq.broker.TransportConnector.getServer(TransportConnector.java:148)
        at 
org.apache.activemq.broker.TransportConnector.asManagedConnector(TransportConnector.java:113)
        at 
org.apache.activemq.broker.BrokerService.registerConnectorMBean(BrokerService.java:2241)
        at 
org.apache.activemq.broker.BrokerService.startTransportConnector(BrokerService.java:2728)
        at 
org.apache.activemq.broker.BrokerService.startAllConnectors(BrokerService.java:2624)
        at 
org.apache.activemq.broker.BrokerService.doStartBroker(BrokerService.java:762)
        at 
org.apache.activemq.broker.BrokerService.startBroker(BrokerService.java:724)
        at 
org.apache.activemq.broker.BrokerService.start(BrokerService.java:622) 
   ```
   According to Oracle, with [JEP 403 
(link1)](https://openjdk.java.net/jeps/403) and [JEP 403 
(link2)](https://bugs.openjdk.java.net/browse/JDK-8263547) which has been 
decided to be delivered from JDK 17 and onwards , the setAccessible approach 
which was introduced as part of https://issues.apache.org/jira/browse/AMQ-7121 
wont work.
   
    
   
   




Issue Time Tracking
-------------------

            Worklog Id:     (was: 910271)
    Remaining Estimate: 0h
            Time Spent: 10m

> Add appropriate JVM Args to allow access to sun.nio.* classes
> -------------------------------------------------------------
>
>                 Key: AMQ-9459
>                 URL: https://issues.apache.org/jira/browse/AMQ-9459
>             Project: ActiveMQ Classic
>          Issue Type: Bug
>    Affects Versions: 5.17.6
>            Reporter: Anubhav Mishra
>            Priority: Minor
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> When ActiveMQ running ActiveMQ on Java 17 or later JRE, it encounters 
> following exception:
> {code:java}
> ERROR | Could not set property soTimeout on 
> ServerSocket[addr=/0:0:0:0:0:0:0:0,localport=xxxxx] | 
> org.apache.activemq.util.IntrospectionSupport | main
> java.lang.reflect.InaccessibleObjectException: Unable to make public void 
> sun.nio.ch.ServerSocketAdaptor.setSoTimeout(int) throws 
> java.net.SocketException accessible: module java.base does not "opens 
> sun.nio.ch" to unnamed module @4739cd70
>       at 
> java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
>       at 
> java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
>       at 
> java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199)
>       at java.base/java.lang.reflect.Method.setAccessible(Method.java:193)
>       at 
> org.apache.activemq.util.IntrospectionSupport.setProperty(IntrospectionSupport.java:179)
>       at 
> org.apache.activemq.util.IntrospectionSupport.setProperties(IntrospectionSupport.java:155)
>       at 
> org.apache.activemq.transport.tcp.TcpTransportServer.configureServerSocket(TcpTransportServer.java:202)
>       at 
> org.apache.activemq.transport.tcp.TcpTransportServer.bind(TcpTransportServer.java:144)
>       at 
> org.apache.activemq.transport.auto.nio.AutoNioSslTransportFactory.doBind(AutoNioSslTransportFactory.java:122)
>       at 
> org.apache.activemq.transport.TransportFactorySupport.bind(TransportFactorySupport.java:40)
>       at 
> org.apache.activemq.broker.TransportConnector.createTransportServer(TransportConnector.java:340)
>       at 
> org.apache.activemq.broker.TransportConnector.getServer(TransportConnector.java:148)
>       at 
> org.apache.activemq.broker.TransportConnector.asManagedConnector(TransportConnector.java:113)
>       at 
> org.apache.activemq.broker.BrokerService.registerConnectorMBean(BrokerService.java:2241)
>       at 
> org.apache.activemq.broker.BrokerService.startTransportConnector(BrokerService.java:2728)
>       at 
> org.apache.activemq.broker.BrokerService.startAllConnectors(BrokerService.java:2624)
>       at 
> org.apache.activemq.broker.BrokerService.doStartBroker(BrokerService.java:762)
>       at 
> org.apache.activemq.broker.BrokerService.startBroker(BrokerService.java:724)
>       at 
> org.apache.activemq.broker.BrokerService.start(BrokerService.java:622) {code}
> According to Oracle, with [JEP 403 (link1)|https://openjdk.java.net/jeps/403] 
> and [JEP 403 (link2)|https://bugs.openjdk.java.net/browse/JDK-8263547] which 
> has been decided to be *delivered from JDK 17 and onwards* , the 
> setAccessible approach which was introduced as part of 
> https://issues.apache.org/jira/browse/AMQ-7121 wont work.
>  
> Fix:  Adding the following in activemq file should do the job:
> --add-opens java.base/sun.nio.ch=ALL-UNNAMED
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to