Hi,

in the meanwhile I was able to debug and analyse and found out that the
server is splitting very large messages into chunks of 8192 Bytes. The
underlyingInput Buffer is however of the size of inputBuffer defined in
FrameParser, that is 4096. After modifying the respective line in
FrameParserConstructor to "_inputBuffer = newWriteableBuffer(8*1024);" The
large chunks can be properly SSL unwrapped. 

Is it safe for the rest of use cases to alter this value? 
Would the developer team consider to make this "chunk size" something
configurable for the messenger implementation?

Thanks and bests
Frank

-----Ursprüngliche Nachricht-----
Von: Dr. Frank Heuschen [mailto:[email protected]] 
Gesendet: Mittwoch, 8. Oktober 2014 11:45
An: [email protected]
Cc: Christian Wesp
Betreff: proton-j 0.7 with SSL throws Exception at large messages

Hi,

 

I am developing an application that acts as an AMQP Client, using an SSL
connection on a topic. The messages received on this topic are quite large
and for each message I catch the following Exception:

 

java.nio.BufferOverflowException

        at java.nio.HeapByteBuffer.put(Unknown Source)

        at
org.apache.qpid.proton.engine.impl.ssl.SimpleSslTransportWrapper.unwrapInput
(SimpleSslTransportWrapper.java:128)

        at
org.apache.qpid.proton.engine.impl.ssl.SimpleSslTransportWrapper.process(Sim
pleSslTransportWrapper.java:344)

        at
org.apache.qpid.proton.engine.impl.ssl.SslImpl$UnsecureClientAwareTransportW
rapper.process(SslImpl.java:132)

        at
org.apache.qpid.proton.engine.impl.TransportImpl.process(TransportImpl.java:
1265)

        at
org.apache.qpid.proton.driver.impl.ConnectorImpl.read(ConnectorImpl.java:136
)

        at
org.apache.qpid.proton.driver.impl.ConnectorImpl.process(ConnectorImpl.java:
95)

        at
org.apache.qpid.proton.messenger.impl.MessengerImpl.processActive(MessengerI
mpl.java:743)

        at
org.apache.qpid.proton.messenger.impl.MessengerImpl.waitUntil(MessengerImpl.
java:895)

        at
org.apache.qpid.proton.messenger.impl.MessengerImpl.waitUntil(MessengerImpl.
java:853)

        at
org.apache.qpid.proton.messenger.impl.MessengerImpl.recv(MessengerImpl.java:
451)

        at
org.apache.qpid.proton.messenger.impl.MessengerImpl.recv(MessengerImpl.java:
456)

        at com.oraise.Receiver.run(Receiver.java:30)

 

If I run the same application with an external SSL Proxy, the messages are
interpreted by proton-j without problem. Is there a (configurable) threshold
for message sizes in the SSL implementation? I understand that the Java7
implementation of SSLEngine provides a int getApplicationBufferSize()
method, but where is this value determined in the first place?

 

Thanks and kind regards

Frank Heuschen

 

Dr. Frank Heuschen
--
oraise GmbH
Walther-von-Cronberg-Platz 6
60594 Frankfurt am Main
Tel.: +49 69 981 955-361
Mob.: +49 172 6945821
E-Mail:  <mailto:[email protected]> [email protected]

Firmensitz: Haferwende 10 a, 28357 Bremen
Registergericht: AG Bremen HRB 17491
Geschäftsführer: Markus Hengstenberg

oraise Beteiligungs- und Verwaltungs GmbH & Co. KG
Firmensitz: Haferwende 10 a, 28357 Bremen
Registergericht: AG Bremen HRA 24070
Geschäftsführer: Markus Hengstenberg

 



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to