[jira] [Commented] (AMQ-4917) LevelDB store can fail when using durable subs

2013-12-05 Thread Tenzin giatso (JIRA)

[ 
https://issues.apache.org/jira/browse/AMQ-4917?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13839951#comment-13839951
 ] 

Tenzin giatso commented on AMQ-4917:


Hi,
thank you for your help.
i'll try the snapshot right now.
I'll keep you in touch.

 LevelDB store can fail when using durable subs
 --

 Key: AMQ-4917
 URL: https://issues.apache.org/jira/browse/AMQ-4917
 Project: ActiveMQ
  Issue Type: Bug
  Components: Broker
Affects Versions: 5.9.0
Reporter: Hiram Chirino
Assignee: Hiram Chirino
 Fix For: 5.10.0


 Tenzin giatso  original reported this issue in AMQ-4837 :
 The broker stopped 3 times this night after about 6h50min, then 6h50 min then 
 50min.
 The error sounds to be the saùme (except the line number in class) but the 
 broker restart automaticly with the snapshot.
 2013-11-19 05:27:43,671 | INFO | Stopping BrokerService[localhost] due to 
 exception, java.io.IOException | 
 org.apache.activemq.util.DefaultIOExceptionHandler | LevelDB IOException 
 handler.
 java.io.IOException
 at 
 org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:39)
 at 
 org.apache.activemq.leveldb.LevelDBClient.might_fail(LevelDBClient.scala:554)
 at 
 org.apache.activemq.leveldb.LevelDBClient.might_fail_using_index(LevelDBClient.scala:1021)
 at 
 org.apache.activemq.leveldb.LevelDBClient.collectionCursor(LevelDBClient.scala:1320)
 at 
 org.apache.activemq.leveldb.LevelDBClient.queueCursor(LevelDBClient.scala:1244)
 at org.apache.activemq.leveldb.DBManager.cursorMessages(DBManager.scala:708)
 at 
 org.apache.activemq.leveldb.LevelDBStore$LevelDBMessageStore.recover(LevelDBStore.scala:747)
 at org.apache.activemq.broker.region.Topic.doBrowse(Topic.java:588)
 at org.apache.activemq.broker.region.Topic.access$100(Topic.java:65)
 at org.apache.activemq.broker.region.Topic$6.run(Topic.java:721)
 at 
 org.apache.activemq.thread.SchedulerTimerTask.run(SchedulerTimerTask.java:33)
 at java.util.TimerThread.mainLoop(Unknown Source)
 at java.util.TimerThread.run(Unknown Source)
 Caused by: java.lang.NullPointerException
 at 
 org.apache.activemq.leveldb.LevelDBClient$$anonfun$queueCursor$1.apply(LevelDBClient.scala:1248)
 It's not easy to reproduce. It's better with the snapshot but i can't say 
 that no messages are lost with leveldb.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (AMQ-4887) ActiveMQBytesMessage will lost content if message's property was set before copy

2013-12-05 Thread Kevin Earls (JIRA)

 [ 
https://issues.apache.org/jira/browse/AMQ-4887?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kevin Earls updated AMQ-4887:
-

Attachment: AMQ-4887.patch

This is a slightly modified version of the original patch.  Tim, can you review 
this?

I have also added a test, AMQ4887Test.java to activemq-unit-tests


 ActiveMQBytesMessage will lost content if message's property was set before 
 copy 
 -

 Key: AMQ-4887
 URL: https://issues.apache.org/jira/browse/AMQ-4887
 Project: ActiveMQ
  Issue Type: Bug
  Components: Broker
Affects Versions: 5.9.0
Reporter: caoyunfei
Assignee: Kevin Earls
 Attachments: AMQ-4887.patch, ActiveMQBytesMessage.java.patch, 
 ActiveMQBytesMessageTest.java, Consumer.java, Producer.java

   Original Estimate: 24h
  Remaining Estimate: 24h

 ActiveMQBytesMessage will lost content if message's property was set before 
 copy. Here is the test code:
 Producer:
 MessageProducer producer;  
 //initialize Connection, Session, MessageProducer
 byte[] bs = bytes message.getBytes();  
 BytesMessage message = session.createBytesMessage();  
 message.writeBytes(bs);  //write bytes to message 1
   
 for(int i=0; i 0; i++){  
   // then set message's propery   2
 message.setLongProperty(sendTime, System.currentTimeMillis());  
 try{  
 producer.send(message);  
 }catch(){  
  e.printStackTrace();  
 }
 }  
 Consumer:
 MessageConsumer consumer  
 //initailize Connection, Session, MessageConsumer  
 for(int i=0; i10; i++){  
 ActiveMQBytesMessage msg = 
 (ActiveMQBytesMessage)consumer.receive(60*1000);  
 long sendTime = message.getLongProperty(sendTime);  
 System.out.println(sendtime: + sendTime);  
 ByteSequence bs = message.getMessage().getContent();  
 System.out.println(bytes data: + new String(bs.getData()));  
 }  
 Expected result:
 consumer gets bytes data in all received messages
 Actual result:
 only the fisrt message has bytes data, all other messages lost bytes data, 
 while long property value is not lost;
 Analysization:
 message gets copied when send, it will call storeContent() before copy,  
 DataOutputStream dataOut will be closed and the data in dataOut will be set 
 to conent. This works correctly if there are no property was set.
 when setLongProperty was called, it will call setObjectProperty() then will 
 call  initializeWriting(), here DataOutputStream dataOut  will be create 
 AGAIN. 
 So when message was copied in second time, DataOutputStream dataOut is NOT 
 null, but EMPTY, it will clear the value in content.
 suggestion:
 restore the content data to DataOutputStream dataOut when nitializeWriting()
 my fix:
 ActiveMQBytesMessage :
  private void  initializeWriting() throws JMSException {
 669The original code
 ..
 701
 //fix code
 if(this.content !=null  this.content.length 0){
 try{
 this.dataOut.write(this.content.getData());
 }catch(IOException ioe){
 throw JMSExceptionSupport.create(ioe);
 }
 }
 702}



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Created] (AMQ-4920) AmqpErrorException occurs with multiple concurrent amqp topic consumers

2013-12-05 Thread Kevin Earls (JIRA)
Kevin Earls created AMQ-4920:


 Summary: AmqpErrorException occurs with multiple concurrent amqp 
topic consumers
 Key: AMQ-4920
 URL: https://issues.apache.org/jira/browse/AMQ-4920
 Project: ActiveMQ
  Issue Type: Bug
Reporter: Kevin Earls
Assignee: Kevin Earls


I'll add a test to reproduce this.  There are currently 2 problems.  The more 
frequent one looks like:  org.apache.qpid.amqp_1_0.type.AmqpErrorException
at 
org.apache.qpid.amqp_1_0.codec.ValueHandler.readConstructor(ValueHandler.java:99)
at 
org.apache.qpid.amqp_1_0.codec.ValueHandler.parse(ValueHandler.java:90)
at 
org.apache.qpid.amqp_1_0.codec.ValueHandler.readConstructor(ValueHandler.java:105)
at 
org.apache.qpid.amqp_1_0.codec.ValueHandler.parse(ValueHandler.java:90)

… repeated many times
at 
org.apache.qpid.amqp_1_0.codec.ValueHandler.readConstructor(ValueHandler.java:105)
at 
org.apache.qpid.amqp_1_0.codec.ValueHandler.parse(ValueHandler.java:90)
at 
org.apache.qpid.amqp_1_0.messaging.SectionDecoderImpl.parseAll(SectionDecoderImpl.java:49)
at org.apache.qpid.amqp_1_0.client.Receiver.receive(Receiver.java:280)
at 
org.apache.qpid.amqp_1_0.jms.impl.MessageConsumerImpl.receive0(MessageConsumerImpl.java:286)
at 
org.apache.qpid.amqp_1_0.jms.impl.MessageConsumerImpl.receiveImpl(MessageConsumerImpl.java:255)
at 
org.apache.qpid.amqp_1_0.jms.impl.MessageConsumerImpl.receive(MessageConsumerImpl.java:238)
at 
org.apache.qpid.amqp_1_0.jms.impl.MessageConsumerImpl.receive(MessageConsumerImpl.java:56)
at 
org.apache.activemq.transport.amqp.ENTMQ466ConsumerThread.run(ENTMQ466Test.java:123)

This occurs at the line final EncodedMessage amqp = 
outboundTransformer.transform(jms); in the ConsumerContext.pumpOutbound() 
method of AmqpProtocolConverter(). This call sometimes returns with its content 
(amqp.getArray()) set to all zeros. 

On those messages this line
LOG.info(In pumpOutbound, setting currentBuffer to offset {} length {} content 
[{}], amqp.getArrayOffset(), amqp.getLength(), amqp.getArray());
returns:

2013-11-26 17:19:16,680 [calhost] Task-3] - INFO AmqpProtocolConverter - In 
pumpOutbound, setting currentBuffer to offset 0 length 162 content [[0, 0, 0, 
0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0,\
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0\
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]

At the root of this, outboundTransformer is a (proton) AutoOutboundTransformer. 
 It calls AMQPNativeOutboundTransformer.transform(), which calls 
msg.readBytes(data), which sometimes writes all 0s to data.  Here msg is an 
ActiveMQBytesMessage.  





--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (AMQ-4887) ActiveMQBytesMessage will lost content if message's property was set before copy

2013-12-05 Thread Timothy Bish (JIRA)

[ 
https://issues.apache.org/jira/browse/AMQ-4887?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13840030#comment-13840030
 ] 

Timothy Bish commented on AMQ-4887:
---

I'll review in a bit

 ActiveMQBytesMessage will lost content if message's property was set before 
 copy 
 -

 Key: AMQ-4887
 URL: https://issues.apache.org/jira/browse/AMQ-4887
 Project: ActiveMQ
  Issue Type: Bug
  Components: Broker
Affects Versions: 5.9.0
Reporter: caoyunfei
Assignee: Timothy Bish
 Attachments: AMQ-4887.patch, ActiveMQBytesMessage.java.patch, 
 ActiveMQBytesMessageTest.java, Consumer.java, Producer.java

   Original Estimate: 24h
  Remaining Estimate: 24h

 ActiveMQBytesMessage will lost content if message's property was set before 
 copy. Here is the test code:
 Producer:
 MessageProducer producer;  
 //initialize Connection, Session, MessageProducer
 byte[] bs = bytes message.getBytes();  
 BytesMessage message = session.createBytesMessage();  
 message.writeBytes(bs);  //write bytes to message 1
   
 for(int i=0; i 0; i++){  
   // then set message's propery   2
 message.setLongProperty(sendTime, System.currentTimeMillis());  
 try{  
 producer.send(message);  
 }catch(){  
  e.printStackTrace();  
 }
 }  
 Consumer:
 MessageConsumer consumer  
 //initailize Connection, Session, MessageConsumer  
 for(int i=0; i10; i++){  
 ActiveMQBytesMessage msg = 
 (ActiveMQBytesMessage)consumer.receive(60*1000);  
 long sendTime = message.getLongProperty(sendTime);  
 System.out.println(sendtime: + sendTime);  
 ByteSequence bs = message.getMessage().getContent();  
 System.out.println(bytes data: + new String(bs.getData()));  
 }  
 Expected result:
 consumer gets bytes data in all received messages
 Actual result:
 only the fisrt message has bytes data, all other messages lost bytes data, 
 while long property value is not lost;
 Analysization:
 message gets copied when send, it will call storeContent() before copy,  
 DataOutputStream dataOut will be closed and the data in dataOut will be set 
 to conent. This works correctly if there are no property was set.
 when setLongProperty was called, it will call setObjectProperty() then will 
 call  initializeWriting(), here DataOutputStream dataOut  will be create 
 AGAIN. 
 So when message was copied in second time, DataOutputStream dataOut is NOT 
 null, but EMPTY, it will clear the value in content.
 suggestion:
 restore the content data to DataOutputStream dataOut when nitializeWriting()
 my fix:
 ActiveMQBytesMessage :
  private void  initializeWriting() throws JMSException {
 669The original code
 ..
 701
 //fix code
 if(this.content !=null  this.content.length 0){
 try{
 this.dataOut.write(this.content.getData());
 }catch(IOException ioe){
 throw JMSExceptionSupport.create(ioe);
 }
 }
 702}



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Assigned] (AMQ-4887) ActiveMQBytesMessage will lost content if message's property was set before copy

2013-12-05 Thread Timothy Bish (JIRA)

 [ 
https://issues.apache.org/jira/browse/AMQ-4887?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Timothy Bish reassigned AMQ-4887:
-

Assignee: Timothy Bish  (was: Kevin Earls)

 ActiveMQBytesMessage will lost content if message's property was set before 
 copy 
 -

 Key: AMQ-4887
 URL: https://issues.apache.org/jira/browse/AMQ-4887
 Project: ActiveMQ
  Issue Type: Bug
  Components: Broker
Affects Versions: 5.9.0
Reporter: caoyunfei
Assignee: Timothy Bish
 Attachments: AMQ-4887.patch, ActiveMQBytesMessage.java.patch, 
 ActiveMQBytesMessageTest.java, Consumer.java, Producer.java

   Original Estimate: 24h
  Remaining Estimate: 24h

 ActiveMQBytesMessage will lost content if message's property was set before 
 copy. Here is the test code:
 Producer:
 MessageProducer producer;  
 //initialize Connection, Session, MessageProducer
 byte[] bs = bytes message.getBytes();  
 BytesMessage message = session.createBytesMessage();  
 message.writeBytes(bs);  //write bytes to message 1
   
 for(int i=0; i 0; i++){  
   // then set message's propery   2
 message.setLongProperty(sendTime, System.currentTimeMillis());  
 try{  
 producer.send(message);  
 }catch(){  
  e.printStackTrace();  
 }
 }  
 Consumer:
 MessageConsumer consumer  
 //initailize Connection, Session, MessageConsumer  
 for(int i=0; i10; i++){  
 ActiveMQBytesMessage msg = 
 (ActiveMQBytesMessage)consumer.receive(60*1000);  
 long sendTime = message.getLongProperty(sendTime);  
 System.out.println(sendtime: + sendTime);  
 ByteSequence bs = message.getMessage().getContent();  
 System.out.println(bytes data: + new String(bs.getData()));  
 }  
 Expected result:
 consumer gets bytes data in all received messages
 Actual result:
 only the fisrt message has bytes data, all other messages lost bytes data, 
 while long property value is not lost;
 Analysization:
 message gets copied when send, it will call storeContent() before copy,  
 DataOutputStream dataOut will be closed and the data in dataOut will be set 
 to conent. This works correctly if there are no property was set.
 when setLongProperty was called, it will call setObjectProperty() then will 
 call  initializeWriting(), here DataOutputStream dataOut  will be create 
 AGAIN. 
 So when message was copied in second time, DataOutputStream dataOut is NOT 
 null, but EMPTY, it will clear the value in content.
 suggestion:
 restore the content data to DataOutputStream dataOut when nitializeWriting()
 my fix:
 ActiveMQBytesMessage :
  private void  initializeWriting() throws JMSException {
 669The original code
 ..
 701
 //fix code
 if(this.content !=null  this.content.length 0){
 try{
 this.dataOut.write(this.content.getData());
 }catch(IOException ioe){
 throw JMSExceptionSupport.create(ioe);
 }
 }
 702}



--
This message was sent by Atlassian JIRA
(v6.1#6144)


Re: [VOTE] Release ActiveMQ-CPP v3.8.2 #2

2013-12-05 Thread Claus Ibsen
+1

On Wed, Dec 4, 2013 at 8:40 PM, Timothy Bish tabish...@gmail.com wrote:
 Vote open for ActiveMQ-CPP v3.8.2

 This is a small patch release that addresses some bugs found since the
 v3.8.1 release.

 The source bundles for this release can be found here:
 http://people.apache.org/~tabish/cms-3.8.x/

 The Wiki page for the release is here:
 http://activemq.apache.org/cms/activemq-cpp-382-release.html

 The list of issues fixed in this release is available here:
 https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311207styleName=Htmlversion=12325248

 Please cast your votes:

 [ ] +1 Release the source as Apache ActiveMQ-CPP 3.8.2
 [ ] -1 Veto the release (provide specific comments)

 Here is my +1

 --
 Tim Bish
 Sr Software Engineer | RedHat Inc.
 tim.b...@redhat.com | www.fusesource.com | www.redhat.com
 skype: tabish121 | twitter: @tabish121
 blog: http://timbish.blogspot.com/




-- 
Claus Ibsen
-
Red Hat, Inc.
Email: cib...@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen


Re: [VOTE] Release ActiveMQ-CPP v3.8.2 #2

2013-12-05 Thread Christian Posta
+1

On Thu, Dec 5, 2013 at 8:20 AM, Claus Ibsen claus.ib...@gmail.com wrote:
 +1

 On Wed, Dec 4, 2013 at 8:40 PM, Timothy Bish tabish...@gmail.com wrote:
 Vote open for ActiveMQ-CPP v3.8.2

 This is a small patch release that addresses some bugs found since the
 v3.8.1 release.

 The source bundles for this release can be found here:
 http://people.apache.org/~tabish/cms-3.8.x/

 The Wiki page for the release is here:
 http://activemq.apache.org/cms/activemq-cpp-382-release.html

 The list of issues fixed in this release is available here:
 https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311207styleName=Htmlversion=12325248

 Please cast your votes:

 [ ] +1 Release the source as Apache ActiveMQ-CPP 3.8.2
 [ ] -1 Veto the release (provide specific comments)

 Here is my +1

 --
 Tim Bish
 Sr Software Engineer | RedHat Inc.
 tim.b...@redhat.com | www.fusesource.com | www.redhat.com
 skype: tabish121 | twitter: @tabish121
 blog: http://timbish.blogspot.com/




 --
 Claus Ibsen
 -
 Red Hat, Inc.
 Email: cib...@redhat.com
 Twitter: davsclaus
 Blog: http://davsclaus.com
 Author of Camel in Action: http://www.manning.com/ibsen



-- 
Christian Posta
http://www.christianposta.com/blog
twitter: @christianposta


[jira] [Commented] (AMQ-4887) ActiveMQBytesMessage will lost content if message's property was set before copy

2013-12-05 Thread Timothy Bish (JIRA)

[ 
https://issues.apache.org/jira/browse/AMQ-4887?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13840214#comment-13840214
 ] 

Timothy Bish commented on AMQ-4887:
---

The fix seems reasonable but I think there's still a problem here if the 
content is stored compressed.  If you simply rewrite the contents into the 
output stream and message compression is enabled you'd be writing compressed 
data with an output stream that's doing compression again so that's not good, 
plus you be adding new data onto already compressed content if you use any of 
the write methods so you are doubly corrupted.  

 ActiveMQBytesMessage will lost content if message's property was set before 
 copy 
 -

 Key: AMQ-4887
 URL: https://issues.apache.org/jira/browse/AMQ-4887
 Project: ActiveMQ
  Issue Type: Bug
  Components: Broker
Affects Versions: 5.9.0
Reporter: caoyunfei
Assignee: Timothy Bish
 Attachments: AMQ-4887.patch, ActiveMQBytesMessage.java.patch, 
 ActiveMQBytesMessageTest.java, Consumer.java, Producer.java

   Original Estimate: 24h
  Remaining Estimate: 24h

 ActiveMQBytesMessage will lost content if message's property was set before 
 copy. Here is the test code:
 Producer:
 MessageProducer producer;  
 //initialize Connection, Session, MessageProducer
 byte[] bs = bytes message.getBytes();  
 BytesMessage message = session.createBytesMessage();  
 message.writeBytes(bs);  //write bytes to message 1
   
 for(int i=0; i 0; i++){  
   // then set message's propery   2
 message.setLongProperty(sendTime, System.currentTimeMillis());  
 try{  
 producer.send(message);  
 }catch(){  
  e.printStackTrace();  
 }
 }  
 Consumer:
 MessageConsumer consumer  
 //initailize Connection, Session, MessageConsumer  
 for(int i=0; i10; i++){  
 ActiveMQBytesMessage msg = 
 (ActiveMQBytesMessage)consumer.receive(60*1000);  
 long sendTime = message.getLongProperty(sendTime);  
 System.out.println(sendtime: + sendTime);  
 ByteSequence bs = message.getMessage().getContent();  
 System.out.println(bytes data: + new String(bs.getData()));  
 }  
 Expected result:
 consumer gets bytes data in all received messages
 Actual result:
 only the fisrt message has bytes data, all other messages lost bytes data, 
 while long property value is not lost;
 Analysization:
 message gets copied when send, it will call storeContent() before copy,  
 DataOutputStream dataOut will be closed and the data in dataOut will be set 
 to conent. This works correctly if there are no property was set.
 when setLongProperty was called, it will call setObjectProperty() then will 
 call  initializeWriting(), here DataOutputStream dataOut  will be create 
 AGAIN. 
 So when message was copied in second time, DataOutputStream dataOut is NOT 
 null, but EMPTY, it will clear the value in content.
 suggestion:
 restore the content data to DataOutputStream dataOut when nitializeWriting()
 my fix:
 ActiveMQBytesMessage :
  private void  initializeWriting() throws JMSException {
 669The original code
 ..
 701
 //fix code
 if(this.content !=null  this.content.length 0){
 try{
 this.dataOut.write(this.content.getData());
 }catch(IOException ioe){
 throw JMSExceptionSupport.create(ioe);
 }
 }
 702}



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (AMQ-4887) ActiveMQBytesMessage will lost content if message's property was set before copy

2013-12-05 Thread Timothy Bish (JIRA)

[ 
https://issues.apache.org/jira/browse/AMQ-4887?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13840219#comment-13840219
 ] 

Timothy Bish commented on AMQ-4887:
---

I'm also going to guess that the StreamMessage implementation suffers from the 
same problem and the test should be expanded to check that message too, as well 
as the compressed case.  

 ActiveMQBytesMessage will lost content if message's property was set before 
 copy 
 -

 Key: AMQ-4887
 URL: https://issues.apache.org/jira/browse/AMQ-4887
 Project: ActiveMQ
  Issue Type: Bug
  Components: Broker
Affects Versions: 5.9.0
Reporter: caoyunfei
Assignee: Timothy Bish
 Attachments: AMQ-4887.patch, ActiveMQBytesMessage.java.patch, 
 ActiveMQBytesMessageTest.java, Consumer.java, Producer.java

   Original Estimate: 24h
  Remaining Estimate: 24h

 ActiveMQBytesMessage will lost content if message's property was set before 
 copy. Here is the test code:
 Producer:
 MessageProducer producer;  
 //initialize Connection, Session, MessageProducer
 byte[] bs = bytes message.getBytes();  
 BytesMessage message = session.createBytesMessage();  
 message.writeBytes(bs);  //write bytes to message 1
   
 for(int i=0; i 0; i++){  
   // then set message's propery   2
 message.setLongProperty(sendTime, System.currentTimeMillis());  
 try{  
 producer.send(message);  
 }catch(){  
  e.printStackTrace();  
 }
 }  
 Consumer:
 MessageConsumer consumer  
 //initailize Connection, Session, MessageConsumer  
 for(int i=0; i10; i++){  
 ActiveMQBytesMessage msg = 
 (ActiveMQBytesMessage)consumer.receive(60*1000);  
 long sendTime = message.getLongProperty(sendTime);  
 System.out.println(sendtime: + sendTime);  
 ByteSequence bs = message.getMessage().getContent();  
 System.out.println(bytes data: + new String(bs.getData()));  
 }  
 Expected result:
 consumer gets bytes data in all received messages
 Actual result:
 only the fisrt message has bytes data, all other messages lost bytes data, 
 while long property value is not lost;
 Analysization:
 message gets copied when send, it will call storeContent() before copy,  
 DataOutputStream dataOut will be closed and the data in dataOut will be set 
 to conent. This works correctly if there are no property was set.
 when setLongProperty was called, it will call setObjectProperty() then will 
 call  initializeWriting(), here DataOutputStream dataOut  will be create 
 AGAIN. 
 So when message was copied in second time, DataOutputStream dataOut is NOT 
 null, but EMPTY, it will clear the value in content.
 suggestion:
 restore the content data to DataOutputStream dataOut when nitializeWriting()
 my fix:
 ActiveMQBytesMessage :
  private void  initializeWriting() throws JMSException {
 669The original code
 ..
 701
 //fix code
 if(this.content !=null  this.content.length 0){
 try{
 this.dataOut.write(this.content.getData());
 }catch(IOException ioe){
 throw JMSExceptionSupport.create(ioe);
 }
 }
 702}



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (AMQ-4910) Windows batch script doesn't like spaces in installation path

2013-12-05 Thread Sam Yi (JIRA)

[ 
https://issues.apache.org/jira/browse/AMQ-4910?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13840229#comment-13840229
 ] 

Sam Yi commented on AMQ-4910:
-

Seems like this is caused by one of the new java arguments from commit 
981c8e247f11871265a20a48e463096028188f36; I was able to work around this by 
putting double quotes around the path in the following line: 

{code}wrapper.java.additional.15=-Djava.security.auth.login.config=%ACTIVEMQ_CONF%/login.config{code}



 Windows batch script doesn't like spaces in installation path
 -

 Key: AMQ-4910
 URL: https://issues.apache.org/jira/browse/AMQ-4910
 Project: ActiveMQ
  Issue Type: Bug
  Components: Broker
Affects Versions: 5.9.0
 Environment: Windows 7
Reporter: Matt Kusnierz
Priority: Minor

 If you unzip the binary distribution to C:\Program 
 Files\apache-active-mq-5.9.0 or any directory that contains a space in it, 
 the bin\activemq.bat file fails to start. With the error message:
 Error: Could not find or load main class 
 Files\apache-activemq-5.9.0\bin\..\conf\login.config
 Work-around - either unzip to a directory with no spaces, or set the 
 ACTIVEMQ_HOME environment variable to the short version of the path, e.g. 
 set ACTIVEMQ_HOME=c:\Progra~1\apache-activemq-5.9.0



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Created] (AMQ-4921) Setting JMSReplyTo with a topic destination does not work

2013-12-05 Thread Martin Lichtin (JIRA)
Martin Lichtin created AMQ-4921:
---

 Summary: Setting JMSReplyTo with a topic destination does not work
 Key: AMQ-4921
 URL: https://issues.apache.org/jira/browse/AMQ-4921
 Project: ActiveMQ
  Issue Type: Bug
Affects Versions: 5.7.0
Reporter: Martin Lichtin


The use case is about communicating with the StatisticsPlugin:
Sending a message and setting JMSReplyTo with a destination for the response 
message(s).
Doing (via Camel)

  in.setHeader(JMSReplyTo, topic://mydest);

results in the broker producing messages to the mydest queue.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (AMQ-4921) Setting JMSReplyTo with a topic destination does not work

2013-12-05 Thread Timothy Bish (JIRA)

[ 
https://issues.apache.org/jira/browse/AMQ-4921?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13840260#comment-13840260
 ] 

Timothy Bish commented on AMQ-4921:
---

Do you have a unit test?  Have you tested against v5.9.0?

 Setting JMSReplyTo with a topic destination does not work
 -

 Key: AMQ-4921
 URL: https://issues.apache.org/jira/browse/AMQ-4921
 Project: ActiveMQ
  Issue Type: Bug
Affects Versions: 5.7.0
Reporter: Martin Lichtin

 The use case is about communicating with the StatisticsPlugin:
 Sending a message and setting JMSReplyTo with a destination for the response 
 message(s).
 Doing (via Camel)
   in.setHeader(JMSReplyTo, topic://mydest);
 results in the broker producing messages to the mydest queue.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Resolved] (AMQ-4910) Windows batch script doesn't like spaces in installation path

2013-12-05 Thread Timothy Bish (JIRA)

 [ 
https://issues.apache.org/jira/browse/AMQ-4910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Timothy Bish resolved AMQ-4910.
---

   Resolution: Fixed
Fix Version/s: 5.10.0

Update the wrapper.conf files with quotes around the new login config file 
definition. 

 Windows batch script doesn't like spaces in installation path
 -

 Key: AMQ-4910
 URL: https://issues.apache.org/jira/browse/AMQ-4910
 Project: ActiveMQ
  Issue Type: Bug
  Components: Broker
Affects Versions: 5.9.0
 Environment: Windows 7
Reporter: Matt Kusnierz
Priority: Minor
 Fix For: 5.10.0


 If you unzip the binary distribution to C:\Program 
 Files\apache-active-mq-5.9.0 or any directory that contains a space in it, 
 the bin\activemq.bat file fails to start. With the error message:
 Error: Could not find or load main class 
 Files\apache-activemq-5.9.0\bin\..\conf\login.config
 Work-around - either unzip to a directory with no spaces, or set the 
 ACTIVEMQ_HOME environment variable to the short version of the path, e.g. 
 set ACTIVEMQ_HOME=c:\Progra~1\apache-activemq-5.9.0



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Created] (AMQ-4922) BrokerService.addConnector(URI bindAddress) binds the port before starting the broker.

2013-12-05 Thread Hiram Chirino (JIRA)
Hiram Chirino created AMQ-4922:
--

 Summary: BrokerService.addConnector(URI bindAddress) binds the 
port before starting the broker.
 Key: AMQ-4922
 URL: https://issues.apache.org/jira/browse/AMQ-4922
 Project: ActiveMQ
  Issue Type: Bug
  Components: Broker
Affects Versions: 5.9.0
Reporter: Hiram Chirino






--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (AMQ-4922) BrokerService.addConnector(URI bindAddress) binds the port before starting the broker.

2013-12-05 Thread Hiram Chirino (JIRA)

[ 
https://issues.apache.org/jira/browse/AMQ-4922?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13840289#comment-13840289
 ] 

Hiram Chirino commented on AMQ-4922:


I've got fix started at: 
https://github.com/chirino/activemq/tree/AMQ-4922

There might be some tests remaining that try to get the local port before 
starting the broker.  Need to find and fix those tests before merging into 
trunk.

 BrokerService.addConnector(URI bindAddress) binds the port before starting 
 the broker.
 --

 Key: AMQ-4922
 URL: https://issues.apache.org/jira/browse/AMQ-4922
 Project: ActiveMQ
  Issue Type: Bug
  Components: Broker
Affects Versions: 5.9.0
Reporter: Hiram Chirino





--
This message was sent by Atlassian JIRA
(v6.1#6144)


Re: [VOTE] Release ActiveMQ-CPP v3.8.2 #2

2013-12-05 Thread Hiram Chirino
+1

On Wed, Dec 4, 2013 at 2:40 PM, Timothy Bish tabish...@gmail.com wrote:
 Vote open for ActiveMQ-CPP v3.8.2

 This is a small patch release that addresses some bugs found since the
 v3.8.1 release.

 The source bundles for this release can be found here:
 http://people.apache.org/~tabish/cms-3.8.x/

 The Wiki page for the release is here:
 http://activemq.apache.org/cms/activemq-cpp-382-release.html

 The list of issues fixed in this release is available here:
 https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311207styleName=Htmlversion=12325248

 Please cast your votes:

 [ ] +1 Release the source as Apache ActiveMQ-CPP 3.8.2
 [ ] -1 Veto the release (provide specific comments)

 Here is my +1

 --
 Tim Bish
 Sr Software Engineer | RedHat Inc.
 tim.b...@redhat.com | www.fusesource.com | www.redhat.com
 skype: tabish121 | twitter: @tabish121
 blog: http://timbish.blogspot.com/




-- 
Hiram Chirino

Engineering | Red Hat, Inc.

hchir...@redhat.com | fusesource.com | redhat.com

skype: hiramchirino | twitter: @hiramchirino

blog: Hiram Chirino's Bit Mojo


[jira] [Created] (AMQ-4923) Replicated LevelDB: Loss of broker Quorum fails to fully stop the master

2013-12-05 Thread Hiram Chirino (JIRA)
Hiram Chirino created AMQ-4923:
--

 Summary: Replicated LevelDB: Loss of broker Quorum fails to fully 
stop the master
 Key: AMQ-4923
 URL: https://issues.apache.org/jira/browse/AMQ-4923
 Project: ActiveMQ
  Issue Type: Bug
  Components: Broker
Affects Versions: 5.9.0
Reporter: Hiram Chirino
Assignee: Hiram Chirino


Master keeps reporting:

INFO | The connection to 'tcp://10.64.132.143:55732' is taking a long time to 
shutdown.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Resolved] (AMQ-4923) Replicated LevelDB: Loss of broker Quorum fails to fully stop the master

2013-12-05 Thread Hiram Chirino (JIRA)

 [ 
https://issues.apache.org/jira/browse/AMQ-4923?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hiram Chirino resolved AMQ-4923.


   Resolution: Fixed
Fix Version/s: 5.10.0

Fixed.

 Replicated LevelDB: Loss of broker Quorum fails to fully stop the master
 

 Key: AMQ-4923
 URL: https://issues.apache.org/jira/browse/AMQ-4923
 Project: ActiveMQ
  Issue Type: Bug
  Components: Broker
Affects Versions: 5.9.0
Reporter: Hiram Chirino
Assignee: Hiram Chirino
 Fix For: 5.10.0


 Master keeps reporting:
 INFO | The connection to 'tcp://10.64.132.143:55732' is taking a long time to 
 shutdown.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


Re: 回复: Is it all right to reduce the timeout as a walkaround for AMQNET-338?

2013-12-05 Thread Jim Gomes
It's hard to say what the worst-case would be, since it's application
specific. I think an orderly shutdown would be to disconnect all producers
and consumers first, and then close the connection.


On Thu, Dec 5, 2013 at 4:19 AM, 汤・吉诃德 hellkni...@foxmail.com wrote:

 Hi Jim, thanks for your quick and detailed reply.  Actually , I want to
 call connection.Close() when the user close the client program (such as
 click the close button of program window), not wait for GC to clean up the
 connection object. Is it still OK to reduce the timeout ? What is the worst
 case scenario of forcefully abort readerThread after a shorter timeout ?


 -- 原始邮件 --
 *发件人:* Jim Gomes;jgo...@apache.org;
 *发送时间:* 2013年12月5日(星期四) 中午11:03
 *收件人:* 汤・吉诃德hellkni...@foxmail.com; ActiveMQ Dev
 dev@activemq.apache.org;
 *主题:* Re: Is it all right to reduce the timeout as a walkaround for
 AMQNET-338?

 The 30 second time-out was meant to give the reader thread a reasonable
 time to finish what it is doing and shut itself down gracefully. Once it
 times out, then it is forcefully shutdown as  a last resort. Normally, the
 graceful shutdown should occur very rapidly. If you are just letting the
 garbage collector clean things up on program termination, then your app
 probably isn't doing any meaningful work so it should be fine to
  forcefully shut it down after a shorter timeout.


 On Tue, Dec 3, 2013 at 10:28 PM, 汤・吉诃德 hellkni...@foxmail.com wrote:

 Hi Jim, I want to use the temporary walkaround mentioned by the issue
 reporter, to reduce the timeout in the following code from 30 seconds to 2
 seconds:

 if(null != readThread)
 {
  if(Thread.CurrentThread != readThread  readThread.IsAlive)
  {
  if(!readThread.Join((int) MAX_THREAD_WAIT.TotalMilliseconds))
  {
  readThread.Abort();
  }
  }

  readThread = null;
 }

 However, I am worried about my walkaround : Could there be any harm if I
 reduce the timeout ? By default, the code wait as long as 30 seconds for
 readThread to join. What is the purpose of such a behaviour ?What could
 keep readThread alive for 30 seconds while closing connection ? Is it OK to
 wait for a shorter timespan?





Jenkins build is back to stable : ActiveMQ » ActiveMQ :: MQTT Protocol #1429

2013-12-05 Thread Apache Jenkins Server
See 
https://builds.apache.org/job/ActiveMQ/org.apache.activemq$activemq-mqtt/1429/



[jira] [Commented] (AMQNET-454) Add Apache Qpid provider to NMS

2013-12-05 Thread Chuck Rolke (JIRA)

[ 
https://issues.apache.org/jira/browse/AMQNET-454?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13840555#comment-13840555
 ] 

Chuck Rolke commented on AMQNET-454:


I have an initial commit for Apache.NMS.AMQP for your review. Please see:
h3. Apache.QPID vendor library files
* Available at [https://github.com/ChugR/Apache.NMS-vendor.Apache.QPID]
* Includes net-2.0 and net-4.0 binaries build with Visual Studios 2008 and 2010 
respectively.
* Fits naturally into vendor/Apache.Qpid
* Code version 0.27.0.16034 is a snapshot of Qpid trunk (0.27) and Proton trunk 
(0.5+) as of 2013-11-25 (unix day 16034). A natural update to this would happen 
with the release of stable versions of Qpid 0.26 and Proton 0.6.
* Includes binary dll files only.

h3. Apache.NMS.AMQP provider source tree
* Sources available at [https://github.com/ChugR/Apache.NMS.AMQP]
* Includes nant code to build net-2.0 and net-4.0 versions.
* This code is a shell. It will create an AMQP connection but not provide any 
other services for NMS. It is a framework for further contributions.

This code set supports both AMQP 0-10 and AMQP 1.0

Regards,
Chuck

 Add Apache Qpid provider to NMS
 ---

 Key: AMQNET-454
 URL: https://issues.apache.org/jira/browse/AMQNET-454
 Project: ActiveMQ .Net
  Issue Type: New Feature
  Components: NMS
Affects Versions: 1.6.0
Reporter: Chuck Rolke
Assignee: Jim Gomes

 NMS includes various providers ActiveMQ, STOMP, MSMQ, EMS, and WCF. This 
 issue proposes to add [Apache Qpid|http://qpid.apache.org/index.html] as 
 another provider.
 Qpid has a [Messaging .NET 
 Binding|http://qpid.apache.org/releases/qpid-0.24/programming/book/ch05.html] 
 that is layered on top of the native C++ Qpid Messaging client. The Qpid .NET 
 binding is attractive as the hook for tying in Qpid as an NMS provider.
 The proposed NMS provider supports [AMQP 
 1.0|http://qpid.apache.org/amqp.html] by including [Qpid 
 Proton|http://qpid.apache.org/proton/index.html] libraries.
 From a high level this addition to Active.NMS would consist of two parts
 * Add Qpid as a vendor kit. This includes both the Qpid .NET Binding and Qpid 
 Proton in a single kit.
 * Add the new provider with code linking NMS to Qpid



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (AMQ-4887) ActiveMQBytesMessage will lost content if message's property was set before copy

2013-12-05 Thread Timothy Bish (JIRA)

[ 
https://issues.apache.org/jira/browse/AMQ-4887?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13840559#comment-13840559
 ] 

Timothy Bish commented on AMQ-4887:
---

[~kearls] Updated the test case to show the other bits that are broken.  I 
patched the bytes message and started Stream Message.  Thought you might want 
to take a crack at addressing the compressed case in StreamMessage and seeing 
if there's anything else needed.

 ActiveMQBytesMessage will lost content if message's property was set before 
 copy 
 -

 Key: AMQ-4887
 URL: https://issues.apache.org/jira/browse/AMQ-4887
 Project: ActiveMQ
  Issue Type: Bug
  Components: Broker
Affects Versions: 5.9.0
Reporter: caoyunfei
Assignee: Timothy Bish
 Attachments: AMQ-4887.patch, ActiveMQBytesMessage.java.patch, 
 ActiveMQBytesMessageTest.java, Consumer.java, Producer.java

   Original Estimate: 24h
  Remaining Estimate: 24h

 ActiveMQBytesMessage will lost content if message's property was set before 
 copy. Here is the test code:
 Producer:
 MessageProducer producer;  
 //initialize Connection, Session, MessageProducer
 byte[] bs = bytes message.getBytes();  
 BytesMessage message = session.createBytesMessage();  
 message.writeBytes(bs);  //write bytes to message 1
   
 for(int i=0; i 0; i++){  
   // then set message's propery   2
 message.setLongProperty(sendTime, System.currentTimeMillis());  
 try{  
 producer.send(message);  
 }catch(){  
  e.printStackTrace();  
 }
 }  
 Consumer:
 MessageConsumer consumer  
 //initailize Connection, Session, MessageConsumer  
 for(int i=0; i10; i++){  
 ActiveMQBytesMessage msg = 
 (ActiveMQBytesMessage)consumer.receive(60*1000);  
 long sendTime = message.getLongProperty(sendTime);  
 System.out.println(sendtime: + sendTime);  
 ByteSequence bs = message.getMessage().getContent();  
 System.out.println(bytes data: + new String(bs.getData()));  
 }  
 Expected result:
 consumer gets bytes data in all received messages
 Actual result:
 only the fisrt message has bytes data, all other messages lost bytes data, 
 while long property value is not lost;
 Analysization:
 message gets copied when send, it will call storeContent() before copy,  
 DataOutputStream dataOut will be closed and the data in dataOut will be set 
 to conent. This works correctly if there are no property was set.
 when setLongProperty was called, it will call setObjectProperty() then will 
 call  initializeWriting(), here DataOutputStream dataOut  will be create 
 AGAIN. 
 So when message was copied in second time, DataOutputStream dataOut is NOT 
 null, but EMPTY, it will clear the value in content.
 suggestion:
 restore the content data to DataOutputStream dataOut when nitializeWriting()
 my fix:
 ActiveMQBytesMessage :
  private void  initializeWriting() throws JMSException {
 669The original code
 ..
 701
 //fix code
 if(this.content !=null  this.content.length 0){
 try{
 this.dataOut.write(this.content.getData());
 }catch(IOException ioe){
 throw JMSExceptionSupport.create(ioe);
 }
 }
 702}



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (AMQ-4887) ActiveMQBytesMessage will lost content if message's property was set before copy

2013-12-05 Thread Timothy Bish (JIRA)

 [ 
https://issues.apache.org/jira/browse/AMQ-4887?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Timothy Bish updated AMQ-4887:
--

Attachment: AMQ-4887.patch

Updated patch that fixes bytes message and the uncompressed case in stream 
message.

 ActiveMQBytesMessage will lost content if message's property was set before 
 copy 
 -

 Key: AMQ-4887
 URL: https://issues.apache.org/jira/browse/AMQ-4887
 Project: ActiveMQ
  Issue Type: Bug
  Components: Broker
Affects Versions: 5.9.0
Reporter: caoyunfei
Assignee: Timothy Bish
 Attachments: AMQ-4887.patch, AMQ-4887.patch, 
 ActiveMQBytesMessage.java.patch, ActiveMQBytesMessageTest.java, 
 Consumer.java, Producer.java

   Original Estimate: 24h
  Remaining Estimate: 24h

 ActiveMQBytesMessage will lost content if message's property was set before 
 copy. Here is the test code:
 Producer:
 MessageProducer producer;  
 //initialize Connection, Session, MessageProducer
 byte[] bs = bytes message.getBytes();  
 BytesMessage message = session.createBytesMessage();  
 message.writeBytes(bs);  //write bytes to message 1
   
 for(int i=0; i 0; i++){  
   // then set message's propery   2
 message.setLongProperty(sendTime, System.currentTimeMillis());  
 try{  
 producer.send(message);  
 }catch(){  
  e.printStackTrace();  
 }
 }  
 Consumer:
 MessageConsumer consumer  
 //initailize Connection, Session, MessageConsumer  
 for(int i=0; i10; i++){  
 ActiveMQBytesMessage msg = 
 (ActiveMQBytesMessage)consumer.receive(60*1000);  
 long sendTime = message.getLongProperty(sendTime);  
 System.out.println(sendtime: + sendTime);  
 ByteSequence bs = message.getMessage().getContent();  
 System.out.println(bytes data: + new String(bs.getData()));  
 }  
 Expected result:
 consumer gets bytes data in all received messages
 Actual result:
 only the fisrt message has bytes data, all other messages lost bytes data, 
 while long property value is not lost;
 Analysization:
 message gets copied when send, it will call storeContent() before copy,  
 DataOutputStream dataOut will be closed and the data in dataOut will be set 
 to conent. This works correctly if there are no property was set.
 when setLongProperty was called, it will call setObjectProperty() then will 
 call  initializeWriting(), here DataOutputStream dataOut  will be create 
 AGAIN. 
 So when message was copied in second time, DataOutputStream dataOut is NOT 
 null, but EMPTY, it will clear the value in content.
 suggestion:
 restore the content data to DataOutputStream dataOut when nitializeWriting()
 my fix:
 ActiveMQBytesMessage :
  private void  initializeWriting() throws JMSException {
 669The original code
 ..
 701
 //fix code
 if(this.content !=null  this.content.length 0){
 try{
 this.dataOut.write(this.content.getData());
 }catch(IOException ioe){
 throw JMSExceptionSupport.create(ioe);
 }
 }
 702}



--
This message was sent by Atlassian JIRA
(v6.1#6144)