• Bug#1104933: activemq: diff for NMU version 5.17.6+dfsg-1.1 (2/48)

    From Emmanuel Arias@1:229/2 to All on Sun Jun 1 01:20:01 2025
    [continued from previous message]

    + .../v10/BaseDataStreamMarshaller.java | 12 +-
    + .../v10/ConnectionControlMarshaller.java | 4 +-
    + .../openwire/v10/MessageMarshaller.java | 8 +-
    + .../v10/PartialCommandMarshaller.java | 4 +-
    + .../v10/WireFormatInfoMarshaller.java | 4 +-
    + .../v10/XATransactionIdMarshaller.java | 8 +-
    + .../v11/BaseDataStreamMarshaller.java | 12 +-
    + .../v11/ConnectionControlMarshaller.java | 4 +-
    + .../openwire/v11/MessageMarshaller.java | 8 +-
    + .../v11/PartialCommandMarshaller.java | 4 +-
    + .../v11/WireFormatInfoMarshaller.java | 4 +-
    + .../v11/XATransactionIdMarshaller.java | 8 +-
    + .../v12/BaseDataStreamMarshaller.java | 12 +-
    + .../v12/ConnectionControlMarshaller.java | 4 +-
    + .../openwire/v12/MessageMarshaller.java | 8 +-
    + .../v12/PartialCommandMarshaller.java | 4 +-
    + .../v12/WireFormatInfoMarshaller.java | 4 +-
    + .../v12/XATransactionIdMarshaller.java | 8 +-
    + .../openwire/v9/BaseDataStreamMarshaller.java | 12 +-
    + .../v9/ConnectionControlMarshaller.java | 4 +-
    + .../openwire/v9/MessageMarshaller.java | 8 +-
    + .../openwire/v9/PartialCommandMarshaller.java | 4 +-
    + .../openwire/v9/WireFormatInfoMarshaller.java | 4 +-
    + .../v9/XATransactionIdMarshaller.java | 8 +-
    + .../apache/activemq/util/ByteSequence.java | 12 +
    + .../activemq/util/IOExceptionSupport.java | 8 +-
    + .../activemq/openwire/OpenWireUtilTest.java | 119 ++++++++
    + .../openwire/OpenWireValidationTest.java | 257 ++++++++++++++++--
    + activemq-openwire-legacy/pom.xml | 5 +
    + .../openwire/v2/BaseDataStreamMarshaller.java | 12 +-
    + .../openwire/v2/MessageMarshaller.java | 8 +-
    + .../openwire/v2/PartialCommandMarshaller.java | 4 +-
    + .../openwire/v2/WireFormatInfoMarshaller.java | 4 +-
    + .../v2/XATransactionIdMarshaller.java | 8 +-
    + .../openwire/v3/BaseDataStreamMarshaller.java | 12 +-
    + .../openwire/v3/MessageMarshaller.java | 8 +-
    + .../openwire/v3/PartialCommandMarshaller.java | 4 +-
    + .../openwire/v3/WireFormatInfoMarshaller.java | 4 +-
    + .../v3/XATransactionIdMarshaller.java | 8 +-
    + .../openwire/v4/BaseDataStreamMarshaller.java | 12 +-
    + .../openwire/v4/MessageMarshaller.java | 8 +-
    + .../openwire/v4/PartialCommandMarshaller.java | 4 +-
    + .../openwire/v4/WireFormatInfoMarshaller.java | 4 +-
    + .../v4/XATransactionIdMarshaller.java | 8 +-
    + .../openwire/v5/BaseDataStreamMarshaller.java | 12 +-
    + .../openwire/v5/MessageMarshaller.java | 8 +-
    + .../openwire/v5/PartialCommandMarshaller.java | 4 +-
    + .../openwire/v5/WireFormatInfoMarshaller.java | 4 +-
    + .../v5/XATransactionIdMarshaller.java | 8 +-
    + .../openwire/v6/BaseDataStreamMarshaller.java | 12 +-
    + .../openwire/v6/MessageMarshaller.java | 8 +-
    + .../openwire/v6/PartialCommandMarshaller.java | 4 +-
    + .../openwire/v6/WireFormatInfoMarshaller.java | 4 +-
    + .../v6/XATransactionIdMarshaller.java | 8 +-
    + .../openwire/v7/BaseDataStreamMarshaller.java | 12 +-
    + .../openwire/v7/MessageMarshaller.java | 8 +-
    + .../openwire/v7/PartialCommandMarshaller.java | 4 +-
    + .../openwire/v7/WireFormatInfoMarshaller.java | 4 +-
    + .../v7/XATransactionIdMarshaller.java | 8 +-
    + .../openwire/v8/BaseDataStreamMarshaller.java | 12 +-
    + .../v8/ConnectionControlMarshaller.java | 4 +-
    + .../openwire/v8/MessageMarshaller.java | 8 +-
    + .../openwire/v8/PartialCommandMarshaller.java | 4 +-
    + .../openwire/v8/WireFormatInfoMarshaller.java | 4 +-
    + .../v8/XATransactionIdMarshaller.java | 8 +-
    + .../OpenWireLegacyValidationTest.java | 46 +++-
    + pom.xml | 6 +
    + 75 files changed, 822 insertions(+), 257 deletions(-)
    + create mode 100644 activemq-client/src/test/java/org/apache/activemq/openwire/OpenWireUtilTest.java
    +
    +--- a/activemq-client/pom.xml
    ++++ b/activemq-client/pom.xml
    +@@ -89,6 +89,11 @@
    + <artifactId>geronimo-annotation_1.3_spec</artifactId>
    + <version>1.0</version>
    + </dependency>
    ++ <dependency>
    ++ <groupId>org.javassist</groupId>
    ++ <artifactId>javassist</artifactId>
    ++ <scope>test</scope>
    ++ </dependency>
    +
    + </dependencies>
    +
    +--- a/activemq-client/src/main/java/org/apache/activemq/openwire/OpenWireFormat.java
    ++++ b/activemq-client/src/main/java/org/apache/activemq/openwire/OpenWireFormat.java
    +@@ -48,7 +48,7 @@
    + private static final int MARSHAL_CACHE_SIZE = Short.MAX_VALUE / 2;
    + private static final int MARSHAL_CACHE_FREE_SPACE = 100;
    +
    +- private DataStreamMarshaller dataMarshallers[];
    ++ private DataStreamMarshaller[] dataMarshallers;
    + private int version;
    + private boolean stackTraceEnabled;
    + private boolean tcpNoDelayEnabled;
    +@@ -61,13 +61,22 @@
    + // The following fields are used for value caching
    + private short nextMarshallCacheIndex;
    + private short nextMarshallCacheEvictionIndex;
    +- private Map<DataStructure, Short> marshallCacheMap = new HashMap<DataStructure, Short>();
    ++ private Map<DataStructure, Short> marshallCacheMap = new HashMap<>();
    + private DataStructure marshallCache[] = null;
    + private DataStructure unmarshallCache[] = null;
    +- private DataByteArrayOutputStream bytesOut = new DataByteArrayOutputStream();
    +- private DataByteArrayInputStream bytesIn = new DataByteArrayInputStream();
    ++ private final DataByteArrayOutputStream bytesOut = new DataByteArrayOutputStream();
    ++ private final DataByteArrayInputStream bytesIn = new DataByteArrayInputStream();
    + private WireFormatInfo preferedWireFormatInfo;
    +
    ++ // Used to track the currentFrameSize for validation during unmarshalling ++ // Ideally we would pass the MarshallingContext directly to the marshalling methods,
    ++ // however this would require modifying the DataStreamMarshaller interface which would result
    ++ // in hundreds of existing methods having to be updated so this allows avoiding that and
    ++ // tracking the state without breaking the existing API.
    ++ // Note that while this is currently only used during unmarshalling, but if necessary could
    ++ // be extended in the future to be used during marshalling as well.
    ++ private final ThreadLocal<MarshallingContext> marshallingContext = new ThreadLocal<>();
    ++
    + public OpenWireFormat() {
    + this(DEFAULT_STORE_VERSION);
    + }
    +@@ -191,26 +200,23 @@
    + @Override
    + public synchronized Object unmarshal(ByteSequence sequence) throws IOException {
    + bytesIn.restart(sequence);
    +- // DataInputStream dis = new DataInputStream(new
    +- // ByteArrayInputStream(sequence));
    +
    +- if (!sizePrefixDisabled) {
    +- int size = bytesIn.readInt();
    +- if (sequence.getLength() - 4 != size) {
    +- // throw new IOException("Packet size does not match marshaled
    +- // size");
    +- }
    ++ try {
    ++ final var context = new MarshallingContext();
    ++ marshallingContext.set(context);
    +
    +- if (maxFrameSizeEnabled && size > maxFrameSize) {
    +- throw IOExceptionSupport.createFrameSizeException(size, maxFrameSize);
    ++ if (!sizePrefixDisabled) {

    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: you cannot sedate... all the things you hate (1:229/2)