[INFO] Scanning for projects...
[INFO] 
[INFO] --------------------< blog.examples:java-libraries >--------------------
[INFO] Building java-libraries 1.0-SNAPSHOT
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- clean:3.2.0:clean (default-clean) @ java-libraries ---
[INFO] Deleting /private/tmp/java-libraries-integration-00-24/target
[INFO] 
[INFO] --- resources:3.3.1:resources (default-resources) @ java-libraries ---
[INFO] skip non existing resourceDirectory /private/tmp/java-libraries-integration-00-24/src/main/resources
[INFO] 
[INFO] --- compiler:3.14.1:compile (default-compile) @ java-libraries ---
[INFO] Recompiling the module because of changed source code.
[INFO] Compiling 5 source files with javac [debug release 8] to target/classes
[WARNING] 源值 8 已过时，将在未来发行版中删除
[WARNING] 目标值 8 已过时，将在未来发行版中删除
[WARNING] 要隐藏有关已过时选项的警告, 请使用 -Xlint:-options。
[INFO] 
[INFO] --- resources:3.3.1:testResources (default-testResources) @ java-libraries ---
[INFO] skip non existing resourceDirectory /private/tmp/java-libraries-integration-00-24/src/test/resources
[INFO] 
[INFO] --- compiler:3.14.1:testCompile (default-testCompile) @ java-libraries ---
[INFO] Recompiling the module because of changed dependency.
[INFO] Compiling 25 source files with javac [debug release 8] to target/test-classes
[WARNING] 源值 8 已过时，将在未来发行版中删除
[WARNING] 目标值 8 已过时，将在未来发行版中删除
[WARNING] 要隐藏有关已过时选项的警告, 请使用 -Xlint:-options。
[INFO] /private/tmp/java-libraries-integration-00-24/src/test/java/blog/libraries/Chapter23Test.java: 某些输入文件使用或覆盖了已过时的 API。
[INFO] /private/tmp/java-libraries-integration-00-24/src/test/java/blog/libraries/Chapter23Test.java: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
[INFO] 
[INFO] --- surefire:3.5.4:test (default-test) @ java-libraries ---
[INFO] Using auto detected provider org.apache.maven.surefire.junitplatform.JUnitPlatformProvider
[INFO] 
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running blog.libraries.Chapter09Test
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.045 s -- in blog.libraries.Chapter09Test
[INFO] Running blog.libraries.Chapter04Test
04 locale: ROOT i=I, tr i=U+0130, sharp-s expands to SS
04 normalization: ASCII subset=equal; NBSP and U+001C differ; null rejected
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.007 s -- in blog.libraries.Chapter04Test
[INFO] Running blog.libraries.Chapter10Test
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.010 s -- in blog.libraries.Chapter10Test
[INFO] Running blog.libraries.Chapter23Test
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.015 s -- in blog.libraries.Chapter23Test
[INFO] Running blog.libraries.Chapter02Test
CH02 modernListCopyOf=PASS isolatedContainer/sharedElement/rejectWrite/rejectNull
CH02 fullImmutableReused=true
CH02 partialImmutableReused=false
[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.010 s -- in blog.libraries.Chapter02Test
[INFO] Running blog.libraries.Chapter16Test
16 transform cancel propagates upstream; executor rejection -> failed output future
16 cancel(true): Guava submitted blocking task interrupted; CompletableFuture supplier not interrupted
16 direct: future done -> listener on catalog-setter -> set blocked -> release -> set returned; late=main
16 transform=5 thread=catalog-callback callback failure=bad SKU
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.037 s -- in blog.libraries.Chapter16Test
[INFO] Running blog.libraries.Chapter08Test
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.011 s -- in blog.libraries.Chapter08Test
[INFO] Running blog.libraries.Chapter11Test
11 boundary: size=2147483647 summedCounts=2147483648
11 counts: size=3 distinct=2; add old=2; remove old=5; clamp old=3 final=0
[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.016 s -- in blog.libraries.Chapter11Test
[INFO] Running blog.libraries.Chapter05Test
05 evaluation: successful Guava check evaluates argument; JDK message supplier delayed
05 formatting: %s substituted; %d literal; surplus appended
05 failures: argument=IAE state=ISE assumption=VerifyException null=NPE
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.007 s -- in blog.libraries.Chapter05Test
[INFO] Running blog.libraries.Chapter24Test
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.006 s -- in blog.libraries.Chapter24Test
[INFO] Running blog.libraries.Chapter22Test
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.015 s -- in blog.libraries.Chapter22Test
[INFO] Running blog.libraries.Chapter03Test
03 ordering: null-first/null-last PASS; subtraction overflows, Integer.compare positive
03 mutable-key: size=1, lookup-after-change=null, restored=product
03 equality: decimal HashSet=2 TreeSet=1; sku-only=1 compound-key=2
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 s -- in blog.libraries.Chapter03Test
[INFO] Running blog.libraries.Chapter06Test
06 fallback: eager=2 supplier-present=0; static conversions preserve null reference
06 mapping: Guava null-result=NPE JDK=null-to-empty; absent mappers not called
06 serialization: Guava<String>/absent PASS; JDK Optional and nonserializable payload fail
06 interfaces: Guava Function/Predicate extend JDK interfaces; reverse adapter explicit
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.033 s -- in blog.libraries.Chapter06Test
[INFO] Running blog.libraries.Chapter12Test
12 forcePut: {sku-a=external-1, sku-b=external-2} -> {sku-a=external-2}
12 table: absent row -> write row -> edit column -> remove row; cells=1
[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.026 s -- in blog.libraries.Chapter12Test
[INFO] Running blog.libraries.Chapter19Test
19 synchronous nested trace=[parent-start, parent-end, child@main]
19 deadEvents=[before, after]; duplicate registration delivered once; unregistered events not replayed
19 publisher returned normally; exceptionHandler=bad event; other subscriber called once
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.022 s -- in blog.libraries.Chapter19Test
[INFO] Running blog.libraries.Chapter00Test
C00 order=[shop-b, shop-a], sizes=[2, 1], same-id-across-merchants=accepted, zero-price=0.00, source-clear=isolated
C00 same-merchant-duplicate=rejected, empty-catalog=accepted
C00 null/empty/negative/non-exact-price=rejected, identifier-normalization=none, 1.000=1.00
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.008 s -- in blog.libraries.Chapter00Test
[INFO] Running blog.libraries.Chapter14Test
14 discrete: Range.open(3,4).isEmpty=false; integerContiguousSet.isEmpty=true
14 set: [0,10)+[10,20) -> [0,20); remove[5,15] -> [0,5),(15,20)
14 map: overwrite -> [0,20)=base,[20,40)=promo,[40,100)=base; remove[30,50) creates hole
[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.009 s -- in blog.libraries.Chapter14Test
[INFO] Running blog.libraries.Chapter21Test
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.005 s -- in blog.libraries.Chapter21Test
[INFO] Running blog.libraries.Chapter13Test
13 map calls: create=0 metadata=0 twiceGet=2 twiceTraverse=6 copy=8 changedGet=9
13 ordering: nullsFirst.reverse=[2,1,null]; reverse.nullsFirst=[null,2,1]
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.006 s -- in blog.libraries.Chapter13Test
[INFO] Running blog.libraries.Chapter07Test
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 s -- in blog.libraries.Chapter07Test
[INFO] Running blog.libraries.Chapter18Test
18 seed=20261002 funnel=UTF8 expectedN=1000 requestedFpp=.01 actualN=1000 absentQueries=10000 falseNegatives=0 falsePositives=110 bitEstimateFpp=0.00988379612419979
18 same expectedN=1000 actualN=10000 absentQueries=10000 falseNegatives=0 falsePositives=9949 bitEstimateFpp=0.9941812297622407
18 SHA256 empty/abc vectors PASS; UTF8 JDK cross-check PASS; putInt=little-endian; unframed concatenation collision reproduced
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.046 s -- in blog.libraries.Chapter18Test
[INFO] Running blog.libraries.Chapter15Test
C15 same-key=two-callers, blocked-before-release=true, loads=1, both=detail-sku
10月 02, 2026 5:23:38 下午 com.google.common.cache.LocalCache$Segment lambda$loadAsync$0
警告: Exception thrown during refresh
java.util.concurrent.ExecutionException: java.io.IOException: synthetic refresh failure
	at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:292)
	at com.google.common.util.concurrent.AbstractFutureState.blockingGet(AbstractFutureState.java:235)
	at com.google.common.util.concurrent.Platform.get(Platform.java:54)
	at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:253)
	at com.google.common.util.concurrent.FluentFuture$TrustedFuture.get(FluentFuture.java:91)
	at com.google.common.util.concurrent.Uninterruptibles.getUninterruptibly(Uninterruptibles.java:246)
	at com.google.common.cache.LocalCache$Segment.getAndRecordStats(LocalCache.java:2340)
	at com.google.common.cache.LocalCache$Segment.lambda$loadAsync$0(LocalCache.java:2320)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:30)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1004)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:767)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:516)
	at com.google.common.util.concurrent.AbstractTransformFuture.run(AbstractTransformFuture.java:108)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:30)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1004)
	at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:767)
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:516)
	at com.google.common.util.concurrent.SettableFuture.setException(SettableFuture.java:54)
	at blog.libraries.Chapter15Test.refreshNeedsAccessAndKeepsOldValueWhilePendingOrFailed(Chapter15Test.java:107)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:787)
	at org.junit.platform.commons.support.ReflectionSupport.invokeMethod(ReflectionSupport.java:478)
	at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
	at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:161)
	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:152)
	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:91)
	at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:112)
	at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:94)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
	at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:93)
	at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:87)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$4(TestMethodTestDescriptor.java:221)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:217)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:159)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:70)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:157)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.executeEngine(EngineExecutionOrchestrator.java:230)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.failOrExecuteEngine(EngineExecutionOrchestrator.java:204)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:172)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:101)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:64)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:150)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:63)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:109)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:91)
	at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47)
	at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$1(InterceptingLauncher.java:39)
	at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25)
	at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:38)
	at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47)
	at org.apache.maven.surefire.junitplatform.LauncherAdapter.executeWithoutCancellationToken(LauncherAdapter.java:60)
	at org.apache.maven.surefire.junitplatform.LauncherAdapter.execute(LauncherAdapter.java:52)
	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:203)
	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:168)
	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:136)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
	at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
	at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
Caused by: java.io.IOException: synthetic refresh failure
	... 77 more

C15 idle11s=reload0, access=reload1, pending=old, failed=old+retry, completed=v2, expired=load2
C15 expired-visible=null, size-before-access-observation=1, size-after-cleanup=0
C15 invalidate-during-load=load-not-cancelled, post-load-visible-observation=started-before-invalidation
C15 maximumSize2=size2, evictions=1
C15 checked=get:ExecutionException/getUnchecked:UncheckedExecutionException, null=InvalidCacheLoadException
[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.098 s -- in blog.libraries.Chapter15Test
[INFO] Running blog.libraries.Chapter01Test
01|absence|null/absent/empty distinguished; null API contracts asserted
01|U+180E|runtime=21|jdkWS=false|spaceChar=false|commons=false|guava=false
01|empty|length=0|codePoints=0|trim=true|jdkWS=true|spaceChar=true|guava=true|commons=true|isBlank=true
01|SPACE|length=1|codePoints=1|trim=true|jdkWS=true|spaceChar=true|guava=true|commons=true|isBlank=true
01|TAB|length=1|codePoints=1|trim=true|jdkWS=true|spaceChar=false|guava=true|commons=true|isBlank=true
01|CRLF|length=2|codePoints=2|trim=true|jdkWS=true|spaceChar=false|guava=true|commons=true|isBlank=true
01|NUL|length=1|codePoints=1|trim=true|jdkWS=false|spaceChar=false|guava=false|commons=false|isBlank=false
01|FS|length=1|codePoints=1|trim=true|jdkWS=true|spaceChar=false|guava=false|commons=true|isBlank=true
01|NBSP|length=1|codePoints=1|trim=false|jdkWS=false|spaceChar=true|guava=true|commons=false|isBlank=false
01|FIGURE_SPACE|length=1|codePoints=1|trim=false|jdkWS=false|spaceChar=true|guava=true|commons=false|isBlank=false
01|NARROW_NBSP|length=1|codePoints=1|trim=false|jdkWS=false|spaceChar=true|guava=true|commons=false|isBlank=false
01|EM_SPACE|length=1|codePoints=1|trim=false|jdkWS=true|spaceChar=true|guava=true|commons=true|isBlank=true
01|ZERO_WIDTH_SPACE|length=1|codePoints=1|trim=false|jdkWS=false|spaceChar=false|guava=false|commons=false|isBlank=false
01|IDEOGRAPHIC_SPACE|length=1|codePoints=1|trim=false|jdkWS=true|spaceChar=true|guava=true|commons=true|isBlank=true
01|NEL|length=1|codePoints=1|trim=false|jdkWS=false|spaceChar=false|guava=true|commons=false|isBlank=false
01|LETTER|length=3|codePoints=3|trim=false|jdkWS=false|spaceChar=false|guava=false|commons=false|isBlank=false
01|SUPPLEMENTARY|length=2|codePoints=1|trim=false|jdkWS=false|spaceChar=false|guava=false|commons=false|isBlank=false
01|LONE_HIGH_SURROGATE|length=1|codePoints=1|trim=false|jdkWS=false|spaceChar=false|guava=false|commons=false|isBlank=false
01|SPACE_AND_SURROGATE|length=2|codePoints=2|trim=false|jdkWS=false|spaceChar=false|guava=false|commons=false|isBlank=false
01|sku|valid original preserved; 8 invalid values rejected; trim collision demonstrated
[INFO] Tests run: 20, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.034 s -- in blog.libraries.Chapter01Test
[INFO] Running blog.libraries.Chapter20Test
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 s -- in blog.libraries.Chapter20Test
[INFO] Running com.google.common.util.concurrent.Chapter17Test
17 model idle=3s: acquire2=0 acquire1=0 try499ms=false try500ms=true; clock=3.5s
17 model warmup rate=2 period=4 coldFactor=3 waits=[0,1.375,1.125,0.875,0.625,0.5]
17 model bulk acquire(4),acquire(1),acquire(1): waits=[0,2.0,0.5] seconds
17 real single scheduledSeconds=0.049993 elapsedNanos=51280125 excessNanos=1287125
17 real concurrent: all3 acquired before finish; waits=[0.049573, 0.09957, 0.0]; Semaphore(2) third=false
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.158 s -- in com.google.common.util.concurrent.Chapter17Test
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 114, Failures: 0, Errors: 0, Skipped: 0
[INFO] 
[INFO] 
[INFO] --- jar:3.4.2:jar (default-jar) @ java-libraries ---
[INFO] Building jar: /private/tmp/java-libraries-integration-00-24/target/java-libraries-1.0-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  5.506 s
[INFO] Finished at: 2026-10-02T17:23:39+08:00
[INFO] ------------------------------------------------------------------------
