diff --git a/airsonic-main/pom.xml b/airsonic-main/pom.xml
index 0488cb7c..419faf41 100755
--- a/airsonic-main/pom.xml
+++ b/airsonic-main/pom.xml
@@ -160,8 +160,9 @@
- commons-collections
- commons-collections
+ org.apache.commons
+ commons-collections4
+ 4.4
diff --git a/airsonic-main/src/main/java/org/airsonic/player/domain/TransferStatus.java b/airsonic-main/src/main/java/org/airsonic/player/domain/TransferStatus.java
index bb54599d..e68b5197 100644
--- a/airsonic-main/src/main/java/org/airsonic/player/domain/TransferStatus.java
+++ b/airsonic-main/src/main/java/org/airsonic/player/domain/TransferStatus.java
@@ -19,7 +19,7 @@
*/
package org.airsonic.player.domain;
-import org.airsonic.player.util.BoundedList;
+import org.apache.commons.collections4.queue.CircularFifoQueue;
import java.io.File;
@@ -288,7 +288,7 @@ public class TransferStatus {
/**
* Contains recent history of samples.
*/
- public static class SampleHistory extends BoundedList {
+ public static class SampleHistory extends CircularFifoQueue {
public SampleHistory() {
super(HISTORY_LENGTH);
@@ -298,5 +298,9 @@ public class TransferStatus {
super(HISTORY_LENGTH);
addAll(other);
}
+
+ public Sample getLast() {
+ return this.get(this.size() - 1);
+ }
}
}
diff --git a/airsonic-main/src/main/java/org/airsonic/player/service/search/SearchServiceUtilities.java b/airsonic-main/src/main/java/org/airsonic/player/service/search/SearchServiceUtilities.java
index 78bf45fd..db6ef4d9 100644
--- a/airsonic-main/src/main/java/org/airsonic/player/service/search/SearchServiceUtilities.java
+++ b/airsonic-main/src/main/java/org/airsonic/player/service/search/SearchServiceUtilities.java
@@ -28,7 +28,7 @@ import org.airsonic.player.domain.MediaFile;
import org.airsonic.player.domain.ParamSearchResult;
import org.airsonic.player.domain.SearchResult;
import org.airsonic.player.service.MediaFileService;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.lucene.document.Document;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.springframework.beans.factory.annotation.Autowired;
@@ -132,7 +132,7 @@ public class SearchServiceUtilities {
}
};
- public final boolean addIgnoreNull(Collection> collection, Object object) {
+ public final boolean addIgnoreNull(Collection collection, Object object) {
return CollectionUtils.addIgnoreNull(collection, object);
}
diff --git a/airsonic-main/src/main/java/org/airsonic/player/util/BoundedList.java b/airsonic-main/src/main/java/org/airsonic/player/util/BoundedList.java
deleted file mode 100644
index f763d598..00000000
--- a/airsonic-main/src/main/java/org/airsonic/player/util/BoundedList.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- This file is part of Airsonic.
-
- Airsonic is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- Airsonic is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Airsonic. If not, see .
-
- Copyright 2016 (C) Airsonic Authors
- Based upon Subsonic, Copyright 2009 (C) Sindre Mehus
- */
-package org.airsonic.player.util;
-
-import java.util.LinkedList;
-
-/**
- * Simple implementation of a bounded list. If the maximum size is reached, adding a new element will
- * remove the first element in the list.
- *
- * @author Sindre Mehus
- * @version $Revision: 1.1 $ $Date: 2005/05/09 20:01:25 $
- */
-public class BoundedList extends LinkedList {
- private int maxSize;
-
- /**
- * Creates a new bounded list with the given maximum size.
- * @param maxSize The maximum number of elements the list may hold.
- */
- public BoundedList(int maxSize) {
- this.maxSize = maxSize;
- }
-
- /**
- * Adds an element to the tail of the list. If the list is full, the first element is removed.
- * @param e The element to add.
- * @return Always true
.
- */
- public boolean add(E e) {
- if (isFull()) {
- removeFirst();
- }
- return super.add(e);
- }
-
- /**
- * Adds an element to the head of list. If the list is full, the last element is removed.
- * @param e The element to add.
- */
- public void addFirst(E e) {
- if (isFull()) {
- removeLast();
- }
- super.addFirst(e);
- }
-
- /**
- * Returns whether the list if full.
- * @return Whether the list is full.
- */
- private boolean isFull() {
- return size() == maxSize;
- }
-}