Skip to content

Commit 427a4f7

Browse files
Merge pull request #98 from webfirmframework/dev-12.x.x
wffweb-12.0.5 release changes
2 parents be1bf5f + c6d440f commit 427a4f7

File tree

7 files changed

+21
-10
lines changed

7 files changed

+21
-10
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[![Build Status](https://img.shields.io/badge/build-passing-greensvg?style=flat)](https://app.circleci.com/pipelines/github/webfirmframework/wff?branch=master&filter=all)
22
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/410601e16dc54b0a973c03845ad790c2)](https://www.codacy.com/app/webfirm-framework/wff?utm_source=github.com&utm_medium=referral&utm_content=webfirmframework/wff&utm_campaign=Badge_Grade)
33
[![Stackoverflow](https://img.shields.io/badge/stackoverflow-wffweb-orange.svg)](https://stackoverflow.com/questions/tagged/wffweb)
4-
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.webfirmframework/wffweb/badge.svg)](https://search.maven.org/#artifactdetails%7Ccom.webfirmframework%7Cwffweb%7C12.0.4%7Cjar)
4+
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.webfirmframework/wffweb/badge.svg)](https://search.maven.org/#artifactdetails%7Ccom.webfirmframework%7Cwffweb%7C12.0.5%7Cjar)
55
[![javadoc](https://javadoc.io/badge2/com.webfirmframework/wffweb/javadoc.svg)](https://javadoc.io/doc/com.webfirmframework/wffweb)
66
[![GitHub license](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg?style=flat)](https://www.apache.org/licenses/LICENSE-2.0)
77

wffweb/pom.xml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>com.webfirmframework</groupId>
66
<artifactId>wffweb</artifactId>
7-
<version>12.0.4</version>
7+
<version>12.0.5</version>
88

99
<properties>
1010
<maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
@@ -76,13 +76,13 @@
7676
<plugin>
7777
<groupId>org.apache.maven.plugins</groupId>
7878
<artifactId>maven-compiler-plugin</artifactId>
79-
<version>3.13.0</version>
79+
<version>3.14.0</version>
8080
</plugin>
8181

8282
<plugin>
8383
<groupId>org.apache.maven.plugins</groupId>
8484
<artifactId>maven-install-plugin</artifactId>
85-
<version>3.1.3</version>
85+
<version>3.1.4</version>
8686
</plugin>
8787

8888
<plugin>
@@ -147,13 +147,13 @@
147147
<dependency>
148148
<groupId>com.fasterxml.jackson.core</groupId>
149149
<artifactId>jackson-databind</artifactId>
150-
<version>2.18.3</version>
150+
<version>2.19.0</version>
151151
<scope>test</scope>
152152
</dependency>
153153
<dependency>
154154
<groupId>de.undercouch</groupId>
155155
<artifactId>bson4jackson</artifactId>
156-
<version>2.15.1</version>
156+
<version>2.18.0</version>
157157
<scope>test</scope>
158158
</dependency>
159159
</dependencies>

wffweb/src/main/java/com/webfirmframework/wffweb/tag/html/AbstractHtml.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7182,6 +7182,7 @@ Lock lockAndGetWriteLock() {
71827182
do {
71837183
if (lock != null) {
71847184
lock.unlock();
7185+
Thread.onSpinWait();
71857186
}
71867187
currentSO = sharedObject;
71877188
lock = currentSO.getLock(ACCESS_OBJECT).writeLock();
@@ -7210,6 +7211,7 @@ WriteLock lockAndGetWriteLock(final AbstractHtml5SharedObject latestSharedObject
72107211
do {
72117212
if (lock != null) {
72127213
lock.unlock();
7214+
Thread.onSpinWait();
72137215
}
72147216
currentSO = sharedObject;
72157217
if (latestSharedObject != null && latestSharedObject.objectId().compareTo(currentSO.objectId()) > 0) {
@@ -7252,6 +7254,7 @@ Lock lockAndGetReadLock() {
72527254
do {
72537255
if (lock != null) {
72547256
lock.unlock();
7257+
Thread.onSpinWait();
72557258
}
72567259
currentSO = sharedObject;
72577260
lock = currentSO.getLock(ACCESS_OBJECT).readLock();
@@ -7279,6 +7282,7 @@ ReadLock lockAndGetReadLock(final AbstractHtml5SharedObject latestSharedObject)
72797282
do {
72807283
if (lock != null) {
72817284
lock.unlock();
7285+
Thread.onSpinWait();
72827286
}
72837287
currentSO = sharedObject;
72847288
if (latestSharedObject != null && latestSharedObject.objectId().compareTo(currentSO.objectId()) > 0) {

wffweb/src/main/java/com/webfirmframework/wffweb/tag/html/AbstractHtmlRepository.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ private static Collection<Lock> lockAndGetLocks(final boolean writeLock, final A
160160
for (final Lock lock : locks) {
161161
lock.unlock();
162162
}
163+
Thread.onSpinWait();
163164
}
164165

165166
tagContractRecords = new ArrayList<>(fromTags.length);

wffweb/src/main/java/com/webfirmframework/wffweb/tag/html/SharedTagContent.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1420,7 +1420,7 @@ private void setContentForQ(final boolean updateClient, final UpdateClientNature
14201420

14211421
if (shared) {
14221422

1423-
final List<AbstractHtml5SharedObject> sharedObjects = new ArrayList<>(4);
1423+
final Queue<AbstractHtml5SharedObject> sharedObjects = new ConcurrentLinkedQueue<>();
14241424
Deque<Runnable> runnables = null;
14251425
final long stamp = lock.writeLock();
14261426
try {
@@ -1771,10 +1771,11 @@ private void setContentForQ(final boolean updateClient, final UpdateClientNature
17711771
* @since 3.0.15 introduced executor
17721772
*/
17731773
private void pushQueue(final Executor executor, final UpdateClientNature updateClientNature,
1774-
final List<AbstractHtml5SharedObject> sharedObjects) {
1774+
final Queue<AbstractHtml5SharedObject> sharedObjects) {
17751775

17761776
final List<PushQueue> pushQueues = new ArrayList<>(sharedObjects.size());
1777-
for (final AbstractHtml5SharedObject sharedObject : sharedObjects) {
1777+
AbstractHtml5SharedObject sharedObject;
1778+
while ((sharedObject = sharedObjects.poll()) != null) {
17781779
final PushQueue pushQueue = sharedObject.getPushQueue(ACCESS_OBJECT);
17791780
if (pushQueue != null) {
17801781
pushQueues.add(pushQueue);
@@ -2122,7 +2123,7 @@ private void detachForQ(final boolean removeContent, final Set<AbstractHtml> exc
21222123
final Set<AbstractHtml> exclusionClientUpdateTags, final boolean parallelUpdateOnTags,
21232124
final boolean calledByThread) {
21242125

2125-
final List<AbstractHtml5SharedObject> sharedObjects = new ArrayList<>(4);
2126+
final Queue<AbstractHtml5SharedObject> sharedObjects = new ConcurrentLinkedQueue<>();
21262127
Deque<Runnable> runnables = null;
21272128

21282129
final long stamp = lock.writeLock();

wffweb/src/main/java/com/webfirmframework/wffweb/tag/html/TagUtil.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@ static List<Lock> lockAndGetWriteLocks(final AbstractHtml currentTag, final Secu
182182
for (final Lock lock : locks) {
183183
lock.unlock();
184184
}
185+
Thread.onSpinWait();
185186
}
186187

187188
tagContractRecords = new ArrayList<>(foreignTags.length + 1);

wffweb/src/main/java/com/webfirmframework/wffweb/tag/html/attribute/core/AbstractAttribute.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1725,6 +1725,7 @@ protected final Collection<Lock> lockAndGetWriteLocksWithAttrLock() {
17251725
for (final Lock lock : writeLocks) {
17261726
lock.unlock();
17271727
}
1728+
Thread.onSpinWait();
17281729
}
17291730

17301731
tagContractRecords = new ArrayList<>(capacity);
@@ -1800,6 +1801,7 @@ protected Collection<WriteLock> lockAndGetWriteLocks() {
18001801
for (final Lock lock : writeLocks) {
18011802
lock.unlock();
18021803
}
1804+
Thread.onSpinWait();
18031805
}
18041806

18051807
tagContractRecords = new ArrayList<>(capacity);
@@ -1875,6 +1877,7 @@ protected final Collection<Lock> lockAndGetReadLocksWithAttrLock() {
18751877
for (final Lock lock : readLocks) {
18761878
lock.unlock();
18771879
}
1880+
Thread.onSpinWait();
18781881
}
18791882

18801883
tagContractRecords = new ArrayList<>(capacity);
@@ -1949,6 +1952,7 @@ protected Collection<ReadLock> lockAndGetReadLocks() {
19491952
for (final Lock lock : readLocks) {
19501953
lock.unlock();
19511954
}
1955+
Thread.onSpinWait();
19521956
}
19531957

19541958
tagContractRecords = new ArrayList<>(capacity);

0 commit comments

Comments
 (0)