Gradle spotlessCheck task gets stuck if java text blocks are used
- Dominant language
- Java
- Stars
- 5.6k
- Forks
- 559
- Avg merge
- 1d 14h
- Merged PRs (30d)
- 43
Description
**summary of problem**
When java text blocks (multi line strings) are used in the code and when indentWithTabs(2) and indentWithSpaces(4) both the rules are included then the gradle task gets stuck
**gradle or maven version**
gradle: 7.6.1
**spotless version**
6.17.0
operating system and version
MacOS Ventura 13.1
**spotless config**
```
spotless {
format 'misc', {
target '*.gradle', '*.md', '.gitignore'
trimTrailingWhitespace()
indentWithTabs() // or spaces. Takes an integer argument if you don't like 4
endWithNewline()
}
java {
googleJavaFormat()
indentWithTabs(2)
indentWithSpaces(4)
formatAnnotations()
removeUnusedImports()
trimTrailingWhitespace()
}
}
```
test repo: https://github.com/sujeet100/spotless-bug
output of ./gradlew spotlessCheck --debug
`2023-04-05T11:38:16.945+0530 [DEBUG] [org.gradle.api.internal.tasks.execution.TaskExecution] Executing actions for task ':spotlessJava'.
2023-04-05T11:38:16.946+0530 [INFO] [org.gradle.api.Task] Not incremental: removing prior outputs
2023-04-05T11:38:16.946+0530 [DEBUG] [org.gradle.internal.file.impl.DefaultDeleter] Deleting /Users/sujit/projects/personal/spotless-bug/build/spotless/spotlessJava
2023-04-05T11:38:16.947+0530 [DEBUG] [org.gradle.api.Task] Applying format to /Users/sujit/projects/personal/spotless-bug/src/main/java/com/example/spotlessbug/SpotlessBugApplication.java and writing to /Users/sujit/projects/personal/spotless-bug/build/spotless/spotlessJava/src/main/java/com/example/spotlessbug/SpotlessBugApplication.java
2023-04-05T11:38:16.959+0530 [DEBUG] [org.gradle.api.Task] Applying format to /Users/sujit/projects/personal/spotless-bug/src/main/java/com/example/spotlessbug/Test.java and writing to /Users/sujit/projects/personal/spotless-bug/build/spotless/spotlessJava/src/main/java/com/example/spotlessbug/Test.java
2023-04-05T11:38:24.386+0530 [LIFECYCLE] [org.gradle.cache.internal.DefaultFileLockManager]
2023-04-05T11:38:24.386+0530 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2023-04-05T11:38:24.386+0530 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2023-04-05T11:38:24.387+0530 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2023-04-05T11:38:24.387+0530 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2023-04-05T11:38:24.387+0530 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2023-04-05T11:38:24.387+0530 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2023-04-05T11:38:34.386+0530 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2023-04-05T11:38:34.386+0530 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2023-04-05T11:38:34.386+0530 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2023-04-05T11:38:34.386+0530 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2023-04-05T11:38:34.387+0530 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2023-04-05T11:38:34.387+0530 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2023-04-05T11:38:44.386+0530 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2023-04-05T11:38:44.387+0530 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2023-04-05T11:38:44.387+0530 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2023-04-05T11:38:44.388+0530 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2023-04-05T11:38:44.388+0530 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2023-04-05T11:38:44.388+0530 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2023-04-05T11:38:46.920+0530 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Daemon worker: acquired lock on worker lease
2023-04-05T11:38:46.921+0530 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Daemon worker: released lock on worker lease
2023-04-05T11:38:46.921+0530 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Execution worker: acquired lock on worker lease
2023-04-05T11:38:46.921+0530 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Execution worker: released lock on worker lease
2023-04-05T11:38:46.921+0530 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Execution worker Thread 10: acquired lock on worker lease
2023-04-05T11:38:46.921+0530 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Execution worker Thread 10: released lock on worker lease
2023-04-05T11:38:46.921+0530 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Execution worker Thread 9: acquired lock on worker lease
2023-04-05T11:38:46.922+0530 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Execution worker Thread 9: released lock on worker lease
2023-04-05T11:38:46.922+0530 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Execution worker Thread 8: acquired lock on worker lease
2023-04-05T11:38:46.922+0530 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Execution worker Thread 8: released lock on worker lease
2023-04-05T11:38:46.922+0530 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Execution worker Thread 7: acquired lock on worker lease
2023-04-05T11:38:46.922+0530 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Execution worker Thread 7: released lock on worker lease
2023-04-05T11:38:46.922+0530 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Execution worker Thread 4: acquired lock on worker lease
2023-04-05T11:38:46.922+0530 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Execution worker Thread 4: released lock on worker lease
2023-04-05T11:38:46.922+0530 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Execution worker Thread 6: acquired lock on worker lease
2023-04-05T11:38:46.922+0530 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Execution worker Thread 6: released lock on worker lease
2023-04-05T11:38:46.922+0530 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Execution worker Thread 5: acquired lock on worker lease
2023-04-05T11:38:46.922+0530 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Execution worker Thread 5: released lock on worker lease
2023-04-05T11:38:46.923+0530 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Execution worker Thread 3: acquired lock on worker lease
2023-04-05T11:38:46.923+0530 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Execution worker Thread 3: released lock on worker lease
2023-04-05T11:38:46.923+0530 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Execution worker Thread 2: acquired lock on worker lease
2023-04-05T11:38:46.923+0530 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Execution worker Thread 2: released lock on worker lease
2023-04-05T11:38:46.923+0530 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Execution worker Thread 11: acquired lock on worker lease
2023-04-05T11:38:46.923+0530 [DEBUG] [org.gradle.internal.resources.AbstractTrackedResourceLock] Execution worker Thread 11: released lock on worker lease
2023-04-05T11:38:54.386+0530 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2023-04-05T11:38:54.386+0530 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2023-04-05T11:38:54.386+0530 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2023-04-05T11:38:54.387+0530 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2023-04-05T11:38:54.387+0530 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2023-04-05T11:38:54.387+0530 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
<==-----------> 16% EXECUTING [42s]
> :spotlessJava
`
The gradle task gets stuck
Contributor guide
Research direction
Start with the linked test repository and run ./gradlew spotlessCheck using the reported Gradle and Spotless versions. Reproduce the hang with Java text blocks and both indentWithTabs(2) and indentWithSpaces(4), then trace the Spotless Java formatting path involved. Done means the command completes and the regression is covered by a reproducible test.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100