diff --git a/airsonic-main/src/main/java/org/airsonic/player/domain/PlayQueue.java b/airsonic-main/src/main/java/org/airsonic/player/domain/PlayQueue.java index f6c05cd5..3b1deaa1 100644 --- a/airsonic-main/src/main/java/org/airsonic/player/domain/PlayQueue.java +++ b/airsonic-main/src/main/java/org/airsonic/player/domain/PlayQueue.java @@ -311,17 +311,7 @@ public class PlayQueue { * @param index The playlist index. */ public synchronized void moveUp(int index) { - makeBackup(); - if (index <= 0 || index >= size()) { - return; - } - Collections.swap(files, index, index - 1); - - if (this.index == index) { - this.index--; - } else if (this.index == index - 1) { - this.index++; - } + moveDown(index - 1); } /** diff --git a/airsonic-main/src/main/java/org/airsonic/player/service/metadata/JaudiotaggerParser.java b/airsonic-main/src/main/java/org/airsonic/player/service/metadata/JaudiotaggerParser.java index 14a6191d..f905d693 100644 --- a/airsonic-main/src/main/java/org/airsonic/player/service/metadata/JaudiotaggerParser.java +++ b/airsonic-main/src/main/java/org/airsonic/player/service/metadata/JaudiotaggerParser.java @@ -219,42 +219,27 @@ public class JaudiotaggerParser extends MetaDataParser { * track numbers on the form "4/12". */ private Integer parseTrackNumber(String trackNumber) { - if (trackNumber == null) { - return null; - } - - Integer result = null; - - try { - result = Integer.valueOf(trackNumber); - } catch (NumberFormatException x) { - Matcher matcher = TRACK_NUMBER_PATTERN.matcher(trackNumber); - if (matcher.matches()) { - try { - result = Integer.valueOf(matcher.group(1)); - } catch (NumberFormatException e) { - return null; - } - } - } - - if (Integer.valueOf(0).equals(result)) { - return null; - } - return result; + return parseIntegerPattern(trackNumber, TRACK_NUMBER_PATTERN); } private Integer parseYear(String year) { - if (year == null) { + return parseIntegerPattern(year, YEAR_NUMBER_PATTERN); + } + + private Integer parseIntegerPattern(String str, Pattern pattern) { + if (str == null) { return null; } Integer result = null; try { - result = Integer.valueOf(year); + result = Integer.valueOf(str); } catch (NumberFormatException x) { - Matcher matcher = YEAR_NUMBER_PATTERN.matcher(year); + if (pattern == null) { + return null; + } + Matcher matcher = pattern.matcher(str); if (matcher.matches()) { try { result = Integer.valueOf(matcher.group(1)); @@ -272,18 +257,7 @@ public class JaudiotaggerParser extends MetaDataParser { private Integer parseInteger(String s) { s = StringUtils.trimToNull(s); - if (s == null) { - return null; - } - try { - Integer result = Integer.valueOf(s); - if (Integer.valueOf(0).equals(result)) { - return null; - } - return result; - } catch (NumberFormatException x) { - return null; - } + return parseIntegerPattern(s, null); } /** 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 db6ef4d9..fa790fde 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 @@ -138,7 +138,7 @@ public class SearchServiceUtilities { public final boolean addIgnoreNull(Collection collection, IndexType indexType, int subjectId) { - if (indexType == IndexType.ALBUM | indexType == IndexType.SONG) { + if (indexType == IndexType.ALBUM || indexType == IndexType.SONG) { return addIgnoreNull(collection, mediaFileService.getMediaFile(subjectId)); } else if (indexType == IndexType.ALBUM_ID3) { return addIgnoreNull(collection, albumDao.getAlbum(subjectId)); @@ -163,8 +163,8 @@ public class SearchServiceUtilities { public final void addIfAnyMatch(SearchResult dist, IndexType subjectIndexType, Document subject) { int documentId = getId.apply(subject); - if (subjectIndexType == IndexType.ARTIST | subjectIndexType == IndexType.ALBUM - | subjectIndexType == IndexType.SONG) { + if (subjectIndexType == IndexType.ARTIST || subjectIndexType == IndexType.ALBUM + || subjectIndexType == IndexType.SONG) { addMediaFileIfAnyMatch.accept(dist.getMediaFiles(), documentId); } else if (subjectIndexType == IndexType.ARTIST_ID3) { addArtistId3IfAnyMatch.accept(dist.getArtists(), documentId); diff --git a/airsonic-main/src/main/java/org/airsonic/player/spring/RegisterPrecompiledJSPInitializer.java b/airsonic-main/src/main/java/org/airsonic/player/spring/RegisterPrecompiledJSPInitializer.java index 81e5e4c2..ec93db79 100644 --- a/airsonic-main/src/main/java/org/airsonic/player/spring/RegisterPrecompiledJSPInitializer.java +++ b/airsonic-main/src/main/java/org/airsonic/player/spring/RegisterPrecompiledJSPInitializer.java @@ -59,14 +59,13 @@ public class RegisterPrecompiledJSPInitializer implements ServletContextInitiali precompiledJspWebXml), IOUtils.toInputStream("", Charset.defaultCharset())); - JAXBContext jaxbContext; try { - jaxbContext = new JAXBDataBinding(WebApp.class).getContext(); + JAXBContext jaxbContext = new JAXBDataBinding(WebApp.class).getContext(); Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); WebApp webapp = (WebApp) unmarshaller.unmarshal(webXmlIS); try { webXmlIS.close(); - } catch (java.io.IOException e) {} + } catch (java.io.IOException ignored) {} return webapp; } catch (JAXBException e) { throw new RuntimeException("Could not parse precompiled-jsp-web.xml", e);