Uploaded image for project: 'ActiveMQ .Net'
  1. ActiveMQ .Net
  2. AMQNET-480

"Bad state" exception, decompressing fails with Ionic.Zlib, Version=



    • Bug
    • Status: Resolved
    • Blocker
    • Resolution: Fixed
    • 1.6.2
    • 1.6.3, 1.7.0
    • NMS
    • None
    • ActiveMQ 5.9.0


      We are using NMS trunk rev and are facing trouble when decompressing a broker message (ActiveMq 5.9.0) with compresed messages to be consumed by a .Net/ApacheNMS client.

      It seems only binary files are affected and not all of them, those files affected do have a size above 48000 bytes.

      Bad state (incorrect data check)
      at Ionic.Zlib.InflateManager.Inflate(FlushType flush)
      at Ionic.Zlib.ZlibCodec.Inflate(FlushType flush)
      at Ionic.Zlib.ZlibBaseStream.Read(Byte[] buffer, Int32 offset, Int32 count)
      at Ionic.Zlib.ZlibStream.Read(Byte[] buffer, Int32 offset, Int32 count)
      at System.IO.BinaryReader.Read(Byte[] buffer, Int32 index, Int32 count)
      at Apache.NMS.ActiveMQ.Commands.ActiveMQBytesMessage.get_Content()

      In http://dotnetzip.codeplex.com/workitem/10562 there seems to be an old issue.

      So in NMS 1.6.2 or even 1.7.0 trunk it is still 'Ionic.Zlib, Version=' used but not the latest? I suppose it is a problem of the dll included rather than a producer/broker/consumer issue?

      Is it possible do update NMS at least to 'Ionic.Zlib, Version=' which has the bug mentioned fixed or even the to latest

      We failed to do so ourselves with the following error, any advice is appreciated:

      Could not load file or assembly 'Ionic.Zlib, Version=, Culture=neutral, PublicKeyToken=edbe51ad942a3f5c' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
      at Apache.NMS.ActiveMQ.CompressionPolicy.CreateDecompressionStream(Stream data)
      at Apache.NMS.ActiveMQ.Commands.ActiveMQBytesMessage.InitializeReading() in d:\Work\Projects\Vesely\NMS\activemq-dotnet\Apache.NMS.ActiveMQ\trunk\src\main\csharp\Commands\ActiveMQBytesMessage.cs:line 499
      at Apache.NMS.ActiveMQ.Commands.ActiveMQBytesMessage.get_Content()




            tabish Timothy A. Bish
            tom_m Tom M.
            0 Vote for this issue
            2 Start watching this issue