google-java-format 1.37.0: NoSuchMethodError on JavaFormatterOptions$Style.valueOf (Style is now a record)
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- java
- Ambito
- build-system
Direzione di ricerca
Inizia da GoogleJavaFormatFormatterFunc, dove viene risolto lo stile google-java-format, e confronta la reflection dell'adapter con l'API JavaFormatterOptions.Style di google-java-format 1.37.0. Riproduci il problema con la configurazione Maven indicata ed esegui mvn spotless:check; il lavoro è completato quando la versione 1.37.0 termina senza InvocationTargetException e le opzioni di stile esistenti continuano a funzionare.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Overriding the google-java-format version to 1.37.0 makes spotless:check fail with InvocationTargetException. Spotless then reports it as google-java-format(java.lang.reflect.InvocationTargetException) and gives no cause.
Environment
- spotless-maven-plugin 3.10.3 (spotless-lib 4.10.3)
- google-java-format 1.37.0 (works with 1.36.1)
- JDK 21 locally, and the same failure on the CI runner
Config
<googleJavaFormat>
<version>1.37.0</version>
<reflowLongStrings>true</reflowLongStrings>
<formatJavadoc>false</formatJavadoc>
</googleJavaFormat>
Cause
Running Maven with -Xlog:exceptions=info showed the wrapped error:
java.lang.NoSuchMethodError: 'JavaFormatterOptions$Style JavaFormatterOptions$Style.valueOf(java.lang.String)'
GoogleJavaFormatFormatterFunc calls JavaFormatterOptions.Style.valueOf(String). In 1.36.1, Style is an enum. In 1.37.0 it is a record (extends java.lang.Record, with a builder() and toBuilder()), and valueOf no longer exists. This looks related to the new --style=google|aosp flag. Style.GOOGLE and Style.AOSP still exist as static fields.
Ruled out
- The javac
--add-exportsflags: the 1.37.0 formatter works with them. - Guava version: it works with 32.1.3, 33.2.1 and 33.6.0.
- Missing APIs:
Builder.style,formatJavadoc,Formatter(JavaFormatterOptions),RemoveUnusedImports,ImportOrderer.reorderImports(String, Style)andStringWrapper.wrapare all present in 1.37.0.
Repro
Set <version>1.37.0</version> on the googleJavaFormat step, then run mvn spotless:check.
The adapter will need to map the style name to the new Style type, for example with Style.GOOGLE and Style.AOSP, instead of calling valueOf.
Downstream, this is blocking a Renovate bump: bytestreams-io/codec-core#164.
- Lingua principale
- Java
- Stelle
- 5.7k
- Fork
- 563
- Merge medio
- 1g 18h
- PR unite (30g)
- 53
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di diffplug/spotless
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
diffplug/spotless#3125 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Add support for org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_record_parameterAperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 67/100
I maintainer di solito rispondono entro 1 giorno
-
Maven plugin: Maven 4 warns about Plexus `@Component` injectionForse già presa @Goooler l’ha presa 4 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 78/100
diffplug/spotless#3121 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di diffplug/spotless
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
bancolombia/scaffold-clean-architecture#1002 ·
I maintainer di solito rispondono entro 1 giorno
-
CalendarEventAttendance/get returns eventAttendanceStatus while the doc says attendanceStatusForse già presa @chibenwa l’ha presa oggi. Apertabug claude
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
linagora/tmail-backend#2697 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
apache/skywalking#14120 ·
I maintainer di solito rispondono entro 1 giorno
-
[BUG] Case-insensitive search suggestions miss items when the JVM default locale is TurkishForse già presa @thswlsqls l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
[Feature] 关于启动游戏进度条显示的优化Apertaenhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
HMCL-dev/HMCL#6943 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno