Skip to content

Commit 513ca43

Browse files
committed
crlf-plugin: ignore inaccessible files and directories in crlf filter
It should workaround the following exception: java.lang.UnsupportedOperationException at org.gradle.api.internal.file.UnauthorizedFileVisitDetails.isDirectory(UnauthorizedFileVisitDetails.java:46) at com.github.vlsi.gradle.git.GitHolder.compute(GitIgnoreFilter.kt:121) at com.github.vlsi.gradle.git.GitHolder.compute(GitIgnoreFilter.kt:109) at com.github.vlsi.gradle.git.GitIgnoreFilter.isSatisfiedBy(GitIgnoreFilter.kt:145) at com.github.vlsi.gradle.git.dsl.FilterExtensionsKt$gitignore$3.isSatisfiedBy(FilterExtensions.kt:47) at org.gradle.api.specs.OrSpec.isSatisfiedBy(OrSpec.java:48) at org.gradle.api.specs.NotSpec.isSatisfiedBy(NotSpec.java:36) at org.gradle.api.internal.file.collections.DefaultDirectoryWalker.shouldVisit(DefaultDirectoryWalker.java:53) at org.gradle.api.internal.file.collections.DefaultDirectoryWalker$PathVisitor.visitFileFailed(DefaultDirectoryWalker.java:141) at org.gradle.api.internal.file.collections.DefaultDirectoryWalker$PathVisitor.visitFileFailed(DefaultDirectoryWalker.java:68) at org.gradle.api.internal.file.collections.DefaultDirectoryWalker.walkDir(DefaultDirectoryWalker.java:62) at org.gradle.api.internal.file.collections.DirectoryFileTree.walkDir(DirectoryFileTree.java:148) at org.gradle.api.internal.file.collections.DirectoryFileTree.visitFrom(DirectoryFileTree.java:126) at org.gradle.api.internal.file.collections.DirectoryFileTree.visit(DirectoryFileTree.java:111) at org.gradle.api.internal.file.collections.FileTreeAdapter.visit(FileTreeAdapter.java:110) at org.gradle.api.internal.file.CompositeFileTree.visit(CompositeFileTree.java:108) at org.gradle.api.internal.file.copy.CopySpecActionImpl.execute(CopySpecActionImpl.java:43) at org.gradle.api.internal.file.copy.CopySpecActionImpl.execute(CopySpecActionImpl.java:25) at org.gradle.api.internal.file.copy.DefaultCopySpec$DefaultCopySpecResolver.walk(DefaultCopySpec.java:779) at org.gradle.api.internal.file.copy.DefaultCopySpec$DefaultCopySpecResolver.walk(DefaultCopySpec.java:781) at org.gradle.api.internal.file.copy.DefaultCopySpec$DefaultCopySpecResolver.walk(DefaultCopySpec.java:781) at org.gradle.api.internal.file.copy.DefaultCopySpec$DefaultCopySpecResolver.walk(DefaultCopySpec.java:781) at org.gradle.api.internal.file.copy.DefaultCopySpec$DefaultCopySpecResolver.walk(DefaultCopySpec.java:781) at org.gradle.api.internal.file.copy.DefaultCopySpec.walk(DefaultCopySpec.java:519) at org.gradle.api.internal.file.copy.CopySpecBackedCopyActionProcessingStream.process(CopySpecBackedCopyActionProcessingStream.java:42) at org.gradle.api.internal.file.copy.DuplicateHandlingCopyActionDecorator.lambda$execute$1(DuplicateHandlingCopyActionDecorator.java:47) at org.gradle.api.internal.file.copy.NormalizingCopyActionDecorator.lambda$execute$1(NormalizingCopyActionDecorator.java:62) at org.gradle.api.internal.file.archive.TarCopyAction$1.doExecute(TarCopyAction.java:78) at org.gradle.api.internal.file.archive.TarCopyAction$1.doExecute(TarCopyAction.java:67) at org.gradle.internal.ErroringAction.execute(ErroringAction.java:36) at org.gradle.internal.IoActions.withResource(IoActions.java:76) at org.gradle.api.internal.file.archive.TarCopyAction.execute(TarCopyAction.java:67) at org.gradle.api.internal.file.copy.NormalizingCopyActionDecorator.execute(NormalizingCopyActionDecorator.java:61) at org.gradle.api.internal.file.copy.DuplicateHandlingCopyActionDecorator.execute(DuplicateHandlingCopyActionDecorator.java:47) at org.gradle.api.internal.file.copy.CopyActionExecuter.execute(CopyActionExecuter.java:47) at org.gradle.api.tasks.AbstractCopyTask.copy(AbstractCopyTask.java:149)
1 parent a5c62aa commit 513ca43

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ Change log
8989
----------
9090
v1.89
9191
* checksum-dependency: reduce the number of idle threads
92+
* crlf: ignore inaccessible files/folders in gitignore filter
9293

9394
v1.88
9495
* stage-vote-release: avoid failures when "init" does not exist

plugins/crlf-plugin/src/main/kotlin/com/github/vlsi/gradle/git/GitIgnoreFilter.kt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import org.gradle.api.file.FileTreeElement
3030
import org.gradle.api.file.RelativePath
3131
import org.gradle.api.specs.Spec
3232
import java.io.File
33+
import java.lang.UnsupportedOperationException
3334
import java.nio.file.Path
3435
import java.util.*
3536

@@ -118,7 +119,15 @@ abstract class GitHolder<T, V>(rootPath: Path) {
118119

119120
@Suppress("MemberVisibilityCanBePrivate")
120121
fun compute(element: FileTreeElement): V =
121-
computeFile(element.file, element.isDirectory)
122+
computeFile(
123+
element.file,
124+
try {
125+
element.isDirectory
126+
} catch (e: UnsupportedOperationException) {
127+
// If the element is not accessible, assume it is a directory
128+
true
129+
}
130+
)
122131

123132
@Suppress("MemberVisibilityCanBePrivate")
124133
fun compute(element: File): V =

0 commit comments

Comments
 (0)