我有Jenkins(2.138.3)在虚拟机上运行.
在同一网络上的另一台PC上,我有一个Visual SVN Server(3.9.2).
间歇性地(可能是25%的时间),结账失败并出现以下错误:
ERROR: Failed to check out https://path/to/my/repository
org.tmatesoft.svn.core.SVNException: svn: E175002: Connection reset
svn: E175002: REPORT request failed on '/my/repository/!svn/vcc/default'
at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:112)
at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:96)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:765)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:352)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:340)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:910)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.doReport(DAVConnection.java:363)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.runReport(DAVRepository.java:1349)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.update(DAVRepository.java:847)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.updateInternal(SvnNgAbstractUpdate.java:263)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.update(SvnNgAbstractUpdate.java:115)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.checkout(SvnNgAbstractUpdate.java:877)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:26)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:11)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgOperationRunner.run(SvnNgOperationRunner.java:20)
at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:21)
at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1239)
at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294)
at hudson.scm.subversion.CheckoutUpdater$SubversionUpdateTask.perform(CheckoutUpdater.java:133)
at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:168)
at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:176)
at hudson.scm.subversion.UpdateUpdater$TaskImpl.perform(UpdateUpdater.java:134)
at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:168)
at hudson.scm.SubversionSCM$CheckOutTask.perform(SubversionSCM.java:1041)
at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:1017)
at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:990)
at hudson.FilePath.act(FilePath.java:1077)
at hudson.FilePath.act(FilePath.java:1060)
at …Run Code Online (Sandbox Code Playgroud) 我使用 JLink 工具创建了一个缩小的 JRE
jlink --add-modules java.base,jdk.crypto.ec --output jre
Run Code Online (Sandbox Code Playgroud)
我创建了一个非常基本的应用程序,它连接到 https://www.example.com
当我使用 JDK 运行此应用程序时,一切正常。当我使用缩小的 JRE 运行它时,我得到以下信息:
Exception in thread "main" javax.net.ssl.SSLException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:133)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:320)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:263)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:258)
at java.base/sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1313)
at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:408)
at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:567)
at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1587)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1515)
at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:527)
at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:334)
at URLTest.printResponseCode(URLTest.java:68)
at URLTest.main(URLTest.java:47)
Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at java.base/sun.security.validator.PKIXValidator.<init>(PKIXValidator.java:102)
at java.base/sun.security.validator.Validator.getInstance(Validator.java:181)
at java.base/sun.security.ssl.X509TrustManagerImpl.getValidator(X509TrustManagerImpl.java:300)
at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrustedInit(X509TrustManagerImpl.java:176)
at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:189) …Run Code Online (Sandbox Code Playgroud) 我有一些text仅DateTimeFormatter在解析样式为Strict-而不是的情况下才由a 解析Lenient。
这似乎与我期望的行为相反?
例:
String pattern = "ddMMyyHH:mm:ss";
String text = "02011104:21:32";
System.out.println(MessageFormat.format("Strict - {0}", new DateTimeFormatterBuilder().parseStrict().appendPattern(pattern).toFormatter().parse(text)));
System.out.println(MessageFormat.format("Lenient - {0}", new DateTimeFormatterBuilder().parseLenient().appendPattern(pattern).toFormatter().parse(text)));
Run Code Online (Sandbox Code Playgroud)
输出:
Strict - {},ISO resolved to 2011-01-02T04:21:32
Exception in thread "main" java.time.format.DateTimeParseException: Text '02011104:21:32' could not be parsed at index 8
Run Code Online (Sandbox Code Playgroud) 我有一个 Jenkins v2.107.2 实例(作为 Windows 服务运行),它正在通过 Subversion 从 Visual SVN 服务器(在单独的 Windows PC 上)检出多个项目。
其中一个项目(最大的 - ~2.7GB)偶尔会出现,但在尝试结帐时始终失败并出现以下错误:
ERROR: Failed to check out https://example.com/myrepo
org.tmatesoft.svn.core.SVNException: svn: E175002: CRLF expected at end of chunk: -1/-1
svn: E175002: REPORT request failed on '/svn/REPO/!svn/vcc/default'
at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:112)
Run Code Online (Sandbox Code Playgroud)
另外,在查看Visual SVN Server的日志时,可以看到以下内容:
Error writing base64 data: The timeout specified has expired [500, #70007]
A failure occurred while driving the update report editor [500, #70007]
Provider encountered an error while streaming a REPORT response. [500, #0]
Run Code Online (Sandbox Code Playgroud)
以前,将 Jenkins …
我希望我的应用程序将一些数据(例如配置、缓存、许可证等)写入共享的、所有用户可访问的位置。
在 Windows 上我已经这样做了%PROGRAMDATA%。
在 MacOS 上,我的研究建议使用该Library/Application Support目录。
虽然特定于用户的~/Library/Application Support工作正常,但非特定于用户的/Library/Application Support似乎不可写入?
例子:
Files.writeString(Paths.get("/Library/Application Support/myfile.txt"), "hello world")
Run Code Online (Sandbox Code Playgroud)
抛出异常:
java.nio.file.AccessDeniedException: /Library/Application Support/myfile.txt
Run Code Online (Sandbox Code Playgroud)
此类数据有更好的目的地吗?
我正在尝试将某些已经承认风险的库列入白名单 - 理想情况下我想从内部执行此操作pom.xml,但看来这是不可能的。
我创建了一个带有依赖项 (H2) 的简单项目,该项目具有出色的 CVE,并dependency-check-maven配置了一个suppressions文件以忽略该依赖项,使用从Dependency-Check-Report
pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.me</groupId>
<artifactId>test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>6.5.3</version>
<configuration>
<suppressionFile>path\to\owasp-suppressions.xml</suppressionFile>
<failBuildOnCVSS>8</failBuildOnCVSS>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.200</version>
</dependency>
</dependencies>
</project>
Run Code Online (Sandbox Code Playgroud)
owasp-suppressions.xml:
<?xml version="1.0" encoding="UTF-8"?>
<suppressions xmlns="https://jeremylong.github.io/DependencyCheck/dependency-suppression.1.3.xsd">
<suppress>
<notes><![CDATA[
file name: h2-1.4.200.jar
]]></notes>
<packageUrl regex="true">^pkg:maven/com\.h2database/h2@.*$</packageUrl>
<cpe>cpe:/a:h2database:h2</cpe>
</suppress>
</suppressions>
Run Code Online (Sandbox Code Playgroud)
但尽管如此,构建仍然失败:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] …Run Code Online (Sandbox Code Playgroud) 我想以尽可能高效的方式通过反射调用方法。
\n该方法返回一个原语long。
我已经使用反射和MethodHandles 实现了这一点。
我期待MethodHandle更快,因为:
MethodHandle这就是s的好处之一但在我的所有基准测试中,MethodHandles 速度较慢(~2-5% 左右)。
采用以下 JMH 基准测试:
\nimport org.openjdk.jmh.annotations.*;\n\nimport java.lang.invoke.MethodHandle;\nimport java.lang.invoke.MethodHandles;\nimport java.lang.reflect.Method;\nimport java.util.concurrent.TimeUnit;\nimport java.util.concurrent.atomic.AtomicLong;\n\n@BenchmarkMode(Mode.AverageTime)\n@OutputTimeUnit(TimeUnit.NANOSECONDS)\n@Warmup(iterations = 1, time = 100, timeUnit = TimeUnit.MILLISECONDS)\n@Measurement(iterations = 5, time = 10, timeUnit = TimeUnit.SECONDS)\n@State(Scope.Benchmark)\npublic class AccessorBenchmark {\n private POJO source;\n\n private ReflectionAccessor reflectionAccessor;\n private MethodHandleAccessor methodHandleAccessor;\n\n @Setup\n public void setup() throws ReflectiveOperationException {\n source = new POJO();\n\n final Method …Run Code Online (Sandbox Code Playgroud) java ×5
jenkins ×2
svn ×2
corretto ×1
datetime ×1
file ×1
java-11 ×1
java.time ×1
jlink ×1
macos ×1
maven ×1
maven-dependency-check-plugin ×1
methodhandle ×1
owasp ×1
performance ×1
reflection ×1
svnkit ×1