JBoss hornetq SVN: r9306 - trunk/src/main/org/hornetq/core/protocol/core.
by do-not-reply@jboss.org
Author: clebert.suconic(a)jboss.com
Date: 2010-06-11 00:11:42 -0400 (Fri, 11 Jun 2010)
New Revision: 9306
Modified:
trunk/src/main/org/hornetq/core/protocol/core/ServerSessionPacketHandler.java
Log:
Adding logging information to help identify issues on server
Modified: trunk/src/main/org/hornetq/core/protocol/core/ServerSessionPacketHandler.java
===================================================================
--- trunk/src/main/org/hornetq/core/protocol/core/ServerSessionPacketHandler.java 2010-06-10 17:06:08 UTC (rev 9305)
+++ trunk/src/main/org/hornetq/core/protocol/core/ServerSessionPacketHandler.java 2010-06-11 04:11:42 UTC (rev 9306)
@@ -522,6 +522,7 @@
{
if (requiresResponse)
{
+ log.warn("Sending unexpected exception to the client", t);
HornetQException hqe = new HornetQException(HornetQException.INTERNAL_ERROR);
hqe.initCause(t);
response = new HornetQExceptionMessage(hqe);
14 years
JBoss hornetq SVN: r9305 - trunk/src/main/org/hornetq/utils.
by do-not-reply@jboss.org
Author: clebert.suconic(a)jboss.com
Date: 2010-06-10 13:06:08 -0400 (Thu, 10 Jun 2010)
New Revision: 9305
Modified:
trunk/src/main/org/hornetq/utils/UTF8Util.java
Log:
I have seen too many of these messages (changed on the commit) on the Application server's log on the AS testsuite. I'm changing those to trace since they are too verbose there.
Modified: trunk/src/main/org/hornetq/utils/UTF8Util.java
===================================================================
--- trunk/src/main/org/hornetq/utils/UTF8Util.java 2010-06-09 22:24:21 UTC (rev 9304)
+++ trunk/src/main/org/hornetq/utils/UTF8Util.java 2010-06-10 17:06:08 UTC (rev 9305)
@@ -36,7 +36,7 @@
private static final Logger log = Logger.getLogger(UTF8Util.class);
- private static final boolean isDebug = UTF8Util.log.isDebugEnabled();
+ private static final boolean isTrace = UTF8Util.log.isTraceEnabled();
private static ThreadLocal<SoftReference<StringUtilBuffer>> currenBuffer = new ThreadLocal<SoftReference<StringUtilBuffer>>();
@@ -73,9 +73,10 @@
}
else
{
- if (UTF8Util.isDebug)
+ if (UTF8Util.isTrace)
{
- UTF8Util.log.debug("Saving string with utfSize=" + len + " stringSize=" + str.length());
+ // This message is too verbose for debug, that's why we are using trace here
+ UTF8Util.log.trace("Saving string with utfSize=" + len + " stringSize=" + str.length());
}
int stringLength = str.length();
@@ -122,9 +123,10 @@
buffer.resizeCharBuffer(size);
}
- if (UTF8Util.isDebug)
+ if (UTF8Util.isTrace)
{
- UTF8Util.log.debug("Reading string with utfSize=" + size);
+ // This message is too verbose for debug, that's why we are using trace here
+ UTF8Util.log.trace("Reading string with utfSize=" + size);
}
int count = 0;
14 years
JBoss hornetq SVN: r9304 - trunk/src/main/org/hornetq/ra.
by do-not-reply@jboss.org
Author: clebert.suconic(a)jboss.com
Date: 2010-06-09 18:24:21 -0400 (Wed, 09 Jun 2010)
New Revision: 9304
Modified:
trunk/src/main/org/hornetq/ra/HornetQRAXAResource.java
Log:
HORNETQ-413 - tx.end() shouldn't clear the TX state until clear is called
Modified: trunk/src/main/org/hornetq/ra/HornetQRAXAResource.java
===================================================================
--- trunk/src/main/org/hornetq/ra/HornetQRAXAResource.java 2010-06-09 05:10:13 UTC (rev 9303)
+++ trunk/src/main/org/hornetq/ra/HornetQRAXAResource.java 2010-06-09 22:24:21 UTC (rev 9304)
@@ -101,7 +101,6 @@
}
finally
{
- managedConnection.setInManagedTx(false);
managedConnection.unlock();
}
}
14 years
JBoss hornetq SVN: r9303 - trunk/src/main/org/hornetq/core/client/impl.
by do-not-reply@jboss.org
Author: clebert.suconic(a)jboss.com
Date: 2010-06-09 01:10:13 -0400 (Wed, 09 Jun 2010)
New Revision: 9303
Modified:
trunk/src/main/org/hornetq/core/client/impl/FailoverManagerImpl.java
Log:
https://jira.jboss.org/browse/HORNETQ-411 - fixing security block
Modified: trunk/src/main/org/hornetq/core/client/impl/FailoverManagerImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/client/impl/FailoverManagerImpl.java 2010-06-08 13:06:29 UTC (rev 9302)
+++ trunk/src/main/org/hornetq/core/client/impl/FailoverManagerImpl.java 2010-06-09 05:10:13 UTC (rev 9303)
@@ -14,6 +14,8 @@
package org.hornetq.core.client.impl;
import java.lang.ref.WeakReference;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
@@ -34,6 +36,7 @@
import org.hornetq.api.core.client.ClientSession;
import org.hornetq.api.core.client.ClientSessionFactory;
import org.hornetq.api.core.client.SessionFailureListener;
+import org.hornetq.api.core.client.loadbalance.ConnectionLoadBalancingPolicy;
import org.hornetq.core.logging.Logger;
import org.hornetq.core.protocol.core.Channel;
import org.hornetq.core.protocol.core.ChannelHandler;
@@ -486,7 +489,8 @@
else
{
HornetQException me = new HornetQException(HornetQException.INTERNAL_ERROR,
- "Failed to create session", t);
+ "Failed to create session",
+ t);
throw me;
}
@@ -1033,17 +1037,24 @@
private ConnectorFactory instantiateConnectorFactory(final String connectorFactoryClassName)
{
- ClassLoader loader = Thread.currentThread().getContextClassLoader();
- try
+ return AccessController.doPrivileged(new PrivilegedAction<ConnectorFactory>()
{
- Class<?> clazz = loader.loadClass(connectorFactoryClassName);
- return (ConnectorFactory)clazz.newInstance();
- }
- catch (Exception e)
- {
- throw new IllegalArgumentException("Error instantiating connector factory \"" + connectorFactoryClassName +
- "\"", e);
- }
+ public ConnectorFactory run()
+ {
+ ClassLoader loader = Thread.currentThread().getContextClassLoader();
+ try
+ {
+ Class<?> clazz = loader.loadClass(connectorFactoryClassName);
+ return (ConnectorFactory)clazz.newInstance();
+ }
+ catch (Exception e)
+ {
+ throw new IllegalArgumentException("Error instantiating connector factory \"" + connectorFactoryClassName +
+ "\"", e);
+ }
+ }
+ });
+
}
private void lockChannel1()
14 years
JBoss hornetq SVN: r9302 - trunk/src/main/org/hornetq/core/server/impl.
by do-not-reply@jboss.org
Author: timfox
Date: 2010-06-08 09:06:29 -0400 (Tue, 08 Jun 2010)
New Revision: 9302
Modified:
trunk/src/main/org/hornetq/core/server/impl/ServerConsumerImpl.java
Log:
https://jira.jboss.org/browse/HORNETQ-410
Modified: trunk/src/main/org/hornetq/core/server/impl/ServerConsumerImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/impl/ServerConsumerImpl.java 2010-06-08 12:46:40 UTC (rev 9301)
+++ trunk/src/main/org/hornetq/core/server/impl/ServerConsumerImpl.java 2010-06-08 13:06:29 UTC (rev 9302)
@@ -85,7 +85,7 @@
private final Object lock = new Object();
- private AtomicInteger availableCredits = new AtomicInteger(0);
+ private volatile AtomicInteger availableCredits = new AtomicInteger(0);
private boolean started;
14 years
JBoss hornetq SVN: r9301 - in trunk: tests/src/org/hornetq/tests/integration/client and 1 other directory.
by do-not-reply@jboss.org
Author: timfox
Date: 2010-06-08 08:46:40 -0400 (Tue, 08 Jun 2010)
New Revision: 9301
Modified:
trunk/src/main/org/hornetq/core/server/impl/ServerConsumerImpl.java
trunk/tests/src/org/hornetq/tests/integration/client/ConsumerTest.java
Log:
https://jira.jboss.org/browse/HORNETQ-410
Modified: trunk/src/main/org/hornetq/core/server/impl/ServerConsumerImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/impl/ServerConsumerImpl.java 2010-06-05 07:02:37 UTC (rev 9300)
+++ trunk/src/main/org/hornetq/core/server/impl/ServerConsumerImpl.java 2010-06-08 12:46:40 UTC (rev 9301)
@@ -453,13 +453,16 @@
}
public void receiveCredits(final int credits) throws Exception
- {
+ {
if (credits == -1)
{
// No flow control
availableCredits = null;
+
+ //There may be messages already in the queue
+ promptDelivery();
}
- else if(credits == 0)
+ else if (credits == 0)
{
//reset, used on slow consumers
availableCredits.set(0);
Modified: trunk/tests/src/org/hornetq/tests/integration/client/ConsumerTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/client/ConsumerTest.java 2010-06-05 07:02:37 UTC (rev 9300)
+++ trunk/tests/src/org/hornetq/tests/integration/client/ConsumerTest.java 2010-06-08 12:46:40 UTC (rev 9301)
@@ -66,41 +66,7 @@
super.tearDown();
}
-// public void testQueueSpin() throws Exception
-// {
-// ClientSessionFactory sf = createInVMFactory();
-//
-// ClientSession session1 = sf.createSession();
-//
-// ClientSession session2 = sf.createSession();
-//
-// session1.createQueue(QUEUE, QUEUE, null, false);
-//
-// ClientProducer producer = session1.createProducer(QUEUE);
-//
-// final int numMessages = 100;
-//
-// for (int i = 0; i < numMessages; i++)
-// {
-// ClientMessage message = createTextMessage("m" + i, session1);
-// producer.send(message);
-// }
-//
-// ClientConsumer consumer1 = session1.createConsumer(QUEUE);
-//
-// ClientConsumer consumer2 = session2.createConsumer(QUEUE, new SimpleString("foo=wibble"));
-//
-// session2.start();
-//
-// consumer2.receive();
-//
-// Thread.sleep(30000);
-//
-// session1.close();
-//
-// session2.close();
-// }
-
+
public void testConsumerAckImmediateAutoCommitTrue() throws Exception
{
ClientSessionFactory sf = createInVMFactory();
@@ -301,7 +267,44 @@
Assert.assertTrue(latch.await(5, TimeUnit.SECONDS));
sessionRec.close();
}
+
+ // https://jira.jboss.org/browse/HORNETQ-410
+ public void testConsumeWithNoConsumerFlowControl() throws Exception
+ {
+ ClientSessionFactory sf = createInVMFactory();
+
+ sf.setConsumerWindowSize(-1);
+ ClientSession session = sf.createSession(false, true, true);
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ session.start();
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = createTextMessage("m" + i, session);
+ producer.send(message);
+ }
+
+ ClientConsumer consumer = session.createConsumer(QUEUE);
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = consumer.receive(10000);
+ assertNotNull(message);
+ message.acknowledge();
+ }
+
+ session.close();
+ sf.close();
+
+ }
+
public void testClearListener() throws Exception
{
ClientSessionFactory sf = createInVMFactory();
14 years
JBoss hornetq SVN: r9300 - in trunk: tests/src/org/hornetq/tests/integration/journal and 1 other directories.
by do-not-reply@jboss.org
Author: clebert.suconic(a)jboss.com
Date: 2010-06-05 03:02:37 -0400 (Sat, 05 Jun 2010)
New Revision: 9300
Modified:
trunk/src/main/org/hornetq/core/journal/impl/JournalImpl.java
trunk/tests/src/org/hornetq/tests/integration/journal/NIOJournalCompactTest.java
trunk/tests/src/org/hornetq/tests/stress/journal/JournalRestartStressTest.java
Log:
https://jira.jboss.org/browse/HORNETQ-407 improving journal shutdown on compacting and avoid a rare test failure on JournalRestartStressTest
Modified: trunk/src/main/org/hornetq/core/journal/impl/JournalImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/journal/impl/JournalImpl.java 2010-06-03 22:15:48 UTC (rev 9299)
+++ trunk/src/main/org/hornetq/core/journal/impl/JournalImpl.java 2010-06-05 07:02:37 UTC (rev 9300)
@@ -2277,6 +2277,11 @@
// compacting is disabled
return;
}
+
+ if (state != JournalImpl.STATE_LOADED)
+ {
+ return;
+ }
JournalFile[] dataFiles = getDataFiles();
@@ -2536,6 +2541,16 @@
try
{
+
+ state = JournalImpl.STATE_STOPPED;
+
+ compactorExecutor.shutdown();
+
+ if (!compactorExecutor.awaitTermination(120, TimeUnit.SECONDS))
+ {
+ JournalImpl.log.warn("Couldn't stop compactor executor after 120 seconds");
+ }
+
filesExecutor.shutdown();
if (!filesExecutor.awaitTermination(60, TimeUnit.SECONDS))
@@ -2564,8 +2579,6 @@
freeFiles.clear();
openedFiles.clear();
-
- state = JournalImpl.STATE_STOPPED;
}
finally
{
Modified: trunk/tests/src/org/hornetq/tests/integration/journal/NIOJournalCompactTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/journal/NIOJournalCompactTest.java 2010-06-03 22:15:48 UTC (rev 9299)
+++ trunk/tests/src/org/hornetq/tests/integration/journal/NIOJournalCompactTest.java 2010-06-05 07:02:37 UTC (rev 9300)
@@ -23,6 +23,8 @@
import junit.framework.Assert;
import org.hornetq.api.core.Pair;
+import org.hornetq.core.journal.PreparedTransactionInfo;
+import org.hornetq.core.journal.RecordInfo;
import org.hornetq.core.journal.SequentialFile;
import org.hornetq.core.journal.SequentialFileFactory;
import org.hornetq.core.journal.impl.AbstractJournalUpdateTask;
@@ -181,7 +183,58 @@
{
internalCompactTest(false, false, true, true, false, false, false, false, false, false, true, true, true);
}
+
+ public void testCompactFirstFileReclaimed() throws Exception
+ {
+ setup(2, 60 * 1024, false);
+
+ final byte recordType = (byte)0;
+
+ journal = new JournalImpl(fileSize, minFiles, 0, 0, fileFactory, filePrefix, fileExtension, maxAIO);
+
+ journal.start();
+
+ journal.loadInternalOnly();
+
+ journal.appendAddRecord(1, recordType, "test".getBytes(), true);
+
+ journal.forceMoveNextFile();
+
+
+ journal.appendUpdateRecord(1, recordType, "update".getBytes(), true);
+
+ journal.appendDeleteRecord(1, true);
+
+ journal.appendAddRecord(2, recordType, "finalRecord".getBytes(), true);
+
+
+ for (int i = 10 ; i < 100; i++)
+ {
+ journal.appendAddRecord(i, recordType, ("tst" + i).getBytes(), true);
+ journal.forceMoveNextFile();
+ journal.appendUpdateRecord(i, recordType, ("uptst" + i).getBytes(), true);
+ journal.appendDeleteRecord(i, true);
+ }
+
+ journal.compact();
+
+ journal.stop();
+
+ List<RecordInfo> records = new ArrayList<RecordInfo>();
+
+ List<PreparedTransactionInfo> preparedRecords = new ArrayList<PreparedTransactionInfo>();
+
+ journal.start();
+
+ journal.load(records, preparedRecords, null);
+
+ assertEquals(1, records.size());
+
+
+
+ }
+
private void internalCompactTest(final boolean preXA, // prepare before compact
final boolean postXA, // prepare after compact
final boolean regularAdd,
Modified: trunk/tests/src/org/hornetq/tests/stress/journal/JournalRestartStressTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/stress/journal/JournalRestartStressTest.java 2010-06-03 22:15:48 UTC (rev 9299)
+++ trunk/tests/src/org/hornetq/tests/stress/journal/JournalRestartStressTest.java 2010-06-05 07:02:37 UTC (rev 9300)
@@ -57,18 +57,16 @@
server2.getConfiguration().setJournalCompactMinFiles(3);
server2.getConfiguration().setJournalCompactPercentage(50);
-
- for (int i = 0 ; i < 10; i++)
+ for (int i = 0; i < 10; i++)
{
server2.start();
-
+
ClientSessionFactory sf = createFactory(false);
sf.setMinLargeMessageSize(1024 * 1024);
sf.setBlockOnDurableSend(false);
-
ClientSession session = sf.createSession(true, true);
-
+
try
{
session.createQueue("slow-queue", "slow-queue");
@@ -79,8 +77,7 @@
session.start();
ClientConsumer consumer = session.createConsumer("slow-queue");
-
-
+
while (true)
{
System.out.println("Received message from previous");
@@ -91,15 +88,16 @@
}
msg.acknowledge();
}
-
-
-
+
+ session.close();
+
produceMessages(sf, 30000);
-
+
server2.stop();
}
}
+
// Package protected ---------------------------------------------
/**
@@ -110,19 +108,17 @@
* @throws Throwable
*/
private void produceMessages(final ClientSessionFactory sf, final int NMSGS) throws HornetQException,
- InterruptedException,
- Throwable
+ InterruptedException,
+ Throwable
{
-
+
final int TIMEOUT = 5000;
-
+
System.out.println("sending " + NMSGS + " messages");
+ final ClientSession sessionSend = sf.createSession(true, true);
- final ClientSession sessionSend = sf.createSession(true, true);
-
ClientProducer prod2 = sessionSend.createProducer("slow-queue");
-
try
{
@@ -139,6 +135,7 @@
Thread tReceive = new Thread()
{
+ @Override
public void run()
{
try
@@ -149,8 +146,8 @@
{
if (i % 500 == 0)
{
- double percent = (double)i / (double) NMSGS;
- System.out.println("msgs " + i + " of " + NMSGS + ", " + (int)(percent * 100) + "%");
+ double percent = (double)i / (double)NMSGS;
+ System.out.println("msgs " + i + " of " + NMSGS + ", " + (int)(percent * 100) + "%");
Thread.sleep(100);
}
@@ -179,11 +176,14 @@
for (int i = 0; i < NMSGS; i++)
{
ClientMessage msg = sessionSend.createMessage(true);
-
+
int size = RandomUtil.randomPositiveInt() % 10024;
- if (size == 0) size = 10 * 1024;
-
+ if (size == 0)
+ {
+ size = 10 * 1024;
+ }
+
byte[] buffer = new byte[size];
random.nextBytes(buffer);
@@ -191,7 +191,7 @@
msg.getBodyBuffer().writeBytes(buffer);
prod.send(msg);
-
+
if (i % 5000 == 0)
{
prod2.send(msg);
@@ -203,6 +203,7 @@
sessionReceive.close();
sessionSend.close();
+ sf.close();
for (Throwable e : errors)
{
14 years
JBoss hornetq SVN: r9299 - tags.
by do-not-reply@jboss.org
Author: clebert.suconic(a)jboss.com
Date: 2010-06-03 18:15:48 -0400 (Thu, 03 Jun 2010)
New Revision: 9299
Added:
tags/Hornetq_2_1_0_Final/
Removed:
tags/Hornetq_2_1_0_Final_pending/
Log:
Final release
Copied: tags/Hornetq_2_1_0_Final (from rev 9298, tags/Hornetq_2_1_0_Final_pending)
14 years
JBoss hornetq SVN: r9298 - tags.
by do-not-reply@jboss.org
Author: clebert.suconic(a)jboss.com
Date: 2010-06-03 16:04:10 -0400 (Thu, 03 Jun 2010)
New Revision: 9298
Added:
tags/Hornetq_2_1_0_Final_pending/
Log:
Retagging for a minimal change
Copied: tags/Hornetq_2_1_0_Final_pending (from rev 9297, trunk)
14 years
JBoss hornetq SVN: r9297 - tags.
by do-not-reply@jboss.org
Author: clebert.suconic(a)jboss.com
Date: 2010-06-03 16:03:18 -0400 (Thu, 03 Jun 2010)
New Revision: 9297
Removed:
tags/Hornetq_2_1_0_Final_pending/
Log:
Retagging for a minimal change
14 years