mirror of
https://github.com/apache/activemq-artemis.git
synced 2025-03-03 15:59:53 +00:00
ARTEMIS-892 - add lock to tick method
https://issues.apache.org/jira/browse/ARTEMIS-892
This commit is contained in:
parent
db6ee74a33
commit
198143edd0
@ -91,22 +91,24 @@ public class ProtonHandler extends ProtonInitializable {
|
||||
}
|
||||
|
||||
public long tick(boolean firstTick) {
|
||||
if (!firstTick) {
|
||||
try {
|
||||
if (connection.getLocalState() != EndpointState.CLOSED) {
|
||||
long rescheduleAt = transport.tick(TimeUnit.NANOSECONDS.toMillis(System.nanoTime()));
|
||||
if (transport.isClosed()) {
|
||||
throw new IllegalStateException("Channel was inactive for to long");
|
||||
synchronized (lock) {
|
||||
if (!firstTick) {
|
||||
try {
|
||||
if (connection.getLocalState() != EndpointState.CLOSED) {
|
||||
long rescheduleAt = transport.tick(TimeUnit.NANOSECONDS.toMillis(System.nanoTime()));
|
||||
if (transport.isClosed()) {
|
||||
throw new IllegalStateException("Channel was inactive for to long");
|
||||
}
|
||||
return rescheduleAt;
|
||||
}
|
||||
return rescheduleAt;
|
||||
} catch (Exception e) {
|
||||
transport.close();
|
||||
connection.setCondition(new ErrorCondition());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
transport.close();
|
||||
connection.setCondition(new ErrorCondition());
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
return transport.tick(TimeUnit.NANOSECONDS.toMillis(System.nanoTime()));
|
||||
}
|
||||
return transport.tick(TimeUnit.NANOSECONDS.toMillis(System.nanoTime()));
|
||||
}
|
||||
|
||||
public int capacity() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user