Fix #211
This commit is contained in:
parent
40ac2b7e23
commit
6458549af6
@ -1,8 +1,10 @@
|
|||||||
# This file is generated by GitLab CI
|
# This file is generated by GitLab CI
|
||||||
Source test:
|
Source test:
|
||||||
script:
|
script:
|
||||||
|
- rm -rf $(grep path .gitmodules | awk '{print $3}')
|
||||||
- git submodule update --init --recursive
|
- git submodule update --init --recursive
|
||||||
- ./gradlew clean setupCauldron jar
|
- ./gradlew clean setupCauldron jar
|
||||||
|
- rm -rf $(grep path .gitmodules | awk '{print $3}')
|
||||||
tags:
|
tags:
|
||||||
- test
|
- test
|
||||||
except:
|
except:
|
||||||
@ -10,8 +12,10 @@ Source test:
|
|||||||
|
|
||||||
Deploy:
|
Deploy:
|
||||||
script:
|
script:
|
||||||
|
- rm -rf $(grep path .gitmodules | awk '{print $3}')
|
||||||
- git submodule update --init --recursive
|
- git submodule update --init --recursive
|
||||||
- ./gradlew -PofficialBuild clean setupCauldron publish
|
- ./gradlew -PofficialBuild clean setupCauldron publish
|
||||||
|
- rm -rf $(grep path .gitmodules | awk '{print $3}')
|
||||||
type: deploy
|
type: deploy
|
||||||
tags:
|
tags:
|
||||||
- deploy
|
- deploy
|
||||||
@ -25,6 +29,7 @@ Deploy:
|
|||||||
|
|
||||||
Merge master into backport-1448:
|
Merge master into backport-1448:
|
||||||
script:
|
script:
|
||||||
|
- rm -rf $(grep path .gitmodules | awk '{print $3}')
|
||||||
- from=master
|
- from=master
|
||||||
- to=backport-1448
|
- to=backport-1448
|
||||||
- git remote set-url origin gitlab@prok.pw:Prototik/KCauldron.git
|
- git remote set-url origin gitlab@prok.pw:Prototik/KCauldron.git
|
||||||
@ -33,6 +38,7 @@ Merge master into backport-1448:
|
|||||||
- git reset --hard origin/$to
|
- git reset --hard origin/$to
|
||||||
- git merge origin/$from
|
- git merge origin/$from
|
||||||
- git push origin $to
|
- git push origin $to
|
||||||
|
- rm -rf $(grep path .gitmodules | awk '{print $3}')
|
||||||
type: deploy
|
type: deploy
|
||||||
tags:
|
tags:
|
||||||
- merge-backport
|
- merge-backport
|
||||||
@ -41,6 +47,7 @@ Merge master into backport-1448:
|
|||||||
|
|
||||||
Merge backport-1448 into backport-1388:
|
Merge backport-1448 into backport-1388:
|
||||||
script:
|
script:
|
||||||
|
- rm -rf $(grep path .gitmodules | awk '{print $3}')
|
||||||
- from=backport-1448
|
- from=backport-1448
|
||||||
- to=backport-1388
|
- to=backport-1388
|
||||||
- git remote set-url origin gitlab@prok.pw:Prototik/KCauldron.git
|
- git remote set-url origin gitlab@prok.pw:Prototik/KCauldron.git
|
||||||
@ -49,6 +56,7 @@ Merge backport-1448 into backport-1388:
|
|||||||
- git reset --hard origin/$to
|
- git reset --hard origin/$to
|
||||||
- git merge origin/$from
|
- git merge origin/$from
|
||||||
- git push origin $to
|
- git push origin $to
|
||||||
|
- rm -rf $(grep path .gitmodules | awk '{print $3}')
|
||||||
type: deploy
|
type: deploy
|
||||||
tags:
|
tags:
|
||||||
- merge-backport
|
- merge-backport
|
||||||
@ -57,6 +65,7 @@ Merge backport-1448 into backport-1388:
|
|||||||
|
|
||||||
Merge backport-1388 into backport-1370:
|
Merge backport-1388 into backport-1370:
|
||||||
script:
|
script:
|
||||||
|
- rm -rf $(grep path .gitmodules | awk '{print $3}')
|
||||||
- from=backport-1388
|
- from=backport-1388
|
||||||
- to=backport-1370
|
- to=backport-1370
|
||||||
- git remote set-url origin gitlab@prok.pw:Prototik/KCauldron.git
|
- git remote set-url origin gitlab@prok.pw:Prototik/KCauldron.git
|
||||||
@ -65,6 +74,7 @@ Merge backport-1388 into backport-1370:
|
|||||||
- git reset --hard origin/$to
|
- git reset --hard origin/$to
|
||||||
- git merge origin/$from
|
- git merge origin/$from
|
||||||
- git push origin $to
|
- git push origin $to
|
||||||
|
- rm -rf $(grep path .gitmodules | awk '{print $3}')
|
||||||
type: deploy
|
type: deploy
|
||||||
tags:
|
tags:
|
||||||
- merge-backport
|
- merge-backport
|
||||||
@ -73,6 +83,7 @@ Merge backport-1388 into backport-1370:
|
|||||||
|
|
||||||
Merge backport-1370 into backport-1291:
|
Merge backport-1370 into backport-1291:
|
||||||
script:
|
script:
|
||||||
|
- rm -rf $(grep path .gitmodules | awk '{print $3}')
|
||||||
- from=backport-1370
|
- from=backport-1370
|
||||||
- to=backport-1291
|
- to=backport-1291
|
||||||
- git remote set-url origin gitlab@prok.pw:Prototik/KCauldron.git
|
- git remote set-url origin gitlab@prok.pw:Prototik/KCauldron.git
|
||||||
@ -81,6 +92,7 @@ Merge backport-1370 into backport-1291:
|
|||||||
- git reset --hard origin/$to
|
- git reset --hard origin/$to
|
||||||
- git merge origin/$from
|
- git merge origin/$from
|
||||||
- git push origin $to
|
- git push origin $to
|
||||||
|
- rm -rf $(grep path .gitmodules | awk '{print $3}')
|
||||||
type: deploy
|
type: deploy
|
||||||
tags:
|
tags:
|
||||||
- merge-backport
|
- merge-backport
|
||||||
@ -89,6 +101,7 @@ Merge backport-1370 into backport-1291:
|
|||||||
|
|
||||||
Merge backport-1291 into backport-1240:
|
Merge backport-1291 into backport-1240:
|
||||||
script:
|
script:
|
||||||
|
- rm -rf $(grep path .gitmodules | awk '{print $3}')
|
||||||
- from=backport-1291
|
- from=backport-1291
|
||||||
- to=backport-1240
|
- to=backport-1240
|
||||||
- git remote set-url origin gitlab@prok.pw:Prototik/KCauldron.git
|
- git remote set-url origin gitlab@prok.pw:Prototik/KCauldron.git
|
||||||
@ -97,6 +110,7 @@ Merge backport-1291 into backport-1240:
|
|||||||
- git reset --hard origin/$to
|
- git reset --hard origin/$to
|
||||||
- git merge origin/$from
|
- git merge origin/$from
|
||||||
- git push origin $to
|
- git push origin $to
|
||||||
|
- rm -rf $(grep path .gitmodules | awk '{print $3}')
|
||||||
type: deploy
|
type: deploy
|
||||||
tags:
|
tags:
|
||||||
- merge-backport
|
- merge-backport
|
||||||
|
@ -6,127 +6,119 @@ import java.util.Queue;
|
|||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
|
||||||
public class ProcessingQueue<T> extends QueueWrapper<T> {
|
public class ProcessingQueue<T> extends QueueWrapper<T> {
|
||||||
public class ProcessingIterator implements Iterator<T> {
|
public class ProcessingIterator implements Iterator<T> {
|
||||||
private Iterator<T> mRealIterator = mCollection.iterator();
|
private Iterator<T> mRealIterator = mCollection.iterator();
|
||||||
private AtomicInteger mPosition = new AtomicInteger(0);
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasNext() {
|
public boolean hasNext() {
|
||||||
final int size = mSize.get();
|
return mRealIterator.hasNext();
|
||||||
final int position = mPosition.get();
|
}
|
||||||
if (size == 0 || position >= size) {
|
|
||||||
mPosition.compareAndSet(position, 0);
|
|
||||||
mRealIterator = mCollection.iterator();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
boolean value = mRealIterator.hasNext();
|
|
||||||
if (!value) {
|
|
||||||
mRealIterator = mCollection.iterator();
|
|
||||||
value = mRealIterator.hasNext();
|
|
||||||
}
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public T next() {
|
public T next() {
|
||||||
T value = mRealIterator.next();
|
return mRealIterator.next();
|
||||||
mPosition.incrementAndGet();
|
}
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void remove() {
|
public void remove() {
|
||||||
mRealIterator.remove();
|
mRealIterator.remove();
|
||||||
mSize.decrementAndGet();
|
mSize.decrementAndGet();
|
||||||
mPosition.decrementAndGet();
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void reset() {
|
private final AtomicInteger mSize;
|
||||||
mPosition.set(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private final AtomicInteger mSize;
|
@Override
|
||||||
private final ProcessingIterator mIterator = new ProcessingIterator();
|
public boolean add(T e) {
|
||||||
|
boolean result = super.add(e);
|
||||||
|
if (result) {
|
||||||
|
mSize.incrementAndGet();
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean add(T e) {
|
public boolean offer(T e) {
|
||||||
boolean result = super.add(e);
|
boolean result = super.offer(e);
|
||||||
if (result) {
|
if (result) {
|
||||||
mSize.incrementAndGet();
|
mSize.incrementAndGet();
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
};
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean offer(T e) {
|
public boolean addAll(Collection<? extends T> c) {
|
||||||
boolean result = super.offer(e);
|
boolean result = false;
|
||||||
if (result) {
|
for (T t : c) {
|
||||||
mSize.incrementAndGet();
|
result |= add(t);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean addAll(Collection<? extends T> c) {
|
public T remove() {
|
||||||
boolean result = false;
|
T result = super.remove();
|
||||||
for (T t : c) {
|
mSize.decrementAndGet();
|
||||||
result |= add(t);
|
return result;
|
||||||
}
|
}
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public T remove() {
|
public boolean remove(Object o) {
|
||||||
T result = super.remove();
|
boolean result = super.remove(o);
|
||||||
mSize.decrementAndGet();
|
if (result) {
|
||||||
return result;
|
mSize.decrementAndGet();
|
||||||
}
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean remove(Object o) {
|
public boolean removeAll(Collection<?> c) {
|
||||||
boolean result = super.remove(o);
|
boolean result = false;
|
||||||
if (result) {
|
for (Object t : c) {
|
||||||
mSize.decrementAndGet();
|
result |= remove(t);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean removeAll(Collection<?> c) {
|
public boolean retainAll(Collection<?> c) {
|
||||||
boolean result = false;
|
boolean result = super.retainAll(c);
|
||||||
for (Object t : c) {
|
if (result) {
|
||||||
result |= remove(t);
|
mSize.set(mCollection.size());
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean retainAll(Collection<?> c) {
|
public T poll() {
|
||||||
boolean result = super.retainAll(c);
|
T result = super.remove();
|
||||||
if (result) {
|
if (result != null) {
|
||||||
mSize.set(mCollection.size());
|
mSize.decrementAndGet();
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public ProcessingQueue(Queue<T> collection) {
|
||||||
public T poll() {
|
super(collection);
|
||||||
T result = super.remove();
|
mSize = new AtomicInteger(collection.size());
|
||||||
if (result != null) {
|
}
|
||||||
mSize.decrementAndGet();
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ProcessingQueue(Queue<T> collection) {
|
@Override
|
||||||
super(collection);
|
public ProcessingIterator iterator() {
|
||||||
mSize = new AtomicInteger(collection.size());
|
return new ProcessingIterator();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ProcessingIterator iterator() {
|
public String toString() {
|
||||||
mIterator.reset();
|
if (size() == 0)
|
||||||
return mIterator;
|
return "[]";
|
||||||
}
|
StringBuilder builder = new StringBuilder();
|
||||||
|
for (T t : this) {
|
||||||
|
builder.append(',');
|
||||||
|
builder.append(t == null ? "null" : t.getClass().getSimpleName());
|
||||||
|
}
|
||||||
|
builder.setCharAt(0, '[');
|
||||||
|
builder.append(']');
|
||||||
|
return builder.toString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user