You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Denis Abramov (JIRA)" <ji...@apache.org> on 2006/08/07 17:53:23 UTC
[jira] Created: (AMQ-866) Problem from open wire dotnet send float
properties message to java
Problem from open wire dotnet send float properties message to java
-------------------------------------------------------------------
Key: AMQ-866
URL: https://issues.apache.org/activemq/browse/AMQ-866
Project: ActiveMQ
Issue Type: Bug
Components: NMS (C# client)
Reporter: Denis Abramov
Am also interested in this issue (from Discussion forum):
I found a problem while i using open wire dotnet api to send float property message to java platform, the value i recieved that is deffrent with the value setting in dotnet platform.
here is send value(dotnet) is: float floatvalue = 2.1F
recieved value(java) is value is: 1.757237E-26
is this a bug or i make some mistake in my test?
follow is my test code:
dotnet:
float value= 2.12F;
Uri uri = new Uri("tcp://" + ip + ":61616?jms.useAsyncSend=true");
factory = new ConnectionFactory(uri);
using (IConnection connection = factory.CreateConnection())
{
ISession session = connection.CreateSession(acknowledgementMode);
IDestination destination = session.GetQueue(queueName);
IMessageProducer producer = session.CreateProducer(destination);
producer.Persistent = true;
// lets send a message
String text = "text";
ITextMessage request = session.CreateTextMessage(text);
request.NMSPersistent = true;
request.NMSCorrelationID = "abc";
request.Properties["custom8"] = custom8;
producer.Send(request);
}
java:
public void onMessage(Message message) {
System.out.println(message.getFloatProperty("custom8"));
}
could someone do me a favor?
Thx!
Matt
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Commented: (AMQ-866) Problem from open wire dotnet send
float properties message to java
Posted by "steve cook (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/activemq/browse/AMQ-866?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_37927 ]
steve cook commented on AMQ-866:
--------------------------------
Also realised we need to do the same for *sending* doubles & floats from NMS.
> Problem from open wire dotnet send float properties message to java
> -------------------------------------------------------------------
>
> Key: AMQ-866
> URL: https://issues.apache.org/activemq/browse/AMQ-866
> Project: ActiveMQ
> Issue Type: Bug
> Components: NMS (C# client)
> Reporter: Denis Abramov
> Attachments: double_patch.rtf
>
>
> Am also interested in this issue (from Discussion forum):
> I found a problem while i using open wire dotnet api to send float property message to java platform, the value i recieved that is deffrent with the value setting in dotnet platform.
> here is send value(dotnet) is: float floatvalue = 2.1F
> recieved value(java) is value is: 1.757237E-26
> is this a bug or i make some mistake in my test?
> follow is my test code:
> dotnet:
> float value= 2.12F;
> Uri uri = new Uri("tcp://" + ip + ":61616?jms.useAsyncSend=true");
> factory = new ConnectionFactory(uri);
> using (IConnection connection = factory.CreateConnection())
> {
> ISession session = connection.CreateSession(acknowledgementMode);
> IDestination destination = session.GetQueue(queueName);
> IMessageProducer producer = session.CreateProducer(destination);
> producer.Persistent = true;
> // lets send a message
> String text = "text";
> ITextMessage request = session.CreateTextMessage(text);
> request.NMSPersistent = true;
> request.NMSCorrelationID = "abc";
>
> request.Properties["custom8"] = custom8;
> producer.Send(request);
> }
> java:
> public void onMessage(Message message) {
> System.out.println(message.getFloatProperty("custom8"));
> }
> could someone do me a favor?
> Thx!
> Matt
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Updated: (AMQ-866) Problem from open wire dotnet send float
properties message to java
Posted by "steve cook (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/activemq/browse/AMQ-866?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
steve cook updated AMQ-866:
---------------------------
Attachment: double_patch.rtf
> Problem from open wire dotnet send float properties message to java
> -------------------------------------------------------------------
>
> Key: AMQ-866
> URL: https://issues.apache.org/activemq/browse/AMQ-866
> Project: ActiveMQ
> Issue Type: Bug
> Components: NMS (C# client)
> Reporter: Denis Abramov
> Attachments: double_patch.rtf
>
>
> Am also interested in this issue (from Discussion forum):
> I found a problem while i using open wire dotnet api to send float property message to java platform, the value i recieved that is deffrent with the value setting in dotnet platform.
> here is send value(dotnet) is: float floatvalue = 2.1F
> recieved value(java) is value is: 1.757237E-26
> is this a bug or i make some mistake in my test?
> follow is my test code:
> dotnet:
> float value= 2.12F;
> Uri uri = new Uri("tcp://" + ip + ":61616?jms.useAsyncSend=true");
> factory = new ConnectionFactory(uri);
> using (IConnection connection = factory.CreateConnection())
> {
> ISession session = connection.CreateSession(acknowledgementMode);
> IDestination destination = session.GetQueue(queueName);
> IMessageProducer producer = session.CreateProducer(destination);
> producer.Persistent = true;
> // lets send a message
> String text = "text";
> ITextMessage request = session.CreateTextMessage(text);
> request.NMSPersistent = true;
> request.NMSCorrelationID = "abc";
>
> request.Properties["custom8"] = custom8;
> producer.Send(request);
> }
> java:
> public void onMessage(Message message) {
> System.out.println(message.getFloatProperty("custom8"));
> }
> could someone do me a favor?
> Thx!
> Matt
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Commented: (AMQ-866) Problem from open wire dotnet send
float properties message to java
Posted by "steve cook (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/activemq/browse/AMQ-866?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_37873 ]
steve cook commented on AMQ-866:
--------------------------------
Same problem with doubles.
This is just a byte order problem - here is a patch for doubles. floats can be fixed in the same way:
>
> I've found a byte-order problem sending a double from Java ActiveMQ to a
> NMS/CSharp receiver:
>
> (NMS) ActiveMQ.OpenWire.OpenWireBinaryReader has no definition for
> ReadDouble(), and by default calls the MS .NET BinaryReader.ReadDouble()
> which reads the bytes in the wrong order. Here is the fix:
>
> add a new method to OpenWireBinaryReader.cs:
>
> public override double ReadDouble()
> {
> return EndianSupport.SwitchEndian(base.ReadBytes(8));
> }
>
> add a new method to EndianSupport.cs:
>
> public static double SwitchEndian(byte[] bytes)
> {
> //Reverse byte array
> byte[] reverse = new byte[8];
> reverse[0] = bytes[7];
> reverse[1] = bytes[6];
> reverse[2] = bytes[5];
> reverse[3] = bytes[4];
> reverse[4] = bytes[3];
> reverse[5] = bytes[2];
> reverse[6] = bytes[1];
> reverse[7] = bytes[0];
> BinaryReader br = new BinaryReader(new MemoryStream(reverse));
> return br.ReadDouble();
> }
>
> If anyone knows a cleaner way of doing this, please let me know.
>
> thx
> /Steve
> Problem from open wire dotnet send float properties message to java
> -------------------------------------------------------------------
>
> Key: AMQ-866
> URL: https://issues.apache.org/activemq/browse/AMQ-866
> Project: ActiveMQ
> Issue Type: Bug
> Components: NMS (C# client)
> Reporter: Denis Abramov
>
> Am also interested in this issue (from Discussion forum):
> I found a problem while i using open wire dotnet api to send float property message to java platform, the value i recieved that is deffrent with the value setting in dotnet platform.
> here is send value(dotnet) is: float floatvalue = 2.1F
> recieved value(java) is value is: 1.757237E-26
> is this a bug or i make some mistake in my test?
> follow is my test code:
> dotnet:
> float value= 2.12F;
> Uri uri = new Uri("tcp://" + ip + ":61616?jms.useAsyncSend=true");
> factory = new ConnectionFactory(uri);
> using (IConnection connection = factory.CreateConnection())
> {
> ISession session = connection.CreateSession(acknowledgementMode);
> IDestination destination = session.GetQueue(queueName);
> IMessageProducer producer = session.CreateProducer(destination);
> producer.Persistent = true;
> // lets send a message
> String text = "text";
> ITextMessage request = session.CreateTextMessage(text);
> request.NMSPersistent = true;
> request.NMSCorrelationID = "abc";
>
> request.Properties["custom8"] = custom8;
> producer.Send(request);
> }
> java:
> public void onMessage(Message message) {
> System.out.println(message.getFloatProperty("custom8"));
> }
> could someone do me a favor?
> Thx!
> Matt
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira