[
https://issues.apache.org/jira/browse/GROOVY-12215?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18100446#comment-18100446
]
ASF GitHub Bot commented on GROOVY-12215:
-----------------------------------------
testlens-app[bot] commented on PR #2750:
URL: https://github.com/apache/groovy/pull/2750#issuecomment-5131657932
## 🚨 TestLens detected 1 failed test 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them
below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
#### [Build and test / lts \(17, windows-latest,
1\)](https://github.com/apache/groovy/actions/runs/30544836220/job/90878254852?pr=2750)
> :test
| Test | Runs | Flakiness |
|---|---|--:|
| ClassTagExtensionModuleTest | ❌ | 22% 🔴 |
🏷️ Commit: aec9586c711f5a59d6442bd60efa5eef40990991
▶️ Tests: 78448 executed
🟡 Checks: 8/29 completed
### Test Failures
<details>
<summary><strong>ClassTagExtensionModuleTest</strong> (:test in <a
href="https://github.com/apache/groovy/actions/runs/30544836220/job/90878254852?pr=2750">Build
and test / lts (17, windows-latest, 1)</a>)</summary>
```
org.junit.platform.commons.JUnitException: Failed to close extension context
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
Caused by:
org.junit.jupiter.api.io.TempDirDeletionStrategy$DeletionException: Failed to
delete temp directory
C:\Users\RUNNER~1\AppData\Local\Temp\junit-7408945503260497228. The following
paths could not be deleted (see suppressed exceptions for details): <root>,
classtag-module-test.jar
Suppressed: java.nio.file.DirectoryNotEmptyException:
C:\Users\RUNNER~1\AppData\Local\Temp\junit-7408945503260497228
at
java.base/sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:272)
at
java.base/sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider.java:105)
at java.base/java.nio.file.Files.delete(Files.java:1152)
at java.base/java.nio.file.Files.walkFileTree(Files.java:2828)
at java.base/java.nio.file.Files.walkFileTree(Files.java:2882)
at
java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at
java.base/java.util.stream.SortedOps$RefSortingSink.end(SortedOps.java:395)
at
java.base/java.util.stream.Sink$ChainedReference.end(Sink.java:258)
at
java.base/java.util.stream.Sink$ChainedReference.end(Sink.java:258)
at
java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510)
at
java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at
java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
at
java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
at
java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at
java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
Suppressed: java.nio.file.FileSystemException:
C:\Users\RUNNER~1\AppData\Local\Temp\junit-7408945503260497228\classtag-module-test.jar:
The process cannot access the file because it is being used by another process
at
java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:92)
at
java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
at
java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108)
at
java.base/sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:275)
at
java.base/sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider.java:105)
at java.base/java.nio.file.Files.delete(Files.java:1152)
at java.base/java.nio.file.Files.walkFileTree(Files.java:2811)
at java.base/java.nio.file.Files.walkFileTree(Files.java:2882)
at
java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at
java.base/java.util.stream.SortedOps$RefSortingSink.end(SortedOps.java:395)
at
java.base/java.util.stream.Sink$ChainedReference.end(Sink.java:258)
at
java.base/java.util.stream.Sink$ChainedReference.end(Sink.java:258)
at
java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510)
at
java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at
java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
at
java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
at
java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at
java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
Suppressed: java.nio.file.FileSystemException:
C:\Users\RUNNER~1\AppData\Local\Temp\junit-7408945503260497228\classtag-module-test.jar:
The process cannot access the file because it is being used by another process
... 20 more
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 ClassTagExtensionModuleTest <!
> Fat-free variants for collectMany, countBy, split, take/dropWhile, groupBy
> --------------------------------------------------------------------------
>
> Key: GROOVY-12215
> URL: https://issues.apache.org/jira/browse/GROOVY-12215
> Project: Groovy
> Issue Type: Sub-task
> Reporter: Paul King
> Assignee: Paul King
> Priority: Major
>
> h3. Summary
> Sub-task of GROOVY-12205. Adds the straightforward "fat-free"
> functional-interface twins — a single {{java.util.function}} overload beside
> each existing {{Closure}} overload — for the mapping/filtering DGM methods
> that currently have none. These are mechanical, following the conventions
> established in GROOVY-12054; no design decisions are involved.
> h3. Methods
> ||Method||Closure overloads without a twin||Functional type||Receivers||
> |{{collectMany}}|8|{{Function<? super E, ? extends Collection<? extends
> T>>}}|Iterable (x2), Map (x2), Iterator (x2), {{E[]}} (x2)|
> |{{collectingMany}}|1|{{Function}} (lazy)|Iterator|
> |{{countBy}}|4|{{Function<? super E, ? extends K>}}|Iterable, Iterator, Map,
> {{E[]}}|
> |{{split}}|5|{{Predicate<? super T>}}|Object, Collection, List, Set, {{T[]}}|
> |{{groupBy}} (single-key)|2|{{Function<? super T, ? extends K>}}|Map,
> {{Object[]}} (the Iterable twin already exists)|
> |{{takeWhile}}|6|{{Predicate<? super T>}}|List, Iterable, SortedSet, Map,
> Iterator, {{T[]}}|
> |{{dropWhile}}|6|{{Predicate<? super T>}}|SortedSet, List, Iterable, Map,
> Iterator, {{T[]}}|
> Total: 32 new overloads.
> h3. Conventions (per GROOVY-12054)
> * PECS wildcards on the functional parameter; {{@since 6.0.0}}.
> * Inline javadoc example using {{<pre class="language-groovy
> groovyTestCase">}}, cross-linking the {{Closure}} counterpart via {{@link}}.
> * Plain single-SAM overloads only — *not* {{@Incubating}}; that annotation is
> reserved for the curried {{(BiXxx, param)}} forms, which are a separate item.
> h3. Exclusions
> * {{groupBy}} multi-key forms ({{Object...}} / {{List<Closure>}}) — no clean
> functional analogue.
> * {{takeWhile}}/{{dropWhile}} on {{CharSequence}}/{{GString}} (the SGM
> char-by-char forms) — a String-domain
> {{Predicate<Character>}}/{{IntPredicate}} decision, out of scope for this
> collection-focused sub-task (keeps the count at 6 each).
> h3. Compatibility
> Existing closure/lambda call sites are unaffected: a {{Closure}} literal
> binds to the {{Closure}} overload, while method references and typed
> functional values select the twin under {{@CompileStatic}} (per
> GROOVY-12214). Only check: an existing {{@CompileStatic}} call passing a
> literal {{null}} to one of these currently-single-overload methods would
> become ambiguous — a rare, grep-checkable case, resolved with a cast if found.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)