summaryrefslogtreecommitdiff
path: root/qpid/java/broker-plugins
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2014-05-16 11:08:51 +0000
committerKeith Wall <kwall@apache.org>2014-05-16 11:08:51 +0000
commit8b9d54dcb70bb397dae8742cf1a005945102dede (patch)
tree8bfe66fd8ff71d11b8fe3e14ee3d3e53fe2403f2 /qpid/java/broker-plugins
parent4770c709c9a1a28ac2d623a7a476af15f31ecc78 (diff)
downloadqpid-python-8b9d54dcb70bb397dae8742cf1a005945102dede.tar.gz
QPID-5766: Intitialisation of StatisticsCounter objects can lead to NPE.
Patch Supplied by Andrew MacBean <andymacbean@gmail.com>. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1595155 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker-plugins')
-rw-r--r--qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java17
-rw-r--r--qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java16
-rw-r--r--qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Connection_1_0.java19
3 files changed, 16 insertions, 36 deletions
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<S
private final Subject _authorizedSubject = new Subject();
private Principal _authorizedPrincipal = null;
- private StatisticsCounter _messagesDelivered, _dataDelivered, _messagesReceived, _dataReceived;
+ private final StatisticsCounter _messagesDelivered, _dataDelivered, _messagesReceived, _dataReceived;
private final long _connectionId;
private final Object _reference = new Object();
private VirtualHostImpl _virtualHost;
@@ -93,6 +93,11 @@ public class ServerConnection extends Connection implements AMQConnectionModel<S
_connectionId = connectionId;
_authorizedSubject.getPrincipals().add(new ConnectionPrincipal(this));
_broker = broker;
+
+ _messagesDelivered = new StatisticsCounter("messages-delivered-" + getConnectionId());
+ _dataDelivered = new StatisticsCounter("data-delivered-" + getConnectionId());
+ _messagesReceived = new StatisticsCounter("messages-received-" + getConnectionId());
+ _dataReceived = new StatisticsCounter("data-received-" + getConnectionId());
}
public Object getReference()
@@ -175,8 +180,6 @@ public class ServerConnection extends Connection implements AMQConnectionModel<S
public void setVirtualHost(VirtualHostImpl virtualHost)
{
_virtualHost = virtualHost;
-
- initialiseStatistics();
}
@Override
@@ -455,14 +458,6 @@ public class ServerConnection extends Connection implements AMQConnectionModel<S
_dataReceived.reset();
}
- public void initialiseStatistics()
- {
- _messagesDelivered = new StatisticsCounter("messages-delivered-" + getConnectionId());
- _dataDelivered = new StatisticsCounter("data-delivered-" + getConnectionId());
- _messagesReceived = new StatisticsCounter("messages-received-" + getConnectionId());
- _dataReceived = new StatisticsCounter("data-received-" + getConnectionId());
- }
-
/**
* @return authorizedSubject
*/
diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
index f6ad008441..b28e9bc23c 100644
--- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
+++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
@@ -154,7 +154,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine, AMQProtocolSessi
private long _maxFrameSize;
private final AtomicBoolean _closing = new AtomicBoolean(false);
- private StatisticsCounter _messagesDelivered, _dataDelivered, _messagesReceived, _dataReceived;
+ private final StatisticsCounter _messagesDelivered, _dataDelivered, _messagesReceived, _dataReceived;
private NetworkConnection _network;
private Sender<ByteBuffer> _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> T runAsSubject(PrivilegedAction<T> 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<SessionModelListener> _sessionListeners =
new CopyOnWriteArrayList<SessionModelListener>();
- 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()
@@ -368,15 +368,6 @@ public class Connection_1_0 implements ConnectionEventListener, AMQConnectionMod
}
@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)
{
_messageReceiptStatistics.registerEvent(1L, timestamp);