From 8b9d54dcb70bb397dae8742cf1a005945102dede Mon Sep 17 00:00:00 2001 From: Keith Wall Date: Fri, 16 May 2014 11:08:51 +0000 Subject: QPID-5766: Intitialisation of StatisticsCounter objects can lead to NPE. Patch Supplied by Andrew MacBean . git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1595155 13f79535-47bb-0310-9956-ffa450edef68 --- .../qpid/server/protocol/v0_10/ServerConnection.java | 17 ++++++----------- .../qpid/server/protocol/v0_8/AMQProtocolEngine.java | 16 +++++----------- .../qpid/server/protocol/v1_0/Connection_1_0.java | 19 +++++-------------- 3 files changed, 16 insertions(+), 36 deletions(-) (limited to 'qpid/java/broker-plugins') diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java index 275ab4416e..ede51ef213 100644 --- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java +++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java @@ -71,7 +71,7 @@ public class ServerConnection extends Connection implements AMQConnectionModel _sender; @@ -201,12 +201,14 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi _closeWhenNoRoute = _broker.getConnection_closeWhenNoRoute(); - initialiseStatistics(); - return null; } }); + _messagesDelivered = new StatisticsCounter("messages-delivered-" + getSessionID()); + _dataDelivered = new StatisticsCounter("data-delivered-" + getSessionID()); + _messagesReceived = new StatisticsCounter("messages-received-" + getSessionID()); + _dataReceived = new StatisticsCounter("data-received-" + getSessionID()); } private T runAsSubject(PrivilegedAction action) @@ -1500,14 +1502,6 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi _dataReceived.reset(); } - public void initialiseStatistics() - { - _messagesDelivered = new StatisticsCounter("messages-delivered-" + getSessionID()); - _dataDelivered = new StatisticsCounter("data-delivered-" + getSessionID()); - _messagesReceived = new StatisticsCounter("messages-received-" + getSessionID()); - _dataReceived = new StatisticsCounter("data-received-" + getSessionID()); - } - public boolean isSessionNameUnique(byte[] name) { // 0-8/0-9/0-9-1 sessions don't have names diff --git a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Connection_1_0.java b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Connection_1_0.java index 5b8d3a488e..6d780461f4 100644 --- a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Connection_1_0.java +++ b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Connection_1_0.java @@ -76,10 +76,7 @@ public class Connection_1_0 implements ConnectionEventListener, AMQConnectionMod private final CopyOnWriteArrayList _sessionListeners = new CopyOnWriteArrayList(); - private StatisticsCounter _messageDeliveryStatistics = new StatisticsCounter(); - private StatisticsCounter _messageReceiptStatistics = new StatisticsCounter(); - private StatisticsCounter _dataDeliveryStatistics = new StatisticsCounter(); - private StatisticsCounter _dataReceiptStatistics = new StatisticsCounter(); + private final StatisticsCounter _messageDeliveryStatistics, _messageReceiptStatistics, _dataDeliveryStatistics, _dataReceiptStatistics; private final LogSubject _logSubject = new LogSubject() { @@ -118,7 +115,10 @@ public class Connection_1_0 implements ConnectionEventListener, AMQConnectionMod _connectionId = connectionId; _subject.getPrincipals().add(new ConnectionPrincipal(this)); _subjectCreator = subjectCreator; - + _messageDeliveryStatistics = new StatisticsCounter("messages-delivered-" + getConnectionId()); + _dataDeliveryStatistics = new StatisticsCounter("data-delivered-" + getConnectionId()); + _messageReceiptStatistics = new StatisticsCounter("messages-received-" + getConnectionId()); + _dataReceiptStatistics = new StatisticsCounter("data-received-" + getConnectionId()); } public Object getReference() @@ -367,15 +367,6 @@ public class Connection_1_0 implements ConnectionEventListener, AMQConnectionMod return _stopped; } - @Override - public void initialiseStatistics() - { - _messageDeliveryStatistics = new StatisticsCounter("messages-delivered-" + getConnectionId()); - _dataDeliveryStatistics = new StatisticsCounter("data-delivered-" + getConnectionId()); - _messageReceiptStatistics = new StatisticsCounter("messages-received-" + getConnectionId()); - _dataReceiptStatistics = new StatisticsCounter("data-received-" + getConnectionId()); - } - @Override public void registerMessageReceived(long messageSize, long timestamp) { -- cgit v1.2.1