From de023f97600a9ecab27a6bbb51f93c12b80bf3fc Mon Sep 17 00:00:00 2001 From: TheOtherP Date: Fri, 22 Sep 2023 15:13:57 +0200 Subject: [PATCH] Properly log hard crashes See #892 --- .gitignore | 2 ++ buildCore.cmd | 4 +-- core/pom.xml | 8 +++--- .../main/java/org/nzbhydra/DevEndpoint.java | 10 +++++++ .../main/java/org/nzbhydra/NativeHints.java | 1 + .../java/org/nzbhydra/indexers/Newznab.java | 21 ++++++++------- .../native-image/resource-config.json | 7 +++++ core/src/main/resources/changelog.yaml | 12 ++++++++- misc/buildLinuxCore/amd64/dockerfile | 10 +++---- other/mockserver/pom.xml | 2 +- other/wrapper/nzbhydra2wrapperPy3.py | 26 ++++++++++++++----- pom.xml | 4 +-- releases/generic-release/pom.xml | 4 +-- .../include/executables/nzbhydra2 | 4 +-- releases/linux-amd64-release/pom.xml | 4 +-- releases/linux-arm64-release/pom.xml | 4 +-- releases/pom.xml | 4 +-- .../include/NZBHydra2 Console.exe | 4 +-- .../windows-release/include/NZBHydra2.exe | 4 +-- releases/windows-release/pom.xml | 4 +-- shared/assertions/pom.xml | 4 +-- shared/mapping/pom.xml | 2 +- shared/pom.xml | 4 +-- tests/pom.xml | 2 +- tests/system/pom.xml | 6 ++--- 25 files changed, 103 insertions(+), 54 deletions(-) diff --git a/.gitignore b/.gitignore index f85404eda..b0071651d 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,5 @@ heapdump* misc/rsyncToServers.sh /nzbhydra.yml /results +other/wrapper/pyInstaller/windows/build +other/wrapper/pyInstaller/windows_console/build diff --git a/buildCore.cmd b/buildCore.cmd index b9ea6af31..92fe1e78f 100644 --- a/buildCore.cmd +++ b/buildCore.cmd @@ -4,8 +4,8 @@ setlocal call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 -set path=c:\Programme\graalvm-ce-java17-22.2.0\bin\;%PATH%;c:\Programme\graalvm-ce-java17-22.2.0\bin\ -set java_home=c:\Programme\graalvm-ce-java17-22.2.0\ +set path=c:\Programme\graalvm\graalvm-community-openjdk-21+35.1\bin\;%PATH%;c:\Programme\graalvm\graalvm-community-openjdk-21+35.1\bin\ +set java_home=c:\Programme\graalvm\graalvm-community-openjdk-21+35.1 set HYDRA_NATIVE_BUILD=true call mvn -pl org.nzbhydra:core -Pnative clean native:compile -DskipTests diff --git a/core/pom.xml b/core/pom.xml index 1ef54a3b3..95a38e1c5 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -5,7 +5,7 @@ org.nzbhydra nzbhydra2 - 5.1.11 + 5.1.12-SNAPSHOT core @@ -39,7 +39,7 @@ org.graalvm.buildtools native-maven-plugin - 0.9.19 + 0.9.26 true @@ -99,7 +99,7 @@ org.nzbhydra mapping - 5.1.11 + 5.1.12-SNAPSHOT @@ -499,6 +499,8 @@ org.graalvm.buildtools + + 0.9.27 native-maven-plugin diff --git a/core/src/main/java/org/nzbhydra/DevEndpoint.java b/core/src/main/java/org/nzbhydra/DevEndpoint.java index d76819f3c..579be1678 100644 --- a/core/src/main/java/org/nzbhydra/DevEndpoint.java +++ b/core/src/main/java/org/nzbhydra/DevEndpoint.java @@ -34,7 +34,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; +import sun.misc.Unsafe; +import java.lang.reflect.Field; import java.math.BigInteger; import java.util.List; @@ -104,7 +106,15 @@ public void sendIndexerDisabledNotification() { applicationEventPublisher.publishEvent(new IndexerDisabledNotificationEvent(configProvider.getBaseConfig().getIndexers().get(0).getName(), IndexerConfig.State.DISABLED_SYSTEM_TEMPORARY, "Some message generated by hydra6")); applicationEventPublisher.publishEvent(new IndexerDisabledNotificationEvent(configProvider.getBaseConfig().getIndexers().get(0).getName(), IndexerConfig.State.DISABLED_SYSTEM_TEMPORARY, "Some message generated by hydra7")); applicationEventPublisher.publishEvent(new IndexerDisabledNotificationEvent(configProvider.getBaseConfig().getIndexers().get(0).getName(), IndexerConfig.State.DISABLED_SYSTEM_TEMPORARY, "Some message generated by hydra8")); + } + + @RequestMapping(value = "/dev/crash", method = RequestMethod.GET) + public void crashHard() throws Exception { + Field f = Unsafe.class.getDeclaredField("theUnsafe"); + f.setAccessible(true); + Unsafe unsafe = (Unsafe) f.get(null); + unsafe.putAddress(0, 0); } diff --git a/core/src/main/java/org/nzbhydra/NativeHints.java b/core/src/main/java/org/nzbhydra/NativeHints.java index 1ca81d252..c7f7d0ec4 100644 --- a/core/src/main/java/org/nzbhydra/NativeHints.java +++ b/core/src/main/java/org/nzbhydra/NativeHints.java @@ -53,6 +53,7 @@ public void registerHints(RuntimeHints hints, ClassLoader classLoader) { logger.info("Registering native hints"); hints.resources().registerResourceBundle("joptsimple.ExceptionMessages"); + hints.resources().registerResourceBundle("org.apache.xerces.impl.msg.XMLMessages"); final Set> classes = getClassesToRegister(); classes.add(HashSet.class); diff --git a/core/src/main/java/org/nzbhydra/indexers/Newznab.java b/core/src/main/java/org/nzbhydra/indexers/Newznab.java index 3ec7ebce4..d8d6e19a2 100644 --- a/core/src/main/java/org/nzbhydra/indexers/Newznab.java +++ b/core/src/main/java/org/nzbhydra/indexers/Newznab.java @@ -222,6 +222,9 @@ protected void addFurtherParametersToUri(SearchRequest searchRequest, UriCompone } protected void calculateAndAddCategories(SearchRequest searchRequest, UriComponentsBuilder componentsBuilder) { + if (config.getCategoryMapping() == null) { + error("Category mapping unknown - caps check incomplete?"); + } List categoryIds = new ArrayList<>(); if (searchRequest.getInternalData().getNewznabCategories().isEmpty() || configProvider.getBaseConfig().getSearching().isTransformNewznabCategories()) { if (searchRequest.getCategory().getSubtype() == Subtype.ANIME && config.getCategoryMapping().getAnime().isPresent()) { @@ -276,7 +279,7 @@ protected String addForbiddenWords(SearchRequest searchRequest, String query) { allForbiddenWords.addAll(searchRequest.getCategory().getForbiddenWords()); List allPossibleForbiddenWords = allForbiddenWords.stream().filter(x -> !(x.contains(" ") || x.contains("-") || x.contains("."))).collect(Collectors.toList()); if (allForbiddenWords.size() > allPossibleForbiddenWords.size()) { - logger.debug("Not using some forbidden words in query because characters forbidden by newznab are contained"); + debug("Not using some forbidden words in query because characters forbidden by newznab are contained"); } if (!allPossibleForbiddenWords.isEmpty()) { if (config.getBackend().equals(BackendType.NZEDB) || config.getBackend().equals(BackendType.NNTMUX) || config.getHost().toLowerCase().contains("omgwtf") || config.getHost().toLowerCase().contains("nzbfinder")) { @@ -294,7 +297,7 @@ protected String addRequiredWords(SearchRequest searchRequest, String query) { allRequiredWords.addAll(searchRequest.getCategory().getRequiredWords()); List allPossibleRequiredWords = allRequiredWords.stream().filter(x -> !(x.contains(" ") || x.contains("-") || x.contains("."))).collect(Collectors.toList()); if (allRequiredWords.size() > allPossibleRequiredWords.size()) { - logger.debug("Not using some forbidden words in query because characters forbidden by newznab are contained"); + debug("Not using some forbidden words in query because characters forbidden by newznab are contained"); } if (!allPossibleRequiredWords.isEmpty()) { query += (query.isEmpty() ? "" : " ") + Joiner.on(" ").join(allPossibleRequiredWords); @@ -508,10 +511,10 @@ protected void completeIndexerSearchResult(Xml response, IndexerSearchResult ind indexerStatus.setOldestDownload(apiLimits.getGrabOldestTime()); indexerStatusRepository.save(indexerStatus); - logger.debug(LoggingMarkers.LIMITS, "Indexer {}. Saving IndexerStatus data: {}", indexer.getName(), indexerStatus); + debug(LoggingMarkers.LIMITS, "Indexer {}. Saving IndexerStatus data: {}", indexer.getName(), indexerStatus); } else { - logger.debug(LoggingMarkers.LIMITS, "Indexer {}. No limits provided in response.", indexer.getName()); + debug(LoggingMarkers.LIMITS, "Indexer {}. No limits provided in response.", indexer.getName()); } } @@ -723,14 +726,14 @@ private void putGroupMatchIfFound(SearchResultItem searchResultItem, Matcher mat protected void computeCategory(SearchResultItem searchResultItem, List newznabCategories) { if (!newznabCategories.isEmpty()) { - logger.debug(LoggingMarkers.CATEGORY_MAPPING, "Result {} has newznab categories {} and self-reported category {}", searchResultItem.getTitle(), newznabCategories, searchResultItem.getCategory()); + debug(LoggingMarkers.CATEGORY_MAPPING, "Result {} has newznab categories {} and self-reported category {}", searchResultItem.getTitle(), newznabCategories, searchResultItem.getCategory()); Integer mostSpecific = newznabCategories.stream().max(Integer::compareTo).get(); IndexerCategoryConfig mapping = config.getCategoryMapping(); Category category; if (mapping == null) { //May be the case in some corner cases category = categoryProvider.fromSearchNewznabCategories(newznabCategories, categoryProvider.getNotAvailable()); searchResultItem.setOriginalCategory(categoryProvider.getNotAvailable().getName()); - logger.debug(LoggingMarkers.CATEGORY_MAPPING, "No mapping available. Using original category N/A and new category {} for result {}", category, searchResultItem.getTitle()); + debug(LoggingMarkers.CATEGORY_MAPPING, "No mapping available. Using original category N/A and new category {} for result {}", category, searchResultItem.getTitle()); } else { category = idToCategory.computeIfAbsent(mostSpecific, x -> { Optional categoryOptional = Optional.empty(); @@ -751,14 +754,14 @@ protected void computeCategory(SearchResultItem searchResultItem, List searchResultItem.setOriginalCategory(mapping.getNameFromId(mostSpecific)); } if (category == null) { - logger.debug(LoggingMarkers.CATEGORY_MAPPING, "No category found for {}. Using N/A", searchResultItem.getTitle()); + debug(LoggingMarkers.CATEGORY_MAPPING, "No category found for {}. Using N/A", searchResultItem.getTitle()); searchResultItem.setCategory(categoryProvider.getNotAvailable()); } else { - logger.debug(LoggingMarkers.CATEGORY_MAPPING, "Determined category {} for {}", category, searchResultItem.getTitle()); + debug(LoggingMarkers.CATEGORY_MAPPING, "Determined category {} for {}", category, searchResultItem.getTitle()); searchResultItem.setCategory(category); } } else { - logger.debug(LoggingMarkers.CATEGORY_MAPPING, "No newznab categories exist for {}. Using N/A", searchResultItem.getTitle()); + debug(LoggingMarkers.CATEGORY_MAPPING, "No newznab categories exist for {}. Using N/A", searchResultItem.getTitle()); searchResultItem.setCategory(categoryProvider.getNotAvailable()); } } diff --git a/core/src/main/resources/META-INF/native-image/resource-config.json b/core/src/main/resources/META-INF/native-image/resource-config.json index 7054a572c..4d058d08f 100644 --- a/core/src/main/resources/META-INF/native-image/resource-config.json +++ b/core/src/main/resources/META-INF/native-image/resource-config.json @@ -2840,6 +2840,13 @@ "locales": [ "en" ] + }, + { + "name": "org.apache.xerces.impl.msg.XMLMessages", + "locales": [ + "en", + "en_US" + ] } ] } diff --git a/core/src/main/resources/changelog.yaml b/core/src/main/resources/changelog.yaml index b0fadede6..e70cf1560 100644 --- a/core/src/main/resources/changelog.yaml +++ b/core/src/main/resources/changelog.yaml @@ -1,6 +1,16 @@ #@formatter:off +- version: "v5.2.0" + date: "2023-09-22" + changes: + - type: "feature" + text: "In case of hard crashes of the main process it will automatically be restarted unless the last automatic restart was less than 15 seconds ago (to prevent loops)" + - type: "note" + text: "Windows releases now only contain three exe files (and documents) and no more DLL files" + - type: "fix" + text: "Hard crashes of the main process will now be logged properly. See #892" + final: true - version: "v5.1.11" - date: "2023-09-1" + date: "2023-09-01" changes: - type: "fix" text: "Allow to configure Radarr v5 automatically. See #889" diff --git a/misc/buildLinuxCore/amd64/dockerfile b/misc/buildLinuxCore/amd64/dockerfile index c09e4e7c0..d0b2a5190 100644 --- a/misc/buildLinuxCore/amd64/dockerfile +++ b/misc/buildLinuxCore/amd64/dockerfile @@ -12,14 +12,14 @@ ENV M2_HOME=/opt/maven ENV MAVEN_HOME=/opt/maven ENV PATH=${M2_HOME}/bin:${PATH} -RUN wget -nv --no-check-certificate https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.0/graalvm-ce-java17-linux-amd64-22.3.0.tar.gz -RUN tar xzf graalvm-ce-java17-linux-amd64-22.3.0.tar.gz -C / +RUN wget -nv --no-check-certificate https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.3/graalvm-ce-java17-linux-amd64-22.3.3.tar.gz +RUN tar xzf graalvm-ce-java17-linux-amd64-22.3.3.tar.gz -C / ENV PATH=/graalvm-ce-java17-22.3.0/bin/:$PATH ENV JAVA_HOME=/graalvm-ce-java17-22.3.0 -RUN wget -nv --no-check-certificate https://github.com/upx/upx/releases/download/v4.0.1/upx-4.0.1-amd64_linux.tar.xz -RUN tar -xf upx-4.0.1-amd64_linux.tar.xz -ENV PATH=/tmp/upx-4.0.1-amd64_linux/:$PATH +RUN wget -nv --no-check-certificate https://github.com/upx/upx/releases/download/v4.1.0/upx-4.1.0-amd64_linux.tar.xz +RUN tar -xf upx-4.1.0-amd64_linux.tar.xz +ENV PATH=/tmp/upx-4.1.0-amd64_linux/:$PATH ENV HYDRA_NATIVE_BUILD=true diff --git a/other/mockserver/pom.xml b/other/mockserver/pom.xml index 577e6b835..07f356988 100644 --- a/other/mockserver/pom.xml +++ b/other/mockserver/pom.xml @@ -60,7 +60,7 @@ org.nzbhydra mapping - 5.1.11 + 5.1.12-SNAPSHOT jaxb-impl diff --git a/other/wrapper/nzbhydra2wrapperPy3.py b/other/wrapper/nzbhydra2wrapperPy3.py index fc3734820..20897a66a 100644 --- a/other/wrapper/nzbhydra2wrapperPy3.py +++ b/other/wrapper/nzbhydra2wrapperPy3.py @@ -2,6 +2,7 @@ import random import string import sys +import time import traceback import webbrowser @@ -55,6 +56,7 @@ class OsType(str, Enum): file_logger = None logger.setLevel(LOGGER_DEFAULT_LEVEL) consoleLines = [] +lastRestart = 0 def getBasePath(): @@ -354,7 +356,8 @@ def startup(): jarFile = jarFiles[0] else: latestFile = max(jarFiles, key=os.path.getmtime) - logger.warning("Expected the number of JAR files in folder %s to be 1 but it's %d. Will remove all JARs except the one last changed: %s", libFolder, len(jarFiles), latestFile) + logger.warning("Expected the number of JAR files in folder %s to be 1 but it's %d. Will remove all JARs except the one last changed: %s", libFolder, len(jarFiles), + latestFile) for file in jarFiles: if file is not latestFile: logger.info("Deleting file %s", file) @@ -472,7 +475,7 @@ def startup(): if nextlineString != "": consoleLines.append(nextlineString) - if len(consoleLines) > 100: + if len(consoleLines) > 1000: consoleLines = consoleLines[-100:] if not args.quiet and sys.stdout is not None: sys.stdout.write(nextlineString) @@ -506,7 +509,8 @@ def determineReleaseType(): if os.path.exists(os.path.join(getBasePath(), "lib")): releaseType = ReleaseType.GENERIC if os.path.exists(os.path.join(getBasePath(), "core")) or os.path.exists(os.path.join(getBasePath(), "core.exe")): - logger.warning("lib folder and core(.exe) found. Either delete the executable to use the generic release type (using java and ignoring the executable) or delete the lib folder to use the executable and not require java") + logger.warning( + "lib folder and core(.exe) found. Either delete the executable to use the generic release type (using java and ignoring the executable) or delete the lib folder to use the executable and not require java") elif os.path.exists(os.path.join(getBasePath(), "core")) or os.path.exists(os.path.join(getBasePath(), "core.exe")): releaseType = ReleaseType.NATIVE else: @@ -540,8 +544,8 @@ def handleUnexpectedExit(): message = "You seem to be trying to run NZBHydra with a wrong Java version. Please make sure to use at least Java 9" elif "java.lang.OutOfMemoryError" in x: message = "The main process has exited because it didn't have enough memory. Please increase the XMX value in the main config" - logger.error(message) - sys.exit(-1) + logger.error(message + "\nThe last 1000 lines from output:") + logger.error("".join(consoleLines).replace("\n\n", "")) def getJavaVersion(javaExecutable): @@ -681,7 +685,7 @@ def main(arguments): logger.debug("Shutting down because child process was terminated by us after getting signal") sys.exit(0) - if process.returncode == 1: + if process.returncode in (1, 99): handleUnexpectedExit() args.restarted = True @@ -713,6 +717,16 @@ def main(arguments): elif controlCode == 22: logger.info("NZBHydra main process has terminated for restart") doStart = True + elif controlCode in (1, 99): + global lastRestart + difference = time.time() - lastRestart + if difference < 15: + logger.warning("Last automatic restart was less than 15 seconds ago - quitting to prevent loop") + doStart = False + else: + logger.info("Restarting NZBHydra after hard crash") + lastRestart = time.time() + doStart = True elif controlCode == 33: logger.info("NZBHydra main process has terminated for restoration") doStart = restore() diff --git a/pom.xml b/pom.xml index a11c9667b..c0a7be329 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ org.nzbhydra nzbhydra2 pom - 5.1.11 + 5.1.12-SNAPSHOT shared @@ -112,7 +112,7 @@ 3.0.3 3.1.0 2.14.0 - 1.18.24 + 1.18.30 1.4.5 23.0 4.13.2 diff --git a/releases/generic-release/pom.xml b/releases/generic-release/pom.xml index 5147656f4..db48425a0 100644 --- a/releases/generic-release/pom.xml +++ b/releases/generic-release/pom.xml @@ -5,7 +5,7 @@ org.nzbhydra releases - 5.1.11 + 5.1.12-SNAPSHOT generic-release @@ -15,7 +15,7 @@ org.nzbhydra core - 5.1.11 + 5.1.12-SNAPSHOT diff --git a/releases/linux-amd64-release/include/executables/nzbhydra2 b/releases/linux-amd64-release/include/executables/nzbhydra2 index f81abc82a..549d5d0fd 100644 --- a/releases/linux-amd64-release/include/executables/nzbhydra2 +++ b/releases/linux-amd64-release/include/executables/nzbhydra2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cbd007b162cb75fa1e3de88f160658fdaa2103d2b24f3c02a59715514f00f6fe -size 9936472 +oid sha256:2565bea18f3c741932596f0e10d962b7ebc10d4dec5993b05098c1dceaa4f82a +size 9940232 diff --git a/releases/linux-amd64-release/pom.xml b/releases/linux-amd64-release/pom.xml index 5f1fb30f7..b63b53940 100644 --- a/releases/linux-amd64-release/pom.xml +++ b/releases/linux-amd64-release/pom.xml @@ -5,7 +5,7 @@ org.nzbhydra releases - 5.1.11 + 5.1.12-SNAPSHOT linux-amd64-release @@ -15,7 +15,7 @@ org.nzbhydra core - 5.1.11 + 5.1.12-SNAPSHOT diff --git a/releases/linux-arm64-release/pom.xml b/releases/linux-arm64-release/pom.xml index 53aad29da..2ed516d85 100644 --- a/releases/linux-arm64-release/pom.xml +++ b/releases/linux-arm64-release/pom.xml @@ -5,7 +5,7 @@ org.nzbhydra releases - 5.1.11 + 5.1.12-SNAPSHOT linux-arm64-release @@ -15,7 +15,7 @@ org.nzbhydra core - 5.1.11 + 5.1.12-SNAPSHOT diff --git a/releases/pom.xml b/releases/pom.xml index ac19cbf08..d28960e17 100644 --- a/releases/pom.xml +++ b/releases/pom.xml @@ -4,12 +4,12 @@ org.nzbhydra nzbhydra2 - 5.1.11 + 5.1.12-SNAPSHOT releases pom - 5.1.11 + 5.1.12-SNAPSHOT generic-release diff --git a/releases/windows-release/include/NZBHydra2 Console.exe b/releases/windows-release/include/NZBHydra2 Console.exe index fd9365acd..9f6a76c66 100644 --- a/releases/windows-release/include/NZBHydra2 Console.exe +++ b/releases/windows-release/include/NZBHydra2 Console.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:42a05c9c1288def05b65850d86357ed7d71cad5509072a7787e19a3ae7152a06 -size 8530060 +oid sha256:c99273060605873d579d537e892ff9f2f316ec82945a81ce40f95bc576a6ea9c +size 8528731 diff --git a/releases/windows-release/include/NZBHydra2.exe b/releases/windows-release/include/NZBHydra2.exe index 89b883c15..272d6f27b 100644 --- a/releases/windows-release/include/NZBHydra2.exe +++ b/releases/windows-release/include/NZBHydra2.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2bca716ebd74bf7a39ffb19f2525e2c6f08622ea162d01b82191f4d2bb685170 -size 10471146 +oid sha256:3bb692f0b9a75e39dc9f555705c892efe8c3dd13708f7c3c15aa310965550cbf +size 10469735 diff --git a/releases/windows-release/pom.xml b/releases/windows-release/pom.xml index ee2e904dd..5b9e7220a 100644 --- a/releases/windows-release/pom.xml +++ b/releases/windows-release/pom.xml @@ -5,7 +5,7 @@ org.nzbhydra releases - 5.1.11 + 5.1.12-SNAPSHOT windows-release @@ -15,7 +15,7 @@ org.nzbhydra core - 5.1.11 + 5.1.12-SNAPSHOT diff --git a/shared/assertions/pom.xml b/shared/assertions/pom.xml index 8f223ff55..e7df81f16 100644 --- a/shared/assertions/pom.xml +++ b/shared/assertions/pom.xml @@ -6,7 +6,7 @@ org.nzbhydra shared - 5.1.11 + 5.1.12-SNAPSHOT assertions @@ -31,7 +31,7 @@ org.nzbhydra mapping - 5.1.11 + 5.1.12-SNAPSHOT org.assertj diff --git a/shared/mapping/pom.xml b/shared/mapping/pom.xml index ebdc4fc21..e99da87ab 100644 --- a/shared/mapping/pom.xml +++ b/shared/mapping/pom.xml @@ -6,7 +6,7 @@ org.nzbhydra shared - 5.1.11 + 5.1.12-SNAPSHOT mapping diff --git a/shared/pom.xml b/shared/pom.xml index 318afe1ca..e27b786ca 100644 --- a/shared/pom.xml +++ b/shared/pom.xml @@ -4,12 +4,12 @@ org.nzbhydra nzbhydra2 - 5.1.11 + 5.1.12-SNAPSHOT shared pom - 5.1.11 + 5.1.12-SNAPSHOT mapping diff --git a/tests/pom.xml b/tests/pom.xml index d3796631e..690b102b2 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -5,7 +5,7 @@ org.nzbhydra nzbhydra2 - 5.1.11 + 5.1.12-SNAPSHOT tests diff --git a/tests/system/pom.xml b/tests/system/pom.xml index b67b37076..19271433c 100644 --- a/tests/system/pom.xml +++ b/tests/system/pom.xml @@ -23,7 +23,7 @@ org.nzbhydra tests - 5.1.11 + 5.1.12-SNAPSHOT org.nzbhydra.tests @@ -101,7 +101,7 @@ org.nzbhydra mapping - 5.1.11 + 5.1.12-SNAPSHOT com.github.docker-java @@ -128,7 +128,7 @@ org.nzbhydra assertions - 5.1.11 + 5.1.12-SNAPSHOT