getMimeTypes() race condition results in content getting served as xhtml and failing in safari
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 64/100
Direzione di ricerca
Iniziare da org.grails.web.mime.HttpServletResponseExtension.getMimeTypes() e verificare come viene inizializzato il campo statico mimeTypes quando GrailsWebRequest.lookup() non trova alcuna richiesta. Riprodurre o testare l'accesso concorrente e l'accesso senza richiesta, quindi verificare che i tipi MIME configurati dall'applicazione non vengano sostituiti dai valori predefiniti e che il caching venga posticipato finché non è disponibile un contesto dell'applicazione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Expected Behavior
Grails core should not silently fall back to createDefaults() in getMimeTypes() — when there's no request, it should defer caching, not poison it.
org.grails.web.mime.HttpServletResponseExtension.getMimeTypes()
public static MimeType[] getMimeTypes() {
if (mimeTypes == null) { // ← static field, populated once
webRequest = GrailsWebRequest.lookup(); // ← thread-local request lookup
ApplicationContext ctx = webRequest?.getApplicationContext();
if (ctx != null) {
// CORRECT PATH: read app config via Spring
mimeTypes = ctx.getBean(MimeUtility).getKnownMimeTypes();
loadMimeTypeConfig(ctx.getBean(GrailsApplication).config);
} else {
// WRONG-FALLBACK PATH:
mimeTypes = MimeType.createDefaults(); // [XHTML, HTML, XML, ...]
}
}
return mimeTypes;
}
Actual Behaviour
No response
Steps To Reproduce
No response
Environment Information
No response
Example Application
No response
Version
7.0.10
- Lingua principale
- Groovy
- Stelle
- 2.9k
- Fork
- 976
- Merge medio
- 21h 14m
- PR unite (30g)
- 174
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 apache/grails-core
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
apache/grails-core#16635 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
apache/grails-core#16289 · 5 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
apache/grails-core#15764 ·
I maintainer di solito rispondono entro 1 giorno
-
Update documentation for Java 25Forse già presa @ruthst00 l’ha presa 8 giorni fa. Apertarelates-to: documentation weekly-action-item
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
apache/grails-core#15725 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 18/100
apache/grails-core#16634 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di apache/grails-core
Issue simili
-
area/plugin good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
kestra-io/plugin-kestra#200 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
api-platform/core#8690 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
DorsetDigital/silverstripe-schema-manager#26 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
wemake-services/wemake-django-template#3178 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno