You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2018/10/30 15:39:22 UTC
[incubator-plc4x] branch master updated: - Fixed a broken
refactoring ... (Don't know why this slipped last time)
This is an automated email from the ASF dual-hosted git repository.
cdutz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git
The following commit(s) were added to refs/heads/master by this push:
new 624b9d0 - Fixed a broken refactoring ... (Don't know why this slipped last time)
624b9d0 is described below
commit 624b9d0761d8716a936a8040eba91e20ccf3ae05
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Tue Oct 30 16:39:18 2018 +0100
- Fixed a broken refactoring ... (Don't know why this slipped last time)
---
.../plc4x/java/s7/netty/strategies/DefaultS7MessageProcessor.java | 8 +++++---
.../apache/plc4x/java/s7/netty/util/S7RequestSizeCalculator.java | 4 ++--
.../java/s7/netty/strategies/DefaultS7MessageProcessorTest.java | 3 ++-
3 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/strategies/DefaultS7MessageProcessor.java b/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/strategies/DefaultS7MessageProcessor.java
index 0ab4b1c..7d813a4 100644
--- a/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/strategies/DefaultS7MessageProcessor.java
+++ b/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/strategies/DefaultS7MessageProcessor.java
@@ -359,17 +359,19 @@ public class DefaultS7MessageProcessor implements S7MessageProcessor {
if(payload.getType() == ParameterType.READ_VAR) {
if (readVarPayload == null) {
readVarPayload = (VarPayload) payload;
- s7Payloads.add(payload);
} else {
+ s7Payloads.remove(readVarPayload);
readVarPayload = readVarPayload.mergePayload((VarPayload) payload);
}
+ s7Payloads.add(readVarPayload);
} else if(payload.getType() == ParameterType.WRITE_VAR) {
if(writeVarPayload == null) {
writeVarPayload = (VarPayload) payload;
- s7Payloads.add(payload);
} else {
- readVarPayload = writeVarPayload.mergePayload((VarPayload) payload);
+ s7Payloads.remove(writeVarPayload);
+ writeVarPayload = writeVarPayload.mergePayload((VarPayload) payload);
}
+ s7Payloads.add(writeVarPayload);
} else {
s7Payloads.add(payload);
}
diff --git a/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/util/S7RequestSizeCalculator.java b/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/util/S7RequestSizeCalculator.java
index b8fe22c..c8feeee 100644
--- a/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/util/S7RequestSizeCalculator.java
+++ b/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/util/S7RequestSizeCalculator.java
@@ -65,8 +65,8 @@ public class S7RequestSizeCalculator {
* @return size in bytes this item would add to an existing request message.
*/
public static short getRequestItemTotalSize(VarParameterItem varParameterItem, VarPayloadItem varPayloadItem) {
- return (short) (getRequestReadWriteVarParameterItemSize(varParameterItem) +
- getRequestWriteVarPayloadItemSize(varPayloadItem));
+ return (short) (getRequestReadWriteVarParameterItemSize(varParameterItem) + ((varPayloadItem != null) ?
+ getRequestWriteVarPayloadItemSize(varPayloadItem) : 0));
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/netty/strategies/DefaultS7MessageProcessorTest.java b/plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/netty/strategies/DefaultS7MessageProcessorTest.java
index ed50c50..a92d2b8 100644
--- a/plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/netty/strategies/DefaultS7MessageProcessorTest.java
+++ b/plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/netty/strategies/DefaultS7MessageProcessorTest.java
@@ -593,7 +593,7 @@ public class DefaultS7MessageProcessorTest {
/**
* This test handles the special case in which a response is part of a single request message.
- * This means that it is immediatly finished and is hereby immediatly processed.
+ * This means that it is immediately finished and is hereby immediately processed.
*
* @throws PlcException
*/
@@ -651,6 +651,7 @@ public class DefaultS7MessageProcessorTest {
assertThat(processedResponse.getPayloads(), hasSize(1));
assertThat(processedResponse.getPayload(VarPayload.class).isPresent(), is(true));
+
VarPayload varPayload = processedResponse.getPayload(VarPayload.class).get();
assertThat(varPayload.getItems(), hasSize(2));
}