Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/arduino/Arduino.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCristian Maglie <c.maglie@arduino.cc>2021-12-20 18:11:24 +0300
committerGitHub <noreply@github.com>2021-12-20 18:11:24 +0300
commitc4078e7f705bf9dc2b872a768e7d30291a8581c9 (patch)
tree4806c3764102491e6bb4605fa2918c7f1b83ddce
parentdfeff7df4cee2dacefc64f8a34210a83abc15dc5 (diff)
parentc16b9f5f26107a4b7bca87c87057129ab418261e (diff)
Merge pull request #11730 from cmaglie/remove_log4j
Remove log4j, to fix current and future CVEs.
-rw-r--r--app/.classpath2
-rw-r--r--app/build.xml4
-rw-r--r--app/lib/log4j-api-2.16.0.jarbin301892 -> 0 bytes
-rw-r--r--app/lib/log4j-core-2.16.0.jarbin1789565 -> 0 bytes
-rw-r--r--app/src/cc/arduino/contributions/ContributionsSelfCheck.java11
-rw-r--r--app/src/log4j2.xml29
-rw-r--r--app/src/processing/app/Base.java6
-rw-r--r--arduino-core/.classpath2
-rw-r--r--arduino-core/lib/log4j-api-2.16.0.jarbin301892 -> 0 bytes
-rw-r--r--arduino-core/lib/log4j-core-2.16.0.jarbin1789565 -> 0 bytes
-rw-r--r--arduino-core/src/cc/arduino/contributions/DownloadableContributionsDownloader.java18
-rw-r--r--arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java7
-rw-r--r--arduino-core/src/cc/arduino/contributions/packages/ContributionInstaller.java9
-rw-r--r--arduino-core/src/cc/arduino/utils/network/FileDownloader.java27
-rw-r--r--arduino-core/src/cc/arduino/utils/network/FileDownloaderCache.java53
-rw-r--r--arduino-core/src/cc/arduino/utils/network/HttpConnectionManager.java39
-rw-r--r--arduino-core/src/processing/app/Platform.java1
-rw-r--r--arduino-core/src/processing/app/helpers/BoardCloudResolver.java7
-rw-r--r--build/windows/launcher/config.xml2
-rw-r--r--build/windows/launcher/config_debug.xml2
20 files changed, 31 insertions, 188 deletions
diff --git a/app/.classpath b/app/.classpath
index 9b920b1bb..ea9425b49 100644
--- a/app/.classpath
+++ b/app/.classpath
@@ -38,8 +38,6 @@
<classpathentry kind="lib" path="lib/jmdns-3.5.5.jar"/>
<classpathentry kind="lib" path="lib/slf4j-api-1.7.22.jar"/>
<classpathentry kind="lib" path="lib/slf4j-simple-1.7.22.jar"/>
- <classpathentry kind="lib" path="lib/log4j-api-2.16.0.jar"/>
- <classpathentry kind="lib" path="lib/log4j-core-2.16.0.jar"/>
<classpathentry kind="lib" path="lib/jsch-0.1.50.jar"/>
<classpathentry kind="lib" path="lib/rsyntaxtextarea-3.0.3-SNAPSHOT.jar"/>
<classpathentry kind="lib" path="lib/xml-apis-1.3.04.jar"/>
diff --git a/app/build.xml b/app/build.xml
index fa3223642..d2e9ad006 100644
--- a/app/build.xml
+++ b/app/build.xml
@@ -80,10 +80,6 @@
includeAntRuntime="false"
debug="true"
classpathref="class.path" />
- <!-- If you want to add files in the jars -->
- <copy todir="bin" overwrite="true" verbose="true">
- <fileset dir="src" includes="log4j2.xml" />
- </copy>
</target>
<target name="test" depends="compile" description="Runs the test">
diff --git a/app/lib/log4j-api-2.16.0.jar b/app/lib/log4j-api-2.16.0.jar
deleted file mode 100644
index 2cdcc4b07..000000000
--- a/app/lib/log4j-api-2.16.0.jar
+++ /dev/null
Binary files differ
diff --git a/app/lib/log4j-core-2.16.0.jar b/app/lib/log4j-core-2.16.0.jar
deleted file mode 100644
index bc913bc53..000000000
--- a/app/lib/log4j-core-2.16.0.jar
+++ /dev/null
Binary files differ
diff --git a/app/src/cc/arduino/contributions/ContributionsSelfCheck.java b/app/src/cc/arduino/contributions/ContributionsSelfCheck.java
index 96fd987b0..50e5e8617 100644
--- a/app/src/cc/arduino/contributions/ContributionsSelfCheck.java
+++ b/app/src/cc/arduino/contributions/ContributionsSelfCheck.java
@@ -35,7 +35,6 @@ import cc.arduino.contributions.libraries.filters.UpdatableLibraryPredicate;
import cc.arduino.contributions.packages.ContributionInstaller;
import cc.arduino.contributions.packages.filters.UpdatablePlatformPredicate;
import cc.arduino.view.NotificationPopup;
-import org.apache.logging.log4j.LogManager;
import processing.app.*;
import javax.swing.*;
@@ -160,12 +159,14 @@ public class ContributionsSelfCheck extends TimerTask implements NotificationPop
private void goToManager(String link) {
try {
- ((UpdatableBoardsLibsFakeURLsHandler) hyperlinkListener).openBoardLibManager(new URL(link));
- }
- catch (Exception e){
- LogManager.getLogger(ContributionsSelfCheck.class).warn("Exception while attempting to go to board manager", e);
+ ((UpdatableBoardsLibsFakeURLsHandler) hyperlinkListener)
+ .openBoardLibManager(new URL(link));
+ } catch (Exception e) {
+ System.err.println("Error while attempting to open board manager: "
+ + e.getMessage());
}
}
+
// callback for boards button
public void onOptionalButton1Callback() {
goToManager(boardsManagerURL);
diff --git a/app/src/log4j2.xml b/app/src/log4j2.xml
deleted file mode 100644
index 64f6b8f06..000000000
--- a/app/src/log4j2.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Configuration status="warn" name="Arduino" packages="cc.arduino">
- <Appenders>
-
- <!-- Console Appender -->
- <Console name="Console" target="SYSTEM_ERR">
- <PatternLayout pattern="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}{UTC} %p %c{1.}:%L [%t] %m%n"/>
- </Console>
-
- <!-- Rolling File Appender -->
- <RollingFile name="RollingFile" fileName="${sys:log4j.dir}/logs/application.log"
- filePattern="${sys:log4j.dir}/logs/application-%d{MM-dd-yyyy}-%i.log.gz"
- ignoreExceptions="false">
- <PatternLayout>
- <Pattern>%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}{UTC} %p %c{1.}:%L [%t] %m%n</Pattern>
- </PatternLayout>
- <Policies>
- <SizeBasedTriggeringPolicy size="50 MB"/>
- </Policies>
- <DefaultRolloverStrategy max="20"/>
- </RollingFile>
- </Appenders>
- <Loggers>
- <Root level="debug">
- <AppenderRef ref="Console" level="info" />
- <AppenderRef ref="RollingFile"/>
- </Root>
- </Loggers>
-</Configuration>
diff --git a/app/src/processing/app/Base.java b/app/src/processing/app/Base.java
index 9fa56030e..cdac3059f 100644
--- a/app/src/processing/app/Base.java
+++ b/app/src/processing/app/Base.java
@@ -220,12 +220,6 @@ public class Base {
parser.parseArgumentsPhase1();
commandLine = !parser.isGuiMode();
- // This configure the logs root folder
- if (parser.isGuiMode()) {
- System.out.println("Set log4j store directory " + BaseNoGui.getSettingsFolder().getAbsolutePath());
- }
- System.setProperty("log4j.dir", BaseNoGui.getSettingsFolder().getAbsolutePath());
-
BaseNoGui.checkInstallationFolder();
// If no path is set, get the default sketchbook folder for this platform
diff --git a/arduino-core/.classpath b/arduino-core/.classpath
index 42c399786..3f0d53aaa 100644
--- a/arduino-core/.classpath
+++ b/arduino-core/.classpath
@@ -8,8 +8,6 @@
<classpathentry kind="lib" path="lib/jmdns-3.5.5.jar"/>
<classpathentry kind="lib" path="lib/slf4j-api-1.7.22.jar"/>
<classpathentry kind="lib" path="lib/slf4j-simple-1.7.22.jar"/>
- <classpathentry kind="lib" path="lib/log4j-api-2.16.0.jar"/>
- <classpathentry kind="lib" path="lib/log4j-core-2.16.0.jar"/>
<classpathentry kind="lib" path="lib/jsch-0.1.50.jar"/>
<classpathentry kind="lib" path="lib/commons-exec-1.1.jar"/>
<classpathentry kind="lib" path="../app/lib/commons-httpclient-3.1.jar"/>
diff --git a/arduino-core/lib/log4j-api-2.16.0.jar b/arduino-core/lib/log4j-api-2.16.0.jar
deleted file mode 100644
index 2cdcc4b07..000000000
--- a/arduino-core/lib/log4j-api-2.16.0.jar
+++ /dev/null
Binary files differ
diff --git a/arduino-core/lib/log4j-core-2.16.0.jar b/arduino-core/lib/log4j-core-2.16.0.jar
deleted file mode 100644
index bc913bc53..000000000
--- a/arduino-core/lib/log4j-core-2.16.0.jar
+++ /dev/null
Binary files differ
diff --git a/arduino-core/src/cc/arduino/contributions/DownloadableContributionsDownloader.java b/arduino-core/src/cc/arduino/contributions/DownloadableContributionsDownloader.java
index ee32dff53..620152abf 100644
--- a/arduino-core/src/cc/arduino/contributions/DownloadableContributionsDownloader.java
+++ b/arduino-core/src/cc/arduino/contributions/DownloadableContributionsDownloader.java
@@ -34,8 +34,6 @@ import cc.arduino.utils.MultiStepProgress;
import cc.arduino.utils.Progress;
import cc.arduino.utils.network.FileDownloader;
import org.apache.commons.io.FilenameUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import processing.app.BaseNoGui;
import processing.app.PreferencesData;
@@ -48,8 +46,6 @@ import static processing.app.I18n.format;
import static processing.app.I18n.tr;
public class DownloadableContributionsDownloader {
- private static Logger log = LogManager.getLogger(DownloadableContributionsDownloader.class);
-
private final File stagingFolder;
public DownloadableContributionsDownloader(File _stagingFolder) {
@@ -151,7 +147,6 @@ public class DownloadableContributionsDownloader {
}
public void downloadIndexAndSignature(MultiStepProgress progress, URL packageIndexUrl, ProgressListener progressListener, SignatureVerifier signatureVerifier) throws Exception {
-
// Extract the file name from the url
final String indexFileName = FilenameUtils.getName(packageIndexUrl.getPath());
final File packageIndex = BaseNoGui.indexer.getIndexFile(indexFileName);
@@ -169,16 +164,13 @@ public class DownloadableContributionsDownloader {
if (checkSignature(progress, signatureUrl, progressListener, signatureVerifier, statusText, packageIndexTemp)) {
Files.move(packageIndexTemp.toPath(), packageIndex.toPath(), StandardCopyOption.REPLACE_EXISTING);
} else {
- log.info("The cached files have been removed. {} {}", packageIndexUrl, signatureUrl);
FileDownloader.invalidateFiles(packageIndexUrl, signatureUrl);
}
} else {
// Move the package index to the destination when the signature is not necessary
Files.move(packageIndexTemp.toPath(), packageIndex.toPath(), StandardCopyOption.REPLACE_EXISTING);
- log.info("The domain is not selected to verify the signature. will be copied into this path {}, packageIndex url: {}", packageIndex, packageIndexUrl);
}
} catch (Exception e) {
- log.error("Cannot download the package index from {} the package will be discard", packageIndexUrl, e);
throw e;
} finally {
// Delete useless temp file
@@ -196,49 +188,39 @@ public class DownloadableContributionsDownloader {
if (domain.contains(url.getHost())) {
return true;
} else {
- log.info("The domain is not selected to verify the signature. domain list: {}, url: {}", domain, url);
return false;
}
}
public boolean checkSignature(MultiStepProgress progress, URL signatureUrl, ProgressListener progressListener, SignatureVerifier signatureVerifier, String statusText, File fileToVerify) throws Exception {
-
-
// Signature file name
final String signatureFileName = FilenameUtils.getName(signatureUrl.getPath());
final File packageIndexSignature = BaseNoGui.indexer.getIndexFile(signatureFileName);
final File packageIndexSignatureTemp = File.createTempFile(signatureFileName, ".tmp");
-
try {
// Download signature
download(signatureUrl, packageIndexSignatureTemp, progress, statusText, progressListener, true);
if (PreferencesData.areInsecurePackagesAllowed()) {
Files.move(packageIndexSignatureTemp.toPath(), packageIndexSignature.toPath(), StandardCopyOption.REPLACE_EXISTING);
- log.info("Allowing insecure packages because allow_insecure_packages is set to true in preferences.txt" +
- " but the signature was download");
return true;
}
// Verify the signature before move the files
final boolean signatureVerified = signatureVerifier.isSigned(fileToVerify, packageIndexSignatureTemp);
if (signatureVerified) {
- log.info("Signature verified. url={}, signature url={}, file to verify={}, signature file={}", signatureUrl, signatureUrl, fileToVerify, packageIndexSignatureTemp);
// Move if the signature is ok
Files.move(packageIndexSignatureTemp.toPath(), packageIndexSignature.toPath(), StandardCopyOption.REPLACE_EXISTING);
} else {
- log.error("{} file signature verification failed. File ignored.", signatureUrl);
System.err.println(format(tr("{0} file signature verification failed. File ignored."), signatureUrl.toString()));
}
return signatureVerified;
} catch (Exception e) {
- log.error("Cannot download the signature from {} the package will be discard", signatureUrl, e);
throw e;
} finally {
Files.deleteIfExists(packageIndexSignatureTemp.toPath());
}
-
}
}
diff --git a/arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java b/arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java
index 3f00f909b..64a15e7b2 100644
--- a/arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java
+++ b/arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java
@@ -38,8 +38,6 @@ import cc.arduino.utils.ArchiveExtractor;
import cc.arduino.utils.MultiStepProgress;
import cc.arduino.utils.network.FileDownloader;
import org.apache.commons.io.FilenameUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import processing.app.BaseNoGui;
import processing.app.I18n;
import processing.app.Platform;
@@ -57,8 +55,6 @@ import java.util.Optional;
import static processing.app.I18n.tr;
public class LibraryInstaller {
- private static Logger log = LogManager.getLogger(LibraryInstaller.class);
-
private final Platform platform;
private final GPGDetachedSignatureVerifier signatureVerifier;
@@ -97,10 +93,7 @@ public class LibraryInstaller {
}
} else {
FileDownloader.invalidateFiles(libraryGzURL, libraryURL, signatureUrl);
- log.error("Fail to verify the signature of {} the cached files have been removed", libraryURL);
}
- } else {
- log.info("The domain is not selected to verify the signature. library index: {}", signatureUrl);
}
// Step 2: Parse index
diff --git a/arduino-core/src/cc/arduino/contributions/packages/ContributionInstaller.java b/arduino-core/src/cc/arduino/contributions/packages/ContributionInstaller.java
index 287f18e49..1540ce54c 100644
--- a/arduino-core/src/cc/arduino/contributions/packages/ContributionInstaller.java
+++ b/arduino-core/src/cc/arduino/contributions/packages/ContributionInstaller.java
@@ -41,8 +41,6 @@ import org.apache.commons.exec.CommandLine;
import org.apache.commons.exec.DefaultExecutor;
import org.apache.commons.exec.Executor;
import org.apache.commons.exec.PumpStreamHandler;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import processing.app.BaseNoGui;
import processing.app.I18n;
import processing.app.Platform;
@@ -64,8 +62,6 @@ import static processing.app.I18n.format;
import static processing.app.I18n.tr;
public class ContributionInstaller {
- private static Logger log = LogManager.getLogger(ContributionInstaller.class);
-
private final Platform platform;
private final SignatureVerifier signatureVerifier;
@@ -271,8 +267,6 @@ public class ContributionInstaller {
Files.delete(destFolder.getParentFile().toPath());
} catch (Exception e) {
// ignore
- log.info("The directory is not empty there is another version installed. directory {}",
- destFolder.getParentFile().toPath(), e);
}
}
@@ -298,15 +292,12 @@ public class ContributionInstaller {
// Extract the file name from the URL
final URL packageIndexURL = new URL(packageIndexURLString);
- log.info("Start download and signature check of={}", packageIndexURLs);
downloader.downloadIndexAndSignature(progress, packageIndexURL, progressListener, signatureVerifier);
} catch (Exception e) {
- log.error(e.getMessage(), e);
System.err.println(e.getMessage());
}
}
progress.stepDone();
- log.info("Downloaded package index URL={}", packageIndexURLs);
}
}
diff --git a/arduino-core/src/cc/arduino/utils/network/FileDownloader.java b/arduino-core/src/cc/arduino/utils/network/FileDownloader.java
index b69a1fa1b..78c2cced8 100644
--- a/arduino-core/src/cc/arduino/utils/network/FileDownloader.java
+++ b/arduino-core/src/cc/arduino/utils/network/FileDownloader.java
@@ -30,8 +30,6 @@
package cc.arduino.utils.network;
import org.apache.commons.compress.utils.IOUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import processing.app.helpers.FileUtils;
import javax.script.ScriptException;
@@ -50,8 +48,6 @@ import java.util.Observable;
import java.util.Optional;
public class FileDownloader extends Observable {
- private static Logger log = LogManager.getLogger(FileDownloader.class);
-
public enum Status {
CONNECTING, //
CONNECTION_TIMEOUT_ERROR, //
@@ -146,17 +142,16 @@ public class FileDownloader extends Observable {
try {
FileDownloaderCache.getFileCached(url).ifPresent(fileCached -> {
try {
- log.info("Invalidate this file {} that comes from {}", fileCached.getLocalPath(), fileCached.getRemoteURL());
fileCached.invalidateCache();
} catch (Exception e) {
- log.warn("Fail to invalidate cache", e);
+ System.err.println("Error invalidating cached file " + fileCached.getLocalPath() + " that comes from "
+ + fileCached.getRemoteURL() + ": " + e.getMessage());
}
});
} catch (URISyntaxException | NoSuchMethodException | ScriptException | IOException e) {
- log.warn("Fail to get the file cached during the file invalidation", e);
+ System.err.println("Fail to get the file cached during the file invalidation" + e.getMessage());
}
});
-
}
private void downloadFile(boolean noResume) throws InterruptedException {
@@ -171,7 +166,6 @@ public class FileDownloader extends Observable {
final Optional<File> fileFromCache = getFileCached(fileCached);
if (fileCached.isNotChange() && fileFromCache.isPresent()) {
// Copy the cached file in the destination file
- log.info("The file will be taken from the cache {}", fileFromCache);
FileUtils.copyFile(fileFromCache.get(), outputFile);
} else {
openConnectionAndFillTheFile(noResume);
@@ -191,34 +185,23 @@ public class FileDownloader extends Observable {
} catch (SocketTimeoutException e) {
setStatus(Status.CONNECTION_TIMEOUT_ERROR);
setError(e);
- log.error("The request went in socket timeout", e);
} catch (Exception e) {
setStatus(Status.ERROR);
setError(e);
- log.error("The request stop", e);
}
}
private Optional<File> getFileCached(FileDownloaderCache.FileCached fileCached) {
-
try {
- final Optional<File> fileFromCache =
- fileCached.getFileFromCache();
+ final Optional<File> fileFromCache = fileCached.getFileFromCache();
if (fileFromCache.isPresent()) {
- log.info("No need to download using cached file: {}", fileCached);
return fileFromCache;
- } else {
- log.info(
- "The file in the cache is not in the path or the md5 validation failed: path={}, file exist={}, md5 validation={}",
- fileCached.getLocalPath(), fileCached.exists(), fileCached.md5Check());
}
} catch (Exception e) {
- log.warn(
- "Cannot get the file from the cache, will be downloaded a new one ", e);
+ // Cannot get the file from the cache, download a new one
}
- log.info("The file is change {}", fileCached);
return Optional.empty();
}
diff --git a/arduino-core/src/cc/arduino/utils/network/FileDownloaderCache.java b/arduino-core/src/cc/arduino/utils/network/FileDownloaderCache.java
index 766e70859..a529a241d 100644
--- a/arduino-core/src/cc/arduino/utils/network/FileDownloaderCache.java
+++ b/arduino-core/src/cc/arduino/utils/network/FileDownloaderCache.java
@@ -38,8 +38,6 @@ import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.node.ObjectNode;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import processing.app.BaseNoGui;
import processing.app.PreferencesData;
import processing.app.helpers.FileUtils;
@@ -64,8 +62,6 @@ import java.util.stream.Collectors;
public class FileDownloaderCache {
private final static String CACHE_ENABLE_PREFERENCE_KEY = "cache.enable";
- private final static Logger log = LogManager
- .getLogger(FileDownloaderCache.class);
private final static Map<String, FileCached> cachedFiles = Collections
.synchronizedMap(new HashMap<>());
private final static String cacheFolder;
@@ -73,9 +69,6 @@ public class FileDownloaderCache {
static {
enableCache = Boolean.valueOf(PreferencesData.get(CACHE_ENABLE_PREFERENCE_KEY, "true"));
- if (!enableCache) {
- log.info("The cache is disable cache.enable=false");
- }
PreferencesData.set(CACHE_ENABLE_PREFERENCE_KEY, Boolean.toString(enableCache));
final File settingsFolder;
@@ -86,10 +79,8 @@ public class FileDownloaderCache {
} else {
enableCache = false;
cacheFolder = null;
- log.error("The cache will disable because the setting folder is null, cannot generate the cache path");
}
final Path pathCacheInfo = getCachedInfoPath();
- log.info("Cache folder {}", cacheFolder);
try {
if (Files.exists(pathCacheInfo)) {
ObjectMapper mapper = new ObjectMapper();
@@ -109,31 +100,26 @@ public class FileDownloaderCache {
.collect(Collectors.toMap(FileCached::getRemoteURL, Function.identity()))
)
);
- log.info("Number of file already in the cache {}", cachedFiles.size());
}
} catch (Exception e) {
- log.error("Cannot initialized the cache", e);
+ System.err.println("Cannot initialized the cache: " + e.getMessage());
}
}
public static Optional<FileCached> getFileCached(final URL remoteURL)
- throws URISyntaxException, NoSuchMethodException, ScriptException,
- IOException {
+ throws URISyntaxException, NoSuchMethodException, ScriptException, IOException {
return getFileCached(remoteURL, true);
}
public static Optional<FileCached> getFileCached(final URL remoteURL, boolean enableCache)
- throws URISyntaxException, NoSuchMethodException, ScriptException,
- IOException {
+ throws URISyntaxException, NoSuchMethodException, ScriptException, IOException {
// Return always and empty file if the cache is not enable
if (!(enableCache && FileDownloaderCache.enableCache)) {
- log.info("The cache is not enable.");
return Optional.empty();
}
final String[] splitPath = remoteURL.getPath().split("/");
if (splitPath.length == 0) {
- log.warn("The remote path as no file name {}", remoteURL);
return Optional.empty();
}
// Create the path where the cached file should exist
@@ -146,19 +132,14 @@ public class FileDownloaderCache {
.orElseGet(() -> new FileCached(remoteURL.toString(), cacheFilePath.toString()));
// If the file is change of the cache is disable run the HEAD request to check if the file is changed
- log.info("Get file cached is expire {}, exist {}, info {} ", fileCached.isExpire(), fileCached.exists(), fileCached);
if (fileCached.isExpire() || !fileCached.exists()) {
// Update remote etag and cache control header
final Optional<FileCached> fileCachedInfoUpdated =
FileDownloaderCache.updateCacheInfo(remoteURL, (remoteETagClean, cacheControl) -> {
// Check cache control data
if (cacheControl.isNoCache() || cacheControl.isMustRevalidate() || cacheControl.isNoStore()) {
- log.warn("The file {} must not be cache due to cache control header {}",
- remoteURL, cacheControl);
return Optional.empty();
}
- log.info("Update cached info of {}, createdAt {}, previous eTag {}, last eTag {}, cache control header {} ",
- remoteURL, fileCached.createdAt, fileCached.eTag, remoteETagClean, cacheControl);
final FileCached fileCachedUpdateETag = new FileCached(
remoteURL.toString(),
cacheFilePath.toString(),
@@ -180,20 +161,18 @@ public class FileDownloaderCache {
throws URISyntaxException, NoSuchMethodException, ScriptException,
IOException {
// Update the headers of the cached file
- final HttpURLConnection headRequest = new HttpConnectionManager(
- remoteURL).makeConnection((connection) -> {
+ final HttpURLConnection headRequest = new HttpConnectionManager(remoteURL).makeConnection((connection) -> {
try {
connection.setRequestMethod("HEAD");
} catch (ProtocolException e) {
- log.error("Invalid protocol", e);
+ System.err.println(e.getMessage());
}
});
final int responseCode = headRequest.getResponseCode();
headRequest.disconnect();
// Something bad is happening return a conservative true to try to download the file
if (responseCode < 200 || responseCode >= 300) {
- log.warn("The head request return a bad response code " + responseCode);
- // if something bad happend
+ // if something bad happened
return Optional.empty();
}
// Get all the useful headers
@@ -204,7 +183,7 @@ public class FileDownloaderCache {
final CacheControl cacheControl = CacheControl.valueOf(cacheControlHeader);
return getNewFile.apply(remoteETagClean, cacheControl);
}
- log.warn("The head request do not return the ETag {} or the Cache-Control {}", remoteETag, cacheControlHeader);
+ // the head request do not return the ETag or the Cache-Control
return Optional.empty();
}
@@ -223,7 +202,6 @@ public class FileDownloaderCache {
if (Files.notExists(cachedFileInfo)) {
Files.createDirectories(cachedFileInfo.getParent());
}
- log.info("Update cache file info in {}, number of cached files is {}", cachedFileInfo.toFile(), cachedFiles.size());
// Write to cache.json
mapper.writeValue(cachedFileInfo.toFile(), objectNode);
}
@@ -287,19 +265,16 @@ public class FileDownloaderCache {
@JsonIgnore
public boolean isChange() {
// Check if the file is expire
- boolean isChange = false;
+ boolean isChanged = false;
if (isExpire()) {
- log.debug("The file \"{}\" is expire. Expire time: {}", localPath,
- this.getExpiresTime().format(DateTimeFormatter.ISO_DATE_TIME));
- isChange = true;
+ isChanged = true;
}
if (lastETag != null && !lastETag.equals(eTag)) {
- // If are different means that the file is change
- log.debug("The file \"{}\" is changed last ETag != now Etag ({}!={})", localPath, lastETag, eTag);
- isChange = true;
+ // Different ETag means that the file is changed
+ isChanged = true;
}
- return isChange;
+ return isChanged;
}
@JsonIgnore
@@ -327,7 +302,6 @@ public class FileDownloaderCache {
final String md5 = this.calculateMD5();
final String eTag;
if (lastETag == null) {
- log.warn("The eTag was not calculate this time, is not the right behaviour fileCached={}, md5={}", this, md5);
eTag = this.eTag;
} else {
eTag = this.lastETag;
@@ -340,10 +314,8 @@ public class FileDownloaderCache {
md5,
this.cacheControl
);
- log.info("Update cache file: {}", newFileCached);
cachedFiles.put(remoteURL, newFileCached);
updateCacheFilesInfo();
-
}
public synchronized void invalidateCache() throws IOException {
@@ -363,7 +335,6 @@ public class FileDownloaderCache {
try {
return !Objects.isNull(getMD5()) && Objects.equals(calculateMD5(), getMD5());
} catch (Exception e) {
- log.error("Fail to calculate the MD5. file={}", this, e);
return false;
}
}
diff --git a/arduino-core/src/cc/arduino/utils/network/HttpConnectionManager.java b/arduino-core/src/cc/arduino/utils/network/HttpConnectionManager.java
index b067e8faa..acb754d50 100644
--- a/arduino-core/src/cc/arduino/utils/network/HttpConnectionManager.java
+++ b/arduino-core/src/cc/arduino/utils/network/HttpConnectionManager.java
@@ -31,9 +31,6 @@ package cc.arduino.utils.network;
import cc.arduino.net.CustomProxySelector;
import org.apache.commons.codec.binary.Base64;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import processing.app.BaseNoGui;
import processing.app.PreferencesData;
@@ -47,7 +44,6 @@ import java.util.UUID;
import java.util.function.Consumer;
public class HttpConnectionManager {
- private static Logger log = LogManager.getLogger(HttpConnectionManager.class);
private static final String userAgent;
private static final int connectTimeout;
private static final int maxRedirectNumber;
@@ -69,23 +65,17 @@ public class HttpConnectionManager {
userAgent = PreferencesData.get("http.user_agent", defaultUserAgent);
int connectTimeoutFromConfig = 5000;
try {
- connectTimeoutFromConfig =
- Integer.parseInt(
- PreferencesData.get("http.connection_timeout_ms", "5000"));
+ connectTimeoutFromConfig = PreferencesData.getInteger("http.connection_timeout_ms", 5000);
} catch (NumberFormatException e) {
- log.warn(
- "Cannot parse the http.connection_timeout configuration switch to default {} milliseconds", connectTimeoutFromConfig, e.getCause());
+ System.err.println("Error parsing http.connection_timeout_ms config: " + e.getMessage());
}
connectTimeout = connectTimeoutFromConfig;
// Set by default 20 max redirect to follow
int maxRedirectNumberConfig = 20;
try {
- maxRedirectNumberConfig =
- Integer.parseInt(
- PreferencesData.get("http.max_redirect_number", "20"));
+ maxRedirectNumberConfig = PreferencesData.getInteger("http.max_redirect_number", 20);
} catch (NumberFormatException e) {
- log.warn(
- "Cannot parse the http.max_redirect_number configuration switch to default {}", maxRedirectNumberConfig, e.getCause());
+ System.err.println("Error parsing http.max_redirect_number config: " + e.getMessage());
}
maxRedirectNumber = maxRedirectNumberConfig;
}
@@ -116,18 +106,13 @@ public class HttpConnectionManager {
private HttpURLConnection makeConnection(URL requestURL, int movedTimes,
Consumer<HttpURLConnection> beforeConnection) throws IOException, URISyntaxException, ScriptException, NoSuchMethodException {
if (movedTimes > maxRedirectNumber) {
- log.warn("Too many redirect " + requestURL);
throw new IOException("Too many redirect " + requestURL);
}
- Proxy proxy = new CustomProxySelector(PreferencesData.getMap())
- .getProxyFor(requestURL.toURI());
- log.debug("Using proxy {}", proxy);
+ Proxy proxy = new CustomProxySelector(PreferencesData.getMap()).getProxyFor(requestURL.toURI());
- final String requestId = UUID.randomUUID().toString()
- .toUpperCase().replace("-", "").substring(0, 16);
- HttpURLConnection connection = (HttpURLConnection) requestURL
- .openConnection(proxy);
+ final String requestId = UUID.randomUUID().toString().toUpperCase().replace("-", "").substring(0, 16);
+ HttpURLConnection connection = (HttpURLConnection) requestURL.openConnection(proxy);
// see https://github.com/arduino/Arduino/issues/10264
// Workaround for https://bugs.openjdk.java.net/browse/JDK-8163921
@@ -150,19 +135,11 @@ public class HttpConnectionManager {
beforeConnection.accept(connection);
// Connect
- log.info("Connect to {}, method={}, request id={}", requestURL, connection.getRequestMethod(), requestId);
-
connection.connect();
int resp = connection.getResponseCode();
- log.info("Request complete URL=\"{}\", method={}, response code={}, request id={}, headers={}",
- requestURL, connection.getRequestMethod(), resp, requestId, StringUtils.join(connection.getHeaderFields()));
-
- if (resp == HttpURLConnection.HTTP_MOVED_PERM
- || resp == HttpURLConnection.HTTP_MOVED_TEMP) {
+ if (resp == HttpURLConnection.HTTP_MOVED_PERM || resp == HttpURLConnection.HTTP_MOVED_TEMP) {
URL newUrl = new URL(connection.getHeaderField("Location"));
- log.info("The response code was a 301,302 so try again with the new URL " + newUrl);
-
return this.makeConnection(newUrl, movedTimes + 1, beforeConnection);
}
diff --git a/arduino-core/src/processing/app/Platform.java b/arduino-core/src/processing/app/Platform.java
index 913381316..c76148df1 100644
--- a/arduino-core/src/processing/app/Platform.java
+++ b/arduino-core/src/processing/app/Platform.java
@@ -52,7 +52,6 @@ import static processing.app.I18n.tr;
* know if name is proper Java package syntax.)
*/
public class Platform {
- // DO NOT USE log4j here otherwise the root path of the logs will no be initialize correctly
/**
* Set the default L & F. While I enjoy the bounty of the sixteen possible
* exception types that this UIManager method might throw, I feel that in
diff --git a/arduino-core/src/processing/app/helpers/BoardCloudResolver.java b/arduino-core/src/processing/app/helpers/BoardCloudResolver.java
index 8fa6f96da..f1d4894ca 100644
--- a/arduino-core/src/processing/app/helpers/BoardCloudResolver.java
+++ b/arduino-core/src/processing/app/helpers/BoardCloudResolver.java
@@ -32,8 +32,6 @@ package processing.app.helpers;
import cc.arduino.utils.network.HttpConnectionManager;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import processing.app.BaseNoGui;
import processing.app.I18n;
import processing.app.debug.TargetBoard;
@@ -48,7 +46,6 @@ import java.util.Map;
import static processing.app.I18n.tr;
public class BoardCloudResolver {
- private static Logger log = LogManager.getLogger(BoardCloudResolver.class);
public synchronized void getBoardBy(String vid, String pid) {
// this method is less useful in Windows < WIN10 since you need drivers to be already installed
@@ -61,12 +58,10 @@ public class BoardCloudResolver {
.makeConnection();
int code = httpConnection.getResponseCode();
if (code == 404) {
- log.warn("Fail to get the Vid Pid information from the builder response code={}", code);
return;
}
InputStream is = httpConnection.getInputStream();
BoardCloudAPIid board = mapper.readValue(is, BoardCloudAPIid.class);
- log.info("Board info from the cloud {}", board);
// Launch a popup with a link to boardmanager#board.getName()
// replace spaces with &
String realBoardName = board.getName().replaceAll("\\(.*?\\)", "").trim();
@@ -76,8 +71,6 @@ public class BoardCloudResolver {
} catch (Exception e) {
// No connection no problem, fail silently
//e.printStackTrace();
- log.warn("Error during get board information by vid, pid", e);
-
}
}
diff --git a/build/windows/launcher/config.xml b/build/windows/launcher/config.xml
index bb4585f4b..6ff7ebc57 100644
--- a/build/windows/launcher/config.xml
+++ b/build/windows/launcher/config.xml
@@ -43,8 +43,6 @@
<cp>%EXEDIR%/lib/java-semver-0.8.0.jar</cp>
<cp>%EXEDIR%/lib/jmdns-3.5.5.jar</cp>
<cp>%EXEDIR%/lib/jtouchbar-1.0.0.jar</cp>
- <cp>%EXEDIR%/lib/log4j-api-2.16.0.jar</cp>
- <cp>%EXEDIR%/lib/log4j-core-2.16.0.jar</cp>
<cp>%EXEDIR%/lib/slf4j-simple-1.7.22.jar</cp>
<cp>%EXEDIR%/lib/slf4j-api-1.7.22.jar</cp>
<cp>%EXEDIR%/lib/jna-4.2.2.jar</cp>
diff --git a/build/windows/launcher/config_debug.xml b/build/windows/launcher/config_debug.xml
index e19976e1b..238f7b724 100644
--- a/build/windows/launcher/config_debug.xml
+++ b/build/windows/launcher/config_debug.xml
@@ -43,8 +43,6 @@
<cp>%EXEDIR%/lib/java-semver-0.8.0.jar</cp>
<cp>%EXEDIR%/lib/jmdns-3.5.5.jar</cp>
<cp>%EXEDIR%/lib/jtouchbar-1.0.0.jar</cp>
- <cp>%EXEDIR%/lib/log4j-api-2.16.0.jar</cp>
- <cp>%EXEDIR%/lib/log4j-core-2.16.0.jar</cp>
<cp>%EXEDIR%/lib/slf4j-simple-1.7.22.jar</cp>
<cp>%EXEDIR%/lib/slf4j-api-1.7.22.jar</cp>
<cp>%EXEDIR%/lib/jna-4.2.2.jar</cp>