Hey Cesar, I modified my code to use CachedPlcConnectionManager but the problem persists: the program gets stuck on the getConnection call.
This is my code now: public static void main(String[] args) { // System.setProperty(SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "Error"); Logger logger = LoggerFactory.getLogger(TestConnection.class); String connectionString = "s7://10.10.26.88?controller-type:S7_300"; PlcConnection plcConnection = null; try { CachedPlcConnectionManager connectionManager = CachedPlcConnectionManager. getBuilder(new DefaultPlcDriverManager()).build(); plcConnection = connectionManager.getConnection(connectionString); if (!plcConnection.getMetadata().isReadSupported()) { logger.error("This connection doesn't support reading."); return; } System.out.println("Success"); } catch (Exception e) { e.printStackTrace(); } finally { if (plcConnection != null) { try { plcConnection.close(); } catch (Exception e) { e.printStackTrace(); } } } } The exception trace is: [main] INFO org.apache.plc4x.java.DefaultPlcDriverManager - Instantiating new PLC Driver Manager with class loader jdk.internal.loader.ClassLoaders$AppClassLoader@2cdf8d8a [main] INFO org.apache.plc4x.java.DefaultPlcDriverManager - Registering available drivers... [main] INFO org.apache.plc4x.java.DefaultPlcDriverManager - Registering driver for Protocol s7 (Siemens S7 (Basic)) [main] INFO org.apache.plc4x.java.transport.tcp.TcpChannelFactory - Configuring Bootstrap with org.apache.plc4x.java.s7.readwrite.configuration.S7TcpTransportConfiguration@345965f2 [main] INFO org.apache.plc4x.java.s7.readwrite.protocol.S7ProtocolLogic - S7 Driver running in ACTIVE mode. [main] INFO org.apache.plc4x.java.s7.readwrite.protocol.S7HMuxImpl - 15:11:46.130938260 userEventTriggered: Multiplexor Event: org.apache.plc4x.java.spi.events.ConnectEvent@139982de [nioEventLoopGroup-2-1] WARN io.netty.channel.embedded.EmbeddedChannel - More than one exception was raised. Will report only the first one and log others. io.netty.handler.codec.DecoderException: io.netty.handler.codec.EncoderException: MessageToMessageCodec$1 must produce at least one message. at io.netty.handler.codec.MessageToMessageDecoder.channelRead( MessageToMessageDecoder.java:98) at io.netty.handler.codec.MessageToMessageCodec.channelRead( MessageToMessageCodec.java:111) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead( AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead( AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead( AbstractChannelHandlerContext.java:412) at io.netty.handler.codec.MessageToMessageDecoder.channelRead( MessageToMessageDecoder.java:103) at io.netty.handler.codec.MessageToMessageCodec.channelRead( MessageToMessageCodec.java:111) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead( AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead( AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead( AbstractChannelHandlerContext.java:412) at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead( ByteToMessageDecoder.java:346) at io.netty.handler.codec.ByteToMessageDecoder.channelRead( ByteToMessageDecoder.java:318) at io.netty.handler.codec.ByteToMessageCodec.channelRead( ByteToMessageCodec.java:103) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead( AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead( AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead( AbstractChannelHandlerContext.java:412) at io.netty.handler.logging.LoggingHandler.channelRead( LoggingHandler.java:280) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead( AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead( AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead( AbstractChannelHandlerContext.java:412) at org.apache.plc4x.java.s7.readwrite.protocol.S7HMuxImpl.decode( S7HMuxImpl.java:145) at org.apache.plc4x.java.s7.readwrite.protocol.S7HMuxImpl.decode( S7HMuxImpl.java:1) at io.netty.handler.codec.MessageToMessageCodec$2.decode( MessageToMessageCodec.java:81) at io.netty.handler.codec.MessageToMessageDecoder.channelRead( MessageToMessageDecoder.java:88) at io.netty.handler.codec.MessageToMessageCodec.channelRead( MessageToMessageCodec.java:111) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead( AbstractChannelHandlerContext.java:442) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead( AbstractChannelHandlerContext.java:420) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead( AbstractChannelHandlerContext.java:412) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead( DefaultChannelPipeline.java:1410) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead( AbstractChannelHandlerContext.java:440) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead( AbstractChannelHandlerContext.java:420) at io.netty.channel.DefaultChannelPipeline.fireChannelRead( DefaultChannelPipeline.java:919) at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read( AbstractNioByteChannel.java:166) at io.netty.channel.nio.NioEventLoop.processSelectedKey( NioEventLoop.java:788) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized( NioEventLoop.java:724) at io.netty.channel.nio.NioEventLoop.processSelectedKeys( NioEventLoop.java:650) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run( SingleThreadEventExecutor.java:997) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run( FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Thread.java:840) Caused by: io.netty.handler.codec.EncoderException: MessageToMessageCodec$1 must produce at least one message. at io.netty.handler.codec.MessageToMessageEncoder.write( MessageToMessageEncoder.java:99) at io.netty.handler.codec.MessageToMessageCodec.write( MessageToMessageCodec.java:116) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0( AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite( AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write( AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write( AbstractChannelHandlerContext.java:868) at io.netty.handler.logging.LoggingHandler.write(LoggingHandler.java:288) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0( AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite( AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write( AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write( AbstractChannelHandlerContext.java:868) at io.netty.handler.codec.MessageToByteEncoder.write( MessageToByteEncoder.java:113) at io.netty.handler.codec.ByteToMessageCodec.write( ByteToMessageCodec.java:108) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0( AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite( AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write( AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write( AbstractChannelHandlerContext.java:868) at io.netty.handler.codec.MessageToMessageEncoder.write( MessageToMessageEncoder.java:113) at io.netty.handler.codec.MessageToMessageCodec.write( MessageToMessageCodec.java:116) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0( AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite( AbstractChannelHandlerContext.java:875) at io.netty.channel.AbstractChannelHandlerContext.write( AbstractChannelHandlerContext.java:984) at io.netty.channel.AbstractChannelHandlerContext.write( AbstractChannelHandlerContext.java:868) at io.netty.handler.codec.MessageToMessageEncoder.write( MessageToMessageEncoder.java:113) at io.netty.handler.codec.MessageToMessageCodec.write( MessageToMessageCodec.java:116) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0( AbstractChannelHandlerContext.java:891) at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush( AbstractChannelHandlerContext.java:956) at io.netty.channel.AbstractChannelHandlerContext.write( AbstractChannelHandlerContext.java:982) at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush( AbstractChannelHandlerContext.java:950) at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush( AbstractChannelHandlerContext.java:1000) at io.netty.channel.DefaultChannelPipeline.writeAndFlush( DefaultChannelPipeline.java:1025) at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:306) at org.apache.plc4x.java.spi.internal.DefaultConversationContext.sendToWire( DefaultConversationContext.java:70) at org.apache.plc4x.java.spi.internal.DefaultSendRequestContext.handle( DefaultSendRequestContext.java:107) at org.apache.plc4x.java.spi.internal.DefaultSendRequestContext.handle( DefaultSendRequestContext.java:1) at org.apache.plc4x.java.s7.readwrite.protocol.S7ProtocolLogic.lambda$3( S7ProtocolLogic.java:194) at java.base/java.util.function.Consumer.lambda$andThen$0(Consumer.java:65) at org.apache.plc4x.java.spi.Plc4xNettyWrapper.decode( Plc4xNettyWrapper.java:183) at io.netty.handler.codec.MessageToMessageCodec$2.decode( MessageToMessageCodec.java:81) at io.netty.handler.codec.MessageToMessageDecoder.channelRead( MessageToMessageDecoder.java:88) ... 40 more [pool-6-thread-1] WARN org.apache.plc4x.java.s7.readwrite.protocol.S7ProtocolLogic - Timeout during Connection establishing, closing channel... [pool-6-thread-1] INFO org.apache.plc4x.java.s7.readwrite.protocol.S7HMuxImpl - Unregistered of channel: PRIMARY [pool-6-thread-1] WARN io.netty.channel.AbstractChannelHandlerContext - Failed to mark a promise as failure because it has succeeded already: DefaultChannelPromise@53d1d4d1(success) java.lang.IllegalStateException: HashedWheelTimer.stop() cannot be called from TimerTask at io.netty.util.HashedWheelTimer.stop(HashedWheelTimer.java:393) at org.apache.plc4x.java.spi.netty.NettyHashTimerTimeoutManager.stop( NettyHashTimerTimeoutManager.java:63) at org.apache.plc4x.java.spi.Plc4xNettyWrapper.close( Plc4xNettyWrapper.java:130) at io.netty.channel.AbstractChannelHandlerContext.invokeClose( AbstractChannelHandlerContext.java:757) at io.netty.channel.AbstractChannelHandlerContext.close( AbstractChannelHandlerContext.java:733) at io.netty.channel.DefaultChannelPipeline.close( DefaultChannelPipeline.java:994) at io.netty.channel.AbstractChannel.close(AbstractChannel.java:280) at io.netty.channel.embedded.EmbeddedChannel.close(EmbeddedChannel.java:569) at io.netty.channel.embedded.EmbeddedChannel.close(EmbeddedChannel.java:556) at org.apache.plc4x.java.s7.readwrite.protocol.S7ProtocolLogic.lambda$4( S7ProtocolLogic.java:185) at org.apache.plc4x.java.spi.Plc4xNettyWrapper.lambda$8( Plc4xNettyWrapper.java:253) at org.apache.plc4x.java.spi.netty.NettyHashTimerTimeoutManager.lambda$0( NettyHashTimerTimeoutManager.java:55) at io.netty.util.HashedWheelTimer$HashedWheelTimeout.run( HashedWheelTimer.java:715) at io.netty.util.concurrent.ImmediateExecutor.execute( ImmediateExecutor.java:34) at io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire( HashedWheelTimer.java:703) at io.netty.util.HashedWheelTimer$HashedWheelBucket.expireTimeouts( HashedWheelTimer.java:790) at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:503) at java.base/java.lang.Thread.run(Thread.java:840) [nioEventLoopGroup-2-1] INFO org.apache.plc4x.java.s7.readwrite.protocol.S7HMuxImpl - Unregistered of channel: PRIMARY [nioEventLoopGroup-2-1] INFO org.apache.plc4x.java.s7.readwrite.protocol.S7HMuxImpl - io.netty.channel.embedded.EmbeddedEventLoop@476a35e8 [plc4x-s7ha-thread-1] INFO org.apache.plc4x.java.s7.readwrite.protocol.S7HPlcConnection - Creating prymary connection. [plc4x-s7ha-thread-1] INFO org.apache.plc4x.java.transport.tcp.TcpChannelFactory - Configuring Bootstrap with org.apache.plc4x.java.s7.readwrite.configuration.S7TcpTransportConfiguration@345965f2 [plc4x-s7ha-thread-1] INFO org.apache.plc4x.java.s7.readwrite.protocol.S7HPlcConnection - Reconnecting primary channel. [nioEventLoopGroup-3-1] INFO org.apache.plc4x.java.s7.readwrite.protocol.S7HMuxImpl - Unregistered of channel: PRIMARY [nioEventLoopGroup-3-1] INFO org.apache.plc4x.java.s7.readwrite.protocol.S7HMuxImpl - io.netty.channel.embedded.EmbeddedEventLoop@476a35e8 [plc4x-s7ha-thread-1] INFO org.apache.plc4x.java.s7.readwrite.protocol.S7HPlcConnection - Creating prymary connection. [plc4x-s7ha-thread-1] INFO org.apache.plc4x.java.transport.tcp.TcpChannelFactory - Configuring Bootstrap with org.apache.plc4x.java.s7.readwrite.configuration.S7TcpTransportConfiguration@345965f2 [plc4x-s7ha-thread-1] INFO org.apache.plc4x.java.s7.readwrite.protocol.S7HPlcConnection - Reconnecting primary channel. [nioEventLoopGroup-4-1] INFO org.apache.plc4x.java.s7.readwrite.protocol.S7HMuxImpl - Unregistered of channel: PRIMARY ...