This is an automated email from the ASF dual-hosted git repository.
cdutz pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git
The following commit(s) were added to refs/heads/develop by this push:
new 4cfb124bff chore: Downgraded to the latest Netty 4.1 version to fix
the issues with the serial transport.
4cfb124bff is described below
commit 4cfb124bffd27cd603c40c33ba934b49bf2be8a8
Author: Christofer Dutz <[email protected]>
AuthorDate: Thu Jul 31 13:37:01 2025 +0200
chore: Downgraded to the latest Netty 4.1 version to fix the issues with
the serial transport.
---
plc4j/drivers/firmata/pom.xml | 6 ++++++
.../org/apache/plc4x/java/firmata/readwrite/FirmataManualTest.java | 2 +-
plc4j/drivers/s7/pom.xml | 2 +-
plc4j/spi/pom.xml | 2 +-
.../org/apache/plc4x/java/spi/connection/NettyChannelFactory.java | 1 +
plc4j/transports/serial/pom.xml | 2 +-
.../java/org/apache/plc4x/java/transport/serial/SerialChannel.java | 4 ++--
plc4j/transports/udp/pom.xml | 2 +-
plc4j/utils/plc-simulator/pom.xml | 2 +-
pom.xml | 4 ++--
10 files changed, 17 insertions(+), 10 deletions(-)
diff --git a/plc4j/drivers/firmata/pom.xml b/plc4j/drivers/firmata/pom.xml
index 2d9f5afffb..f33ade876e 100644
--- a/plc4j/drivers/firmata/pom.xml
+++ b/plc4j/drivers/firmata/pom.xml
@@ -128,6 +128,12 @@
<artifactId>purejavacomm</artifactId>
</dependency>
+ <dependency>
+ <groupId>com.fazecast</groupId>
+ <artifactId>jSerialComm</artifactId>
+ <scope>test</scope>
+ </dependency>
+
<dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4j-utils-test-utils</artifactId>
diff --git
a/plc4j/drivers/firmata/src/test/java/org/apache/plc4x/java/firmata/readwrite/FirmataManualTest.java
b/plc4j/drivers/firmata/src/test/java/org/apache/plc4x/java/firmata/readwrite/FirmataManualTest.java
index 5d4c25bffe..48c3ab4080 100644
---
a/plc4j/drivers/firmata/src/test/java/org/apache/plc4x/java/firmata/readwrite/FirmataManualTest.java
+++
b/plc4j/drivers/firmata/src/test/java/org/apache/plc4x/java/firmata/readwrite/FirmataManualTest.java
@@ -29,7 +29,7 @@ public class FirmataManualTest {
public static void main(String[] args) throws Exception {
// Default for the Firmata Arduino sketch is, 57600 baud, 8 data-bits,
no parity and one stop bit (Which is the default for the Serial transport)
- try(PlcConnection connection =
PlcDriverManager.getDefault().getConnectionManager().getConnection("firmata:///dev/tty.usbmodem2114401"))
{
+ try(PlcConnection connection =
PlcDriverManager.getDefault().getConnectionManager().getConnection("firmata:///dev/tty.usbmodem1101"))
{
PlcSubscriptionRequest subscriptionRequest =
connection.subscriptionRequestBuilder().addEventTagAddress("analog1",
"analog:1").setConsumer(plcSubscriptionEvent -> {
System.out.println("Incoming Event: " +
plcSubscriptionEvent.getPlcValue("analog1").getInteger());
}).build();
diff --git a/plc4j/drivers/s7/pom.xml b/plc4j/drivers/s7/pom.xml
index 3ecb3aa0de..c541e1764d 100644
--- a/plc4j/drivers/s7/pom.xml
+++ b/plc4j/drivers/s7/pom.xml
@@ -140,7 +140,7 @@
</dependency>
<dependency>
<groupId>io.netty</groupId>
- <artifactId>netty-codec-base</artifactId>
+ <artifactId>netty-codec</artifactId>
</dependency>
<dependency>
<groupId>io.netty</groupId>
diff --git a/plc4j/spi/pom.xml b/plc4j/spi/pom.xml
index c7f92071e5..f253dbcde7 100644
--- a/plc4j/spi/pom.xml
+++ b/plc4j/spi/pom.xml
@@ -41,7 +41,7 @@
</dependency>
<dependency>
<groupId>io.netty</groupId>
- <artifactId>netty-codec-base</artifactId>
+ <artifactId>netty-codec</artifactId>
</dependency>
<dependency>
<groupId>io.netty</groupId>
diff --git
a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/NettyChannelFactory.java
b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/NettyChannelFactory.java
index 2864f01107..dea76abda2 100644
---
a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/NettyChannelFactory.java
+++
b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/NettyChannelFactory.java
@@ -148,6 +148,7 @@ public abstract class NettyChannelFactory implements
ChannelFactory {
Thread.currentThread().interrupt();
throw new PlcConnectionException("Error creating channel.", e);
} catch (Throwable t) {
+ t.printStackTrace();
throw new PlcConnectionException("Error creating channel.", t);
}
}
diff --git a/plc4j/transports/serial/pom.xml b/plc4j/transports/serial/pom.xml
index e76568b481..b1d994c97c 100644
--- a/plc4j/transports/serial/pom.xml
+++ b/plc4j/transports/serial/pom.xml
@@ -72,7 +72,7 @@
<dependency>
<groupId>io.netty</groupId>
- <artifactId>netty-codec-base</artifactId>
+ <artifactId>netty-codec</artifactId>
<scope>test</scope>
</dependency>
<dependency>
diff --git
a/plc4j/transports/serial/src/main/java/org/apache/plc4x/java/transport/serial/SerialChannel.java
b/plc4j/transports/serial/src/main/java/org/apache/plc4x/java/transport/serial/SerialChannel.java
index 155a4ea49c..a5c3b4f15a 100644
---
a/plc4j/transports/serial/src/main/java/org/apache/plc4x/java/transport/serial/SerialChannel.java
+++
b/plc4j/transports/serial/src/main/java/org/apache/plc4x/java/transport/serial/SerialChannel.java
@@ -353,9 +353,9 @@ public class SerialChannel extends AbstractNioByteChannel
implements DuplexChann
// Set selection key
// TODO: in newer netty versions, there is no "selectionKey"
field. I have no idea what this is needed for ... so I'll comment this out for
now.
- /*final Field selectionKeyField =
AbstractNioChannel.class.getDeclaredField("selectionKey");
+ final Field selectionKeyField =
AbstractNioChannel.class.getDeclaredField("selectionKey");
selectionKeyField.setAccessible(true);
- selectionKeyField.set(SerialChannel.this,
serialSelectionKey);*/
+ selectionKeyField.set(SerialChannel.this, serialSelectionKey);
// Set event loop (again, via reflection)
final Field loop =
AbstractChannel.class.getDeclaredField("eventLoop");
diff --git a/plc4j/transports/udp/pom.xml b/plc4j/transports/udp/pom.xml
index cabd8004e8..5787e03c51 100644
--- a/plc4j/transports/udp/pom.xml
+++ b/plc4j/transports/udp/pom.xml
@@ -53,7 +53,7 @@
</dependency>
<dependency>
<groupId>io.netty</groupId>
- <artifactId>netty-codec-base</artifactId>
+ <artifactId>netty-codec</artifactId>
</dependency>
<dependency>
<groupId>io.netty</groupId>
diff --git a/plc4j/utils/plc-simulator/pom.xml
b/plc4j/utils/plc-simulator/pom.xml
index 8047b32662..de6cd006a3 100644
--- a/plc4j/utils/plc-simulator/pom.xml
+++ b/plc4j/utils/plc-simulator/pom.xml
@@ -113,7 +113,7 @@
</dependency>
<dependency>
<groupId>io.netty</groupId>
- <artifactId>netty-codec-base</artifactId>
+ <artifactId>netty-codec</artifactId>
</dependency>
<dependency>
<groupId>io.netty</groupId>
diff --git a/pom.xml b/pom.xml
index 828b77d901..4d12f100eb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -148,8 +148,8 @@
<maven.clean.plugin.version>3.2.0</maven.clean.plugin.version>
<milo.version>0.6.16</milo.version>
<mockito.version>5.18.0</mockito.version>
- <!--netty.version>4.1.119.Final</netty.version-->
- <netty.version>4.2.1.Final</netty.version>
+ <!-- Netty 4.2.x seems to break the serial transports -->
+ <netty.version>4.1.123.Final</netty.version>
<pcap4j.version>1.8.2</pcap4j.version>
<slf4j.version>2.0.17</slf4j.version>
<vavr.version>0.10.7</vavr.version>