You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2014/10/14 14:37:37 UTC
svn commit: r1631732 - in /qpid/trunk/qpid/java:
broker-core/src/main/java/org/apache/qpid/server/
broker-core/src/main/java/org/apache/qpid/server/logging/messages/
broker-core/src/main/java/org/apache/qpid/server/model/
broker-core/src/main/java/org/...
Author: orudyy
Date: Tue Oct 14 12:37:36 2014
New Revision: 1631732
URL: http://svn.apache.org/r1631732
Log:
QPID-6142: Fix NPE thrown on startup when broker fails to start due to CO validation exceptions
Modified:
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BrokerMessages.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Broker_logmessages.properties
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/BrokerShutdownProvider.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java
qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/BrokerRecovererTest.java
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java?rev=1631732&r1=1631731&r2=1631732&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java Tue Oct 14 12:37:36 2014
@@ -58,6 +58,17 @@ public class Broker implements BrokerShu
private EventLogger _eventLogger;
private boolean _configuringOwnLogging = false;
private final TaskExecutor _taskExecutor = new TaskExecutorImpl();
+ private final boolean _exitJVMOnShutdownWithNonZeroExitCode;
+
+ public Broker()
+ {
+ this(false);
+ }
+
+ public Broker(boolean exitJVMOnShutdownWithNonZeroExitCode)
+ {
+ this._exitJVMOnShutdownWithNonZeroExitCode = exitJVMOnShutdownWithNonZeroExitCode;
+ }
protected static class InitException extends RuntimeException
{
@@ -71,6 +82,12 @@ public class Broker implements BrokerShu
public void shutdown()
{
+ shutdown(0);
+ }
+
+ @Override
+ public void shutdown(int exitStatusCode)
+ {
try
{
removeShutdownHook();
@@ -92,6 +109,11 @@ public class Broker implements BrokerShu
{
LogManager.shutdown();
}
+
+ if (_exitJVMOnShutdownWithNonZeroExitCode && exitStatusCode != 0)
+ {
+ System.exit(exitStatusCode);
+ }
}
}
}
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BrokerMessages.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BrokerMessages.java?rev=1631732&r1=1631731&r2=1631732&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BrokerMessages.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BrokerMessages.java Tue Oct 14 12:37:36 2014
@@ -57,6 +57,7 @@ public class BrokerMessages
public static final String SHUTTING_DOWN_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "broker.shutting_down";
public static final String MANAGEMENT_MODE_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "broker.management_mode";
public static final String STARTUP_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "broker.startup";
+ public static final String FATAL_ERROR_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "broker.fatal_error";
public static final String READY_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "broker.ready";
static
@@ -75,6 +76,7 @@ public class BrokerMessages
Logger.getLogger(SHUTTING_DOWN_LOG_HIERARCHY);
Logger.getLogger(MANAGEMENT_MODE_LOG_HIERARCHY);
Logger.getLogger(STARTUP_LOG_HIERARCHY);
+ Logger.getLogger(FATAL_ERROR_LOG_HIERARCHY);
Logger.getLogger(READY_LOG_HIERARCHY);
_messages = ResourceBundle.getBundle("org.apache.qpid.server.logging.messages.Broker_logmessages", _currentLocale);
@@ -493,6 +495,38 @@ public class BrokerMessages
/**
* Log a Broker message of the Format:
+ * <pre>BRK-1016 : Fatal error : {0} : See log file for more information</pre>
+ * Optional values are contained in [square brackets] and are numbered
+ * sequentially in the method call.
+ *
+ */
+ public static LogMessage FATAL_ERROR(String param1)
+ {
+ String rawMessage = _messages.getString("FATAL_ERROR");
+
+ final Object[] messageArguments = {param1};
+ // Create a new MessageFormat to ensure thread safety.
+ // Sharing a MessageFormat and using applyPattern is not thread safe
+ MessageFormat formatter = new MessageFormat(rawMessage, _currentLocale);
+
+ final String message = formatter.format(messageArguments);
+
+ return new LogMessage()
+ {
+ public String toString()
+ {
+ return message;
+ }
+
+ public String getLogHierarchy()
+ {
+ return FATAL_ERROR_LOG_HIERARCHY;
+ }
+ };
+ }
+
+ /**
+ * Log a Broker message of the Format:
* <pre>BRK-1004 : Qpid Broker Ready</pre>
* Optional values are contained in [square brackets] and are numbered
* sequentially in the method call.
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Broker_logmessages.properties
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Broker_logmessages.properties?rev=1631732&r1=1631731&r2=1631732&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Broker_logmessages.properties (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Broker_logmessages.properties Tue Oct 14 12:37:36 2014
@@ -52,4 +52,6 @@ MANAGEMENT_MODE = BRK-1012 : Management
# 0 - Total message size
# 1 - Target memory size
FLOW_TO_DISK_ACTIVE = BRK-1014 : Message flow to disk active : Message memory use {0,number,#}KB exceeds threshold {1,number,#.##}KB
-FLOW_TO_DISK_INACTIVE = BRK-1015 : Message flow to disk inactive : Message memory use {0,number,#}KB within threshold {1,number,#.##}KB
\ No newline at end of file
+FLOW_TO_DISK_INACTIVE = BRK-1015 : Message flow to disk inactive : Message memory use {0,number,#}KB within threshold {1,number,#.##}KB
+
+FATAL_ERROR = BRK-1016 : Fatal error : {0} : See log file for more information
\ No newline at end of file
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/BrokerShutdownProvider.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/BrokerShutdownProvider.java?rev=1631732&r1=1631731&r2=1631732&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/BrokerShutdownProvider.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/BrokerShutdownProvider.java Tue Oct 14 12:37:36 2014
@@ -22,5 +22,5 @@ package org.apache.qpid.server.model;
public interface BrokerShutdownProvider
{
- void shutdown();
+ void shutdown(int exitStatusCode);
}
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java?rev=1631732&r1=1631731&r2=1631732&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java Tue Oct 14 12:37:36 2014
@@ -969,7 +969,8 @@ public class BrokerAdapter extends Abstr
BrokerShutdownProvider shutdownProvider = systemConfig.getBrokerShutdownProvider();
if (shutdownProvider != null)
{
- shutdownProvider.shutdown();
+ _eventLogger.message(BrokerMessages.FATAL_ERROR(e.getMessage()));
+ shutdownProvider.shutdown(1);
}
else
{
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java?rev=1631732&r1=1631731&r2=1631732&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java Tue Oct 14 12:37:36 2014
@@ -32,6 +32,7 @@ import org.apache.qpid.server.logging.Me
import org.apache.qpid.server.logging.SystemOutMessageLogger;
import org.apache.qpid.server.logging.messages.BrokerMessages;
import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.State;
import org.apache.qpid.server.model.SystemConfig;
import org.apache.qpid.server.store.BrokerStoreUpgraderAndRecoverer;
import org.apache.qpid.server.store.DurableConfigurationStore;
@@ -77,17 +78,17 @@ public class ApplicationRegistry impleme
logStartupMessages(startupLogger);
BrokerStoreUpgraderAndRecoverer upgrader = new BrokerStoreUpgraderAndRecoverer(_systemConfig);
- _broker = upgrader.perform(_store);
+ Broker broker = upgrader.perform(_store);
+ _broker = broker;
- _broker.setEventLogger(startupLogger);
- _broker.open();
-
- // starting the broker
- //_broker.setDesiredState(State.ACTIVE);
-
- startupLogger.message(BrokerMessages.READY());
- _broker.setEventLogger(eventLogger);
+ broker.setEventLogger(startupLogger);
+ broker.open();
+ if (broker.getState() == State.ACTIVE)
+ {
+ startupLogger.message(BrokerMessages.READY());
+ broker.setEventLogger(eventLogger);
+ }
}
public void close()
Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/BrokerRecovererTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/BrokerRecovererTest.java?rev=1631732&r1=1631731&r2=1631732&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/BrokerRecovererTest.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/store/BrokerRecovererTest.java Tue Oct 14 12:37:36 2014
@@ -34,7 +34,6 @@ import java.util.UUID;
import junit.framework.TestCase;
import org.apache.qpid.server.BrokerOptions;
-import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.configuration.updater.CurrentThreadTaskExecutor;
import org.apache.qpid.server.configuration.updater.TaskExecutor;
import org.apache.qpid.server.logging.EventLogger;
@@ -261,7 +260,7 @@ public class BrokerRecovererTest extends
resolveObjects(_brokerEntry);
Broker<?> broker = _systemConfig.getBroker();
broker.open();
- verify(_brokerShutdownProvider).shutdown();
+ verify(_brokerShutdownProvider).shutdown(1);
}
}
@@ -280,7 +279,7 @@ public class BrokerRecovererTest extends
Broker<?> broker = (Broker<?>) recover.resolve();
broker.open();
- verify(_brokerShutdownProvider).shutdown();
+ verify(_brokerShutdownProvider).shutdown(1);
}
public void testIncorrectModelVersion() throws Exception
@@ -298,7 +297,7 @@ public class BrokerRecovererTest extends
_systemConfig.getObjectFactory().recover(_brokerEntry, _systemConfig);
Broker<?> broker = (Broker<?>) recover.resolve();
broker.open();
- verify(_brokerShutdownProvider).shutdown();
+ verify(_brokerShutdownProvider).shutdown(1);
reset(_brokerShutdownProvider);
}
}
Modified: qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java?rev=1631732&r1=1631731&r2=1631732&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java (original)
+++ qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java Tue Oct 14 12:37:36 2014
@@ -454,7 +454,7 @@ public class Main
protected void startBroker(final BrokerOptions options) throws Exception
{
- Broker broker = new Broker();
+ Broker broker = new Broker(true);
broker.startup(options);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org