Work done on CP branch without any corresponding JIRA
timfox Jun 24, 2008 6:23 AMI am trying to prepare the CP branch to release 1.4.0.SP3_CP03 for EAP 4.3.CP02, and I have done a diff between its current state and the state from the 1.4.0.SP3_CP02 tag, and I see several changes which have no corresponding JIRAs:
Index: tests/src/org/jboss/test/messaging/tools/container/ClassLoaderJMXWrapper.java =================================================================== --- tests/src/org/jboss/test/messaging/tools/container/ClassLoaderJMXWrapper.java (.../branches/Branch_JBossMessaging_1_4_0_SP3_CP) (revision 4568) +++ tests/src/org/jboss/test/messaging/tools/container/ClassLoaderJMXWrapper.java (.../tags/JBossMessaging_1_4_0_SP3_CP02) (revision 4568) @@ -21,7 +21,9 @@ */ package org.jboss.test.messaging.tools.container; -import org.jboss.util.loading.DelegatingClassLoader; +import java.lang.reflect.Array; +import java.net.URL; +import java.net.URLClassLoader; /** * We extend URLClassLoader just to prevent UnifiedLoaderRepository3 to generate spurious warning @@ -33,7 +35,7 @@ * * $Id$ */ -public class ClassLoaderJMXWrapper extends DelegatingClassLoader implements ClassLoaderJMXWrapperMBean +public class ClassLoaderJMXWrapper extends URLClassLoader implements ClassLoaderJMXWrapperMBean { // Constants ----------------------------------------------------- @@ -41,13 +43,45 @@ // Attributes ---------------------------------------------------- + private ClassLoader delegate; + // Constructors -------------------------------------------------- public ClassLoaderJMXWrapper(ClassLoader delegate) { - super(delegate); + super(new URL[0]); + this.delegate = delegate; } + // ClassLoaderJMXWrapperMBean implementation --------------------- + + public Class loadClass(String name) throws ClassNotFoundException + { + if (name.endsWith("[]")) + { + name = name.substring(0, name.length() - 2); + + //The classloader of an array type is the classloader of it's element (if non primitive) + + Class cl = delegate.loadClass(name); + + Object arr = Array.newInstance(cl, 0); + + return arr.getClass(); + } + else + { + return delegate.loadClass(name); + } + } + + // ClassLoader overrides ----------------------------------------- + + public URL getResource(String name) + { + return delegate.getResource(name); + } + // Public -------------------------------------------------------- // Package protected --------------------------------------------- Index: tests/src/org/jboss/test/messaging/tools/ServerManagement.java =================================================================== --- tests/src/org/jboss/test/messaging/tools/ServerManagement.java (.../branches/Branch_JBossMessaging_1_4_0_SP3_CP) (revision 4568) +++ tests/src/org/jboss/test/messaging/tools/ServerManagement.java (.../tags/JBossMessaging_1_4_0_SP3_CP02) (revision 4568) @@ -500,13 +500,13 @@ String classPath = System.getProperty("java.class.path"); - if (System.getProperty("os.name").toLowerCase().contains("windows")) + if (System.getProperty("os.name").equals("Linux")) { - sb.append("-cp").append(" \"").append(classPath).append("\" "); + sb.append("-cp").append(" ").append(classPath).append(" "); } else { - sb.append("-cp").append(" ").append(classPath).append(" "); + sb.append("-cp").append(" \"").append(classPath).append("\" "); } // As there is a problem with Multicast and JGroups on Linux (in certain JDKs) Index: tests/src/org/jboss/test/messaging/jms/bridge/SimpleCrashWithRestartTest.java =================================================================== --- tests/src/org/jboss/test/messaging/jms/bridge/SimpleCrashWithRestartTest.java (.../branches/Branch_JBossMessaging_1_4_0_SP3_CP) (revision 4568) +++ tests/src/org/jboss/test/messaging/jms/bridge/SimpleCrashWithRestartTest.java (.../tags/JBossMessaging_1_4_0_SP3_CP02) (revision 4568) @@ -1,136 +0,0 @@ -/* - * JBoss, Home of Professional Open Source - * Copyright 2005, JBoss Inc., and individual contributors as indicated - * by the @authors tag. See the copyright.txt in the distribution for a - * full listing of individual contributors. - * - * This is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this software; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA, or see the FSF site: http://www.fsf.org. - */ -package org.jboss.test.messaging.jms.bridge; - -import java.util.Properties; - -import org.jboss.jms.jndi.JMSProviderAdapter; -import org.jboss.jms.server.bridge.Bridge; -import org.jboss.logging.Logger; -import org.jboss.test.messaging.tools.ServerManagement; -import org.jboss.test.messaging.tools.TestJMSProviderAdaptor; -import org.jboss.test.messaging.tools.aop.PoisonInterceptor; - -/** - * @author <a href="mailto:tim.fox@jboss.com">Tim Fox</a> - * @version <tt>$Revision$</tt> - * - * $Id$ - * - */ -public class SimpleCrashWithRestartTest extends BridgeTestBase -{ - private static final Logger log = Logger.getLogger(ReconnectTest.class); - - public SimpleCrashWithRestartTest(String name) - { - super(name); - } - - protected void setUp() throws Exception - { - super.setUp(); - - //Now install local JMSProviderAdaptor classes - - Properties props1 = new Properties(); - props1.putAll(ServerManagement.getJNDIEnvironment(1)); - - JMSProviderAdapter targetAdaptor = - new TestJMSProviderAdaptor(props1, "/XAConnectionFactory", "adaptor1"); - - sc.installJMSProviderAdaptor("adaptor1", targetAdaptor); - - sc.startRecoveryManager(); - } - - protected void tearDown() throws Exception - { - super.tearDown(); - - sc.stopRecoveryManager(); - - sc.uninstallJMSProviderAdaptor("adaptor1"); - - log.debug(this + " torn down"); - } - - /* - * Send some messages - * Crash the server after prepare but on commit - * Bring up the destination server - * Send some more messages - * Verify all messages are received - */ - public void testCrashAndRestart() throws Exception - { - Bridge bridge = null; - - try - { - final int NUM_MESSAGES = 10; - - bridge = new Bridge(cff0, cff1, sourceQueueFactory, targetQueueFactory, - null, null, null, null, - null, 1000, -1, Bridge.QOS_AT_MOST_ONCE, - NUM_MESSAGES, -1, - null, null, false); - - bridge.start(); - - sendMessages(cf0, sourceQueue, 0, NUM_MESSAGES, true); - - checkMessagesReceived(cf1, targetQueue, Bridge.QOS_ONCE_AND_ONLY_ONCE, NUM_MESSAGES, true); - - ServerManagement.kill(1); - - - // >30 sec (timeout on remoting) - Thread.sleep(35000); - - ServerManagement.start(1, "all", false); - ServerManagement.deployQueue("targetQueue", 1); - - setUpAdministeredObjects(); - - sendMessages(cf0, sourceQueue, 0, NUM_MESSAGES, true); - - checkMessagesReceived(cf1, targetQueue, Bridge.QOS_AT_MOST_ONCE, NUM_MESSAGES, true); - } - finally - { - if (bridge != null) - { - try - { - bridge.stop(); - } - catch (Exception e) - { - log.error("Failed to stop bridge", e); - } - } - } - } - - // Inner classes ------------------------------------------------------------------- -} Index: src/main/org/jboss/messaging/core/impl/JDBCPersistenceManager.java =================================================================== --- src/main/org/jboss/messaging/core/impl/JDBCPersistenceManager.java (.../branches/Branch_JBossMessaging_1_4_0_SP3_CP) (revision 4568) +++ src/main/org/jboss/messaging/core/impl/JDBCPersistenceManager.java (.../tags/JBossMessaging_1_4_0_SP3_CP02) (revision 4568) @@ -2556,7 +2556,7 @@ map.put("CREATE_COUNTER", "CREATE TABLE JBM_COUNTER (NAME VARCHAR(255), NEXT_ID BIGINT, PRIMARY KEY(NAME))"); // Id cache - map.put("CREATE_ID_CACHE", "CREATE TABLE JBM_ID_CACHE (NODE_ID INTEGER, CNTR INTEGER, JBM_ID VARCHAR(255), PRIMARY KEY(NODE_ID, CNTR))"); + map.put("CREATE_ID_CACHE", "CREATE TABLE JBM_ID_CACHE (NODE_ID INTEGER, CNTR INTEGER, JBM_ID VARCHAR(255), PRIMARY KEY(NODEID, CNTR))"); return map; } @@ -2603,8 +2603,8 @@ "UPDATE JBM_MSG_REF SET CHANNEL_ID = ? WHERE CHANNEL_ID = ?"); map.put("MOVE_REFERENCE", "UPDATE JBM_MSG_REF SET CHANNEL_ID = ? WHERE MESSAGE_ID = ? AND CHANNEL_ID = ?"); - map.put("LOAD_ID_CACHE", "SELECT CNTR, JBM_ID FROM JBM_ID_CACHE WHERE NODE_ID = ?"); - map.put("UPDATE_ID_IN_CACHE", "UPDATE JBM_ID_CACHE SET JBM_ID = ? WHERE NODE_ID = ? AND CNTR = ?"); + map.put("LOAD_ID_CACHE", "SELECT CNTR, ID FROM JBM_ID_CACHE WHERE NODE_ID = ?"); + map.put("UPDATE_ID_IN_CACHE", "UPDATE JBM_ID_CACHE SET JBM_ID = ? WHERE NODE_ID = ? CNTR = ?"); map.put("INSERT_ID_IN_CACHE", "INSERT INTO JBM_ID_CACHE (NODE_ID, CNTR, JBM_ID) VALUES (?, ?, ?)");
I have probably said this before, but doing work on the CP branch ***must be tracked by a corresponding JIRA***.
I know what one of the changes is for (NODE_ID bug), but unless someone comes up with a JIRA and explanation for the others I will just revert them.