diff --git a/CHANGELOG-4.4.md b/CHANGELOG-4.4.md
index 4de4989aabb01..70feb9ba3cab7 100644
--- a/CHANGELOG-4.4.md
+++ b/CHANGELOG-4.4.md
@@ -7,6 +7,44 @@ in 4.4 minor versions.
To get the diff for a specific change, go to https://github.com/symfony/symfony/commit/XXX where XXX is the change hash
To get the diff between two versions, go to https://github.com/symfony/symfony/compare/v4.4.0...v4.4.1
+* 4.4.6 (2020-03-27)
+
+ * bug #36169 [HttpKernel] fix locking for PHP 7.4+ (nicolas-grekas)
+ * bug #36175 [Security/Http] Remember me: allow to set the samesite cookie flag (dunglas)
+ * bug #36173 [Http Foundation] Fix clear cookie samesite (guillbdx)
+ * bug #36176 [Security] Check if firewall is stateless before checking for session/previous session (koenreiniers)
+ * bug #36149 [Form] Support customized intl php.ini settings (jorrit)
+ * bug #36172 [Debug] fix for PHP 7.3.16+/7.4.4+ (nicolas-grekas)
+ * bug #36151 [Security] Fixed hardcoded value of SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE (lyrixx)
+ * bug #36141 Prevent warning in proc_open() (BenMorel)
+ * bug #36143 [FrameworkBundle] Fix Router Cache (guillbdx)
+ * bug #36103 [DI] fix preloading script generation (nicolas-grekas)
+ * bug #36118 [Security/Http] don't require the session to be started when tracking its id (nicolas-grekas)
+ * bug #36108 [DI] Fix CheckTypeDeclarationPass (guillbdx)
+ * bug #36121 [VarDumper] fix side-effect by not using mt_rand() (nicolas-grekas)
+ * bug #36073 [PropertyAccess][DX] Improved errors when reading uninitialized properties (HeahDude)
+ * bug #36063 [FrameworkBundle] start session on flashbag injection (William Arslett)
+ * bug #36031 [Console] Fallback to default answers when unable to read input (ostrolucky)
+ * bug #36083 [DI][Form] Fixed test suite (TimeType changes & unresolved merge conflict) (wouterj)
+ * bug #36026 [Mime] Fix boundary header (guillbdx)
+ * bug #36020 [Form] ignore microseconds submitted by Edge (xabbuh)
+ * bug #36038 [HttpClient] disable debug log with curl 7.64.0 (nicolas-grekas)
+ * bug #36041 fix import from config file using type: glob (Tobion)
+ * bug #35987 [DoctrineBridge][DoctrineExtractor] Fix wrong guessed type for "json" type (fancyweb)
+ * bug #35949 [DI] Fix container lint command when a synthetic service is used in an expression (HypeMC)
+ * bug #36023 [HttpClient] fix requests to hosts that idn_to_ascii() cannot handle (nicolas-grekas)
+ * bug #35938 [Form] Handle false as empty value on expanded choices (fancyweb)
+ * bug #36030 [SecurityBundle] Minor fix in LDAP config tree builder (HeahDude)
+ * bug #35993 Remove int return type from FlattenException::getCode (wucdbm)
+ * bug #36004 [Yaml] fix dumping strings containing CRs (xabbuh)
+ * bug #35982 [DI] Fix XmlFileLoader bad error message (przemyslaw-bogusz)
+ * bug #35957 [DI] ignore extra tags added by autoconfiguration in PriorityTaggedServiceTrait (nicolas-grekas)
+ * bug #35937 Revert "bug symfony#28179 [DomCrawler] Skip disabled fields processing in Form" (dmaicher)
+ * bug #35928 [Routing] Prevent localized routes _locale default & requirement from being overridden (fancyweb)
+ * bug #35912 [FrameworkBundle] register only existing transport factories (xabbuh)
+ * bug #35899 [DomCrawler] prevent deprecation being triggered from assertion (xabbuh)
+ * bug #35910 [SecurityBundle] Minor fixes in configuration tree builder (HeahDude)
+
* 4.4.5 (2020-02-29)
* bug #35781 [Form] NumberToLocalizedStringTransformer return int if scale = 0 (VincentLanglet)
diff --git a/CHANGELOG-5.0.md b/CHANGELOG-5.0.md
index 7ecfa8a8c88e6..57e9065b0747c 100644
--- a/CHANGELOG-5.0.md
+++ b/CHANGELOG-5.0.md
@@ -7,6 +7,18 @@ in 5.0 minor versions.
To get the diff for a specific change, go to https://github.com/symfony/symfony/commit/XXX where XXX is the change hash
To get the diff between two versions, go to https://github.com/symfony/symfony/compare/v5.0.0...v5.0.1
+* 5.0.7 (2020-03-30)
+
+ * security #cve-2020-5255 [HttpFoundation] Do not set the default Content-Type based on the Accept header (yceruto)
+ * security #cve-2020-5275 [Security] Fix access_control behavior with unanimous decision strategy (chalasr)
+ * bug #36262 [DI] fix generating TypedReference from PriorityTaggedServiceTrait (nicolas-grekas)
+ * bug #36252 [Security/Http] Allow setting cookie security settings for delete_cookies (wouterj)
+ * bug #36261 [FrameworkBundle] revert to legacy wiring of the session when circular refs are detected (nicolas-grekas)
+ * bug #36259 [DomCrawler] Fix BC break in assertions breaking Panther (dunglas)
+ * bug #36181 [BrowserKit] fixed missing post request parameters in file uploads (codebay)
+ * bug #36216 [Validator] Assert Valid with many groups (phucwan91)
+ * bug #36222 [Console] Fix OutputStream for PHP 7.4 (guillbdx)
+
* 5.0.6 (2020-03-27)
* bug #36169 [HttpKernel] fix locking for PHP 7.4+ (nicolas-grekas)
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index 468c90ad49d1d..53a2faec2f45f 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -16,27 +16,27 @@ Symfony is the result of the work of many people who made the code better
- Victor Berchet (victor)
- Maxime Steinhausser (ogizanagi)
- Ryan Weaver (weaverryan)
- - Javier Eguiluz (javier.eguiluz)
- Grégoire Pineau (lyrixx)
- - Jakub Zalas (jakubzalas)
+ - Javier Eguiluz (javier.eguiluz)
- Roland Franssen (ro0)
+ - Jakub Zalas (jakubzalas)
- Johannes S (johannes)
- Kris Wallsmith (kriswallsmith)
- Yonel Ceruto (yonelceruto)
- Hugo Hamon (hhamon)
- Abdellatif Ait boudad (aitboudad)
- Samuel ROZE (sroze)
- - Romain Neutron (romain)
+ - Thomas Calvet (fancyweb)
- Wouter de Jong (wouterj)
+ - Romain Neutron (romain)
- Pascal Borreli (pborreli)
- - Thomas Calvet (fancyweb)
- Joseph Bielawski (stloyd)
- Alexander M. Turek (derrabus)
- Karma Dordrak (drak)
- Lukas Kahwe Smith (lsmith)
- - Martin Hasoň (hason)
- - Hamza Amrouche (simperfit)
- Jules Pietri (heah)
+ - Hamza Amrouche (simperfit)
+ - Martin Hasoň (hason)
- Jeremy Mikola (jmikola)
- Jérémy DERUSSÉ (jderusse)
- Jean-François Simon (jfsimon)
@@ -66,17 +66,17 @@ Symfony is the result of the work of many people who made the code better
- Saša Stamenković (umpirsky)
- Peter Rehm (rpet)
- Henrik Bjørnskov (henrikbjorn)
- - Miha Vrhovnik
- Gabriel Ostrolucký (gadelat)
+ - Miha Vrhovnik
+ - David Maicher (dmaicher)
- Diego Saint Esteben (dii3g0)
- Gábor Egyed (1ed)
- Titouan Galopin (tgalopin)
- - David Maicher (dmaicher)
+ - Jan Schädlich (jschaedl)
- Konstantin Kudryashov (everzet)
- Bilal Amarni (bamarni)
- Mathieu Piot (mpiot)
- Vladimir Reznichenko (kalessil)
- - Jan Schädlich (jschaedl)
- Florin Patan (florinpatan)
- Jáchym Toušek (enumag)
- Andrej Hudec (pulzarraider)
@@ -136,6 +136,7 @@ Symfony is the result of the work of many people who made the code better
- Joel Wurtz (brouznouf)
- Fabien Pennequin (fabienpennequin)
- Théo FIDRY (theofidry)
+ - Przemysław Bogusz (przemyslaw-bogusz)
- Eric GELOEN (gelo)
- Lars Strojny (lstrojny)
- Jannik Zschiesche (apfelbox)
@@ -155,6 +156,7 @@ Symfony is the result of the work of many people who made the code better
- Sebastian Hörl (blogsh)
- Daniel Gomes (danielcsgomes)
- Hidenori Goto (hidenorigoto)
+ - Alessandro Chitolina (alekitto)
- Andréia Bohner (andreia)
- Yanick Witschi (toflar)
- Arnaud Kleinpeter (nanocom)
@@ -164,7 +166,6 @@ Symfony is the result of the work of many people who made the code better
- Jérémie Augustin (jaugustin)
- François-Xavier de Guillebon (de-gui_f)
- Oleg Voronkovich
- - Alessandro Chitolina (alekitto)
- Philipp Wahala (hifi)
- Rafael Dohms (rdohms)
- jwdeitch
@@ -239,8 +240,10 @@ Symfony is the result of the work of many people who made the code better
- fivestar
- Dominique Bongiraud
- Jeremy Livingston (jeremylivingston)
+ - Laurent VOULLEMIER (lvo)
- Michael Lee (zerustech)
- Matthieu Auger (matthieuauger)
+ - Ahmed TAILOULOUTE (ahmedtai)
- Leszek Prabucki (l3l0)
- Fabien Bourigault (fbourigault)
- François Zaninotto (fzaninotto)
@@ -248,7 +251,6 @@ Symfony is the result of the work of many people who made the code better
- jeff
- John Kary (johnkary)
- Jan Rosier (rosier)
- - Przemysław Bogusz (przemyslaw-bogusz)
- Justin Hileman (bobthecow)
- Blanchon Vincent (blanchonvincent)
- Michele Orselli (orso)
@@ -280,7 +282,6 @@ Symfony is the result of the work of many people who made the code better
- julien pauli (jpauli)
- Lorenz Schori
- Sébastien Lavoie (lavoiesl)
- - Ahmed TAILOULOUTE (ahmedtai)
- Dariusz
- Saif (╯°□°)╯ (azjezz)
- Dmitrii Poddubnyi (karser)
@@ -306,6 +307,7 @@ Symfony is the result of the work of many people who made the code better
- Arjen Brouwer (arjenjb)
- Katsuhiro OGAWA
- Patrick McDougle (patrick-mcdougle)
+ - Guillaume Pédelagrabe
- Alif Rachmawadi
- Anton Chernikov (anton_ch1989)
- Kristen Gilden (kgilden)
@@ -336,6 +338,7 @@ Symfony is the result of the work of many people who made the code better
- Wodor Wodorski
- Thomas Lallement (raziel057)
- Colin O'Dell (colinodell)
+ - Mathias Arlaud (mtarld)
- Giorgio Premi
- renanbr
- Alex Rock (pierstoval)
@@ -398,13 +401,11 @@ Symfony is the result of the work of many people who made the code better
- Emanuele Gaspari (inmarelibero)
- Dariusz Rumiński
- Berny Cantos (xphere81)
- - Laurent VOULLEMIER (lvo)
- Thierry Thuon (lepiaf)
- Ricard Clau (ricardclau)
- Mark Challoner (markchalloner)
- Philippe Segatori
- Gennady Telegin (gtelegin)
- - Mathias Arlaud (mtarld)
- Erin Millard
- Artur Melo (restless)
- Matthew Lewinski (lewinski)
@@ -433,6 +434,7 @@ Symfony is the result of the work of many people who made the code better
- Eric Masoero (eric-masoero)
- Denis Brumann (dbrumann)
- JhonnyL
+ - Haralan Dobrev (hkdobrev)
- hossein zolfi (ocean)
- Clément Gautier (clementgautier)
- Bastien Jaillot (bastnic)
@@ -486,6 +488,7 @@ Symfony is the result of the work of many people who made the code better
- Xavier HAUSHERR
- Albert Jessurum (ajessu)
- Laszlo Korte
+ - Jesse Rushlow (geeshoe)
- Miha Vrhovnik
- Alessandro Desantis
- hubert lecorche (hlecorche)
@@ -561,6 +564,7 @@ Symfony is the result of the work of many people who made the code better
- Gintautas Miselis
- Rob Bast
- Roberto Espinoza (respinoza)
+ - HypeMC
- Soufian EZ-ZANTAR (soezz)
- Zander Baldwin
- Gocha Ossinkine (ossinkine)
@@ -586,7 +590,6 @@ Symfony is the result of the work of many people who made the code better
- Yoshio HANAWA
- Jan van Thoor (janvt)
- Gladhon
- - Haralan Dobrev (hkdobrev)
- Sebastian Bergmann
- Miroslav Sustek
- Pablo Díez (pablodip)
@@ -716,6 +719,7 @@ Symfony is the result of the work of many people who made the code better
- Stéphane Escandell (sescandell)
- Konstantin S. M. Möllers (ksmmoellers)
- James Johnston
+ - Noémi Salaün (noemi-salaun)
- Sinan Eldem
- BoShurik
- Alexandre Dupuy (satchette)
@@ -732,6 +736,7 @@ Symfony is the result of the work of many people who made the code better
- Stefan Gehrig (sgehrig)
- Hany el-Kerdany
- Wang Jingyu
+ - Langlet Vincent (deviling)
- Åsmund Garfors
- Gunnstein Lye (glye)
- Maxime Douailin
@@ -802,7 +807,6 @@ Symfony is the result of the work of many people who made the code better
- Simon Schick (simonsimcity)
- redstar504
- Tristan Roussel
- - HypeMC
- Cameron Porter
- Hossein Bukhamsin
- Oliver Hoff
@@ -835,6 +839,7 @@ Symfony is the result of the work of many people who made the code better
- Richard Quadling
- Raphaëll Roussel
- Michael Lutz
+ - Koen Reiniers (koenre)
- jochenvdv
- Reedy
- Arturas Smorgun (asarturas)
@@ -883,6 +888,7 @@ Symfony is the result of the work of many people who made the code better
- Dennis Hotson
- Andrew Tchircoff (andrewtch)
- michaelwilliams
+ - Martin Kirilov
- 1emming
- Nykopol (nykopol)
- Tri Pham (phamuyentri)
@@ -951,9 +957,11 @@ Symfony is the result of the work of many people who made the code better
- Roy Klutman (royklutman)
- Sofiane HADDAG (sofhad)
- frost-nzcr4
+ - arai
- Laurent Bassin (lbassin)
- andrey1s
- Abhoryo
+ - Daniel STANCU
- Fabian Vogler (fabian)
- Korvin Szanto
- soyuka
@@ -1003,13 +1011,13 @@ Symfony is the result of the work of many people who made the code better
- Shin Ohno (ganchiku)
- Geert De Deckere (geertdd)
- Jan Kramer (jankramer)
+ - Matthieu Mota (matthieumota)
- abdul malik ikhsan (samsonasik)
- Henry Snoek (snoek09)
- Jérémy M (th3mouk)
- Simone Di Maulo (toretto460)
- Christian Morgan
- Alexander Miehe (engerim)
- - Jesse Rushlow (geeshoe)
- Morgan Auchede (mauchede)
- Sascha Dens (saschadens)
- Don Pinkster
@@ -1037,6 +1045,7 @@ Symfony is the result of the work of many people who made the code better
- Marcos Gómez Vilches (markitosgv)
- Matthew Davis (mdavis1982)
- Markus S. (staabm)
+ - Benjamin Morel
- Maks
- Antoine LA
- den
@@ -1228,6 +1237,7 @@ Symfony is the result of the work of many people who made the code better
- Benjamin Paap (benjaminpaap)
- Claus Due (namelesscoder)
- Christian
+ - William Arslett
- Denis Golubovskiy (bukashk0zzz)
- Sergii Smertin (nfx)
- Mikkel Paulson
@@ -1309,6 +1319,7 @@ Symfony is the result of the work of many people who made the code better
- BRAMILLE Sébastien (oktapodia)
- Artem Kolesnikov (tyomo4ka)
- Gustavo Adrian
+ - Jorrit Schippers (jorrit)
- Yannick
- Vladimir Luchaninov (luchaninov)
- spdionis
@@ -1346,7 +1357,6 @@ Symfony is the result of the work of many people who made the code better
- Oxan van Leeuwen
- pkowalczyk
- Soner Sayakci
- - Koen Reiniers (koenre)
- Max Voloshin (maxvoloshin)
- Nicolas Fabre (nfabre)
- Raul Rodriguez (raul782)
@@ -1593,6 +1603,7 @@ Symfony is the result of the work of many people who made the code better
- Felipy Tavares Amorim (felipyamorim)
- Guillaume Loulier (guikingone)
- Klaus Silveira (klaussilveira)
+ - Pierre Grimaud (pgrimaud)
- Thomas Chmielowiec (chmielot)
- Jānis Lukss
- rkerner
@@ -1645,7 +1656,9 @@ Symfony is the result of the work of many people who made the code better
- Mephistofeles
- Hoffmann András
- LubenZA
+ - Victor Garcia
- Olivier
+ - Denis Yuzhanin
- knezmilos13
- Cyril PASCAL
- Michael Bessolov
@@ -1732,6 +1745,7 @@ Symfony is the result of the work of many people who made the code better
- Stefan Hüsges (tronsha)
- Jake Bishop (yakobeyak)
- Dan Blows
+ - popnikos
- Matt Wells
- Sander van der Vlugt
- Nicolas Appriou
@@ -1828,6 +1842,7 @@ Symfony is the result of the work of many people who made the code better
- Aarón Nieves Fernández
- Mike Meier
- Kirill Saksin
+ - Reda DAOUDI
- Koalabaerchen
- michalmarcinkowski
- Warwick
@@ -1873,7 +1888,6 @@ Symfony is the result of the work of many people who made the code better
- ged15
- Daan van Renterghem
- Nicole Cordes
- - Martin Kirilov
- Bálint Szekeres
- amcastror
- Alexander Li (aweelex)
@@ -2174,7 +2188,6 @@ Symfony is the result of the work of many people who made the code better
- Karolis
- Myke79
- Brian Debuire
- - Benjamin Morel
- Eric Grimois
- Piers Warmers
- Sylvain Lorinet
@@ -2240,7 +2253,6 @@ Symfony is the result of the work of many people who made the code better
- James Michael DuPont
- Kasperki
- Tammy D
- - Daniel STANCU
- Ryan Rud
- Ondrej Slinták
- vlechemin
@@ -2267,6 +2279,7 @@ Symfony is the result of the work of many people who made the code better
- Abdulkadir N. A.
- Adam Klvač
- Bruno Nogueira Nascimento Wowk
+ - jonmldr
- Yevgen Kovalienia
- Lebnik
- nsbx
@@ -2385,6 +2398,7 @@ Symfony is the result of the work of many people who made the code better
- Jose Manuel Gonzalez (jgonzalez)
- Joachim Krempel (jkrempel)
- Jorge Maiden (jorgemaiden)
+ - Joao Paulo V Martins (jpjoao)
- Justin Rainbow (jrainbow)
- Juan Luis (juanlugb)
- JuntaTom (juntatom)
@@ -2398,7 +2412,6 @@ Symfony is the result of the work of many people who made the code better
- Luís Cobucci (lcobucci)
- Jérémy (libertjeremy)
- Mehdi Achour (machour)
- - Matthieu Mota (matthieumota)
- Matthieu Moquet (mattketmo)
- Moritz Borgmann (mborgmann)
- Michal Čihař (mcihar)
@@ -2442,6 +2455,7 @@ Symfony is the result of the work of many people who made the code better
- Markus Tacker (tacker)
- Tom Newby (tomnewbyau)
- Andrew Clark (tqt_andrew_clark)
+ - Aaron Piotrowski (trowski)
- David Lumaye (tux1124)
- Roman Tymoshyk (tymoshyk)
- Tyler Stroud (tystr)
diff --git a/src/Symfony/Bridge/Doctrine/.gitattributes b/src/Symfony/Bridge/Doctrine/.gitattributes
index ebb9287043dc4..84c7add058fb5 100644
--- a/src/Symfony/Bridge/Doctrine/.gitattributes
+++ b/src/Symfony/Bridge/Doctrine/.gitattributes
@@ -1,3 +1,4 @@
/Tests export-ignore
/phpunit.xml.dist export-ignore
+/.gitattributes export-ignore
/.gitignore export-ignore
diff --git a/src/Symfony/Bridge/Monolog/.gitattributes b/src/Symfony/Bridge/Monolog/.gitattributes
index ebb9287043dc4..84c7add058fb5 100644
--- a/src/Symfony/Bridge/Monolog/.gitattributes
+++ b/src/Symfony/Bridge/Monolog/.gitattributes
@@ -1,3 +1,4 @@
/Tests export-ignore
/phpunit.xml.dist export-ignore
+/.gitattributes export-ignore
/.gitignore export-ignore
diff --git a/src/Symfony/Bridge/PhpUnit/.gitattributes b/src/Symfony/Bridge/PhpUnit/.gitattributes
new file mode 100644
index 0000000000000..84c7add058fb5
--- /dev/null
+++ b/src/Symfony/Bridge/PhpUnit/.gitattributes
@@ -0,0 +1,4 @@
+/Tests export-ignore
+/phpunit.xml.dist export-ignore
+/.gitattributes export-ignore
+/.gitignore export-ignore
diff --git a/src/Symfony/Bridge/ProxyManager/.gitattributes b/src/Symfony/Bridge/ProxyManager/.gitattributes
index ebb9287043dc4..84c7add058fb5 100644
--- a/src/Symfony/Bridge/ProxyManager/.gitattributes
+++ b/src/Symfony/Bridge/ProxyManager/.gitattributes
@@ -1,3 +1,4 @@
/Tests export-ignore
/phpunit.xml.dist export-ignore
+/.gitattributes export-ignore
/.gitignore export-ignore
diff --git a/src/Symfony/Bridge/Twig/.gitattributes b/src/Symfony/Bridge/Twig/.gitattributes
index ebb9287043dc4..84c7add058fb5 100644
--- a/src/Symfony/Bridge/Twig/.gitattributes
+++ b/src/Symfony/Bridge/Twig/.gitattributes
@@ -1,3 +1,4 @@
/Tests export-ignore
/phpunit.xml.dist export-ignore
+/.gitattributes export-ignore
/.gitignore export-ignore
diff --git a/src/Symfony/Bundle/DebugBundle/.gitattributes b/src/Symfony/Bundle/DebugBundle/.gitattributes
index ebb9287043dc4..84c7add058fb5 100644
--- a/src/Symfony/Bundle/DebugBundle/.gitattributes
+++ b/src/Symfony/Bundle/DebugBundle/.gitattributes
@@ -1,3 +1,4 @@
/Tests export-ignore
/phpunit.xml.dist export-ignore
+/.gitattributes export-ignore
/.gitignore export-ignore
diff --git a/src/Symfony/Bundle/FrameworkBundle/.gitattributes b/src/Symfony/Bundle/FrameworkBundle/.gitattributes
index ebb9287043dc4..84c7add058fb5 100644
--- a/src/Symfony/Bundle/FrameworkBundle/.gitattributes
+++ b/src/Symfony/Bundle/FrameworkBundle/.gitattributes
@@ -1,3 +1,4 @@
/Tests export-ignore
/phpunit.xml.dist export-ignore
+/.gitattributes export-ignore
/.gitignore export-ignore
diff --git a/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/XmlDescriptor.php b/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/XmlDescriptor.php
index a7f348e76d219..3839cbc4ed7e5 100644
--- a/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/XmlDescriptor.php
+++ b/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/XmlDescriptor.php
@@ -383,8 +383,8 @@ private function getArgumentNodes(array $arguments, \DOMDocument $dom): array
} elseif (\is_array($argument)) {
$argumentXML->setAttribute('type', 'collection');
- foreach ($this->getArgumentNodes($argument, $dom) as $childArgumenXML) {
- $argumentXML->appendChild($childArgumenXML);
+ foreach ($this->getArgumentNodes($argument, $dom) as $childArgumentXML) {
+ $argumentXML->appendChild($childArgumentXML);
}
} else {
$argumentXML->appendChild(new \DOMText($argument));
diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/SessionPass.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/SessionPass.php
new file mode 100644
index 0000000000000..0f4950615fbce
--- /dev/null
+++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/SessionPass.php
@@ -0,0 +1,50 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler;
+
+use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Reference;
+
+/**
+ * @internal to be removed in 6.0
+ */
+class SessionPass implements CompilerPassInterface
+{
+ public function process(ContainerBuilder $container)
+ {
+ if (!$container->hasDefinition('session')) {
+ return;
+ }
+
+ $bags = [
+ 'session.flash_bag' => $container->hasDefinition('session.flash_bag') ? $container->getDefinition('session.flash_bag') : null,
+ 'session.attribute_bag' => $container->hasDefinition('session.attribute_bag') ? $container->getDefinition('session.attribute_bag') : null,
+ ];
+
+ foreach ($container->getDefinition('session')->getArguments() as $v) {
+ if (!$v instanceof Reference || !isset($bags[$bag = (string) $v]) || !\is_array($factory = $bags[$bag]->getFactory())) {
+ continue;
+ }
+
+ if ([0, 1] !== array_keys($factory) || !$factory[0] instanceof Reference || 'session' !== (string) $factory[0]) {
+ continue;
+ }
+
+ if ('get'.ucfirst(substr($bag, 8, -4)).'Bag' !== $factory[1]) {
+ continue;
+ }
+
+ $bags[$bag]->setFactory(null);
+ }
+ }
+}
diff --git a/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php b/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php
index e21ae0d7ba90d..e09a28ffaf92e 100644
--- a/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php
+++ b/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php
@@ -18,6 +18,7 @@
use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\DataCollectorTranslatorPass;
use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\LoggingTranslatorPass;
use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\ProfilerPass;
+use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\SessionPass;
use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\TestServiceContainerRealRefPass;
use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\TestServiceContainerWeakRefPass;
use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\UnusedTagsPass;
@@ -149,6 +150,7 @@ public function build(ContainerBuilder $container)
$this->addCompilerPassIfExists($container, AddAutoMappingConfigurationPass::class);
$container->addCompilerPass(new RegisterReverseContainerPass(true));
$container->addCompilerPass(new RegisterReverseContainerPass(false), PassConfig::TYPE_AFTER_REMOVING);
+ $container->addCompilerPass(new SessionPass());
if ($container->getParameter('kernel.debug')) {
$container->addCompilerPass(new AddDebugLogProcessorPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION, 2);
diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/SessionPassTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/SessionPassTest.php
new file mode 100644
index 0000000000000..afc6f9b4b2577
--- /dev/null
+++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/SessionPassTest.php
@@ -0,0 +1,44 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection\Compiler;
+
+use PHPUnit\Framework\TestCase;
+use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\SessionPass;
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Reference;
+
+class SessionPassTest extends TestCase
+{
+ public function testProcess()
+ {
+ $arguments = [
+ new Reference('session.flash_bag'),
+ new Reference('session.attribute_bag'),
+ ];
+ $container = new ContainerBuilder();
+ $container
+ ->register('session')
+ ->setArguments($arguments);
+ $container
+ ->register('session.flash_bag')
+ ->setFactory([new Reference('session'), 'getFlashBag']);
+ $container
+ ->register('session.attribute_bag')
+ ->setFactory([new Reference('session'), 'getAttributeBag']);
+
+ (new SessionPass())->process($container);
+
+ $this->assertSame($arguments, $container->getDefinition('session')->getArguments());
+ $this->assertNull($container->getDefinition('session.flash_bag')->getFactory());
+ $this->assertNull($container->getDefinition('session.attribute_bag')->getFactory());
+ }
+}
diff --git a/src/Symfony/Bundle/SecurityBundle/.gitattributes b/src/Symfony/Bundle/SecurityBundle/.gitattributes
index ebb9287043dc4..84c7add058fb5 100644
--- a/src/Symfony/Bundle/SecurityBundle/.gitattributes
+++ b/src/Symfony/Bundle/SecurityBundle/.gitattributes
@@ -1,3 +1,4 @@
/Tests export-ignore
/phpunit.xml.dist export-ignore
+/.gitattributes export-ignore
/.gitignore export-ignore
diff --git a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/MainConfiguration.php b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/MainConfiguration.php
index ad269fd65e98f..65a3c37c78414 100644
--- a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/MainConfiguration.php
+++ b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/MainConfiguration.php
@@ -221,6 +221,8 @@ private function addFirewallsSection(ArrayNodeDefinition $rootNode, array $facto
->children()
->scalarNode('path')->defaultNull()->end()
->scalarNode('domain')->defaultNull()->end()
+ ->scalarNode('secure')->defaultFalse()->end()
+ ->scalarNode('samesite')->defaultNull()->end()
->end()
->end()
->end()
diff --git a/src/Symfony/Bundle/TwigBundle/.gitattributes b/src/Symfony/Bundle/TwigBundle/.gitattributes
index ebb9287043dc4..84c7add058fb5 100644
--- a/src/Symfony/Bundle/TwigBundle/.gitattributes
+++ b/src/Symfony/Bundle/TwigBundle/.gitattributes
@@ -1,3 +1,4 @@
/Tests export-ignore
/phpunit.xml.dist export-ignore
+/.gitattributes export-ignore
/.gitignore export-ignore
diff --git a/src/Symfony/Bundle/WebProfilerBundle/.gitattributes b/src/Symfony/Bundle/WebProfilerBundle/.gitattributes
index ebb9287043dc4..84c7add058fb5 100644
--- a/src/Symfony/Bundle/WebProfilerBundle/.gitattributes
+++ b/src/Symfony/Bundle/WebProfilerBundle/.gitattributes
@@ -1,3 +1,4 @@
/Tests export-ignore
/phpunit.xml.dist export-ignore
+/.gitattributes export-ignore
/.gitignore export-ignore
diff --git a/src/Symfony/Component/Asset/.gitattributes b/src/Symfony/Component/Asset/.gitattributes
index ebb9287043dc4..84c7add058fb5 100644
--- a/src/Symfony/Component/Asset/.gitattributes
+++ b/src/Symfony/Component/Asset/.gitattributes
@@ -1,3 +1,4 @@
/Tests export-ignore
/phpunit.xml.dist export-ignore
+/.gitattributes export-ignore
/.gitignore export-ignore
diff --git a/src/Symfony/Component/BrowserKit/.gitattributes b/src/Symfony/Component/BrowserKit/.gitattributes
index ebb9287043dc4..84c7add058fb5 100644
--- a/src/Symfony/Component/BrowserKit/.gitattributes
+++ b/src/Symfony/Component/BrowserKit/.gitattributes
@@ -1,3 +1,4 @@
/Tests export-ignore
/phpunit.xml.dist export-ignore
+/.gitattributes export-ignore
/.gitignore export-ignore
diff --git a/src/Symfony/Component/BrowserKit/HttpBrowser.php b/src/Symfony/Component/BrowserKit/HttpBrowser.php
index a1e6dd9af0119..9c2b3fcf57e58 100644
--- a/src/Symfony/Component/BrowserKit/HttpBrowser.php
+++ b/src/Symfony/Component/BrowserKit/HttpBrowser.php
@@ -75,7 +75,7 @@ private function getBodyAndExtraHeaders(Request $request): array
$fields = $request->getParameters();
if ($uploadedFiles = $this->getUploadedFiles($request->getFiles())) {
- $part = new FormDataPart($uploadedFiles);
+ $part = new FormDataPart(array_merge($fields, $uploadedFiles));
return [$part->bodyToIterable(), $part->getPreparedHeaders()->toArray()];
}
diff --git a/src/Symfony/Component/BrowserKit/Tests/HttpBrowserTest.php b/src/Symfony/Component/BrowserKit/Tests/HttpBrowserTest.php
index fa3d531aa986d..77586f44e7744 100644
--- a/src/Symfony/Component/BrowserKit/Tests/HttpBrowserTest.php
+++ b/src/Symfony/Component/BrowserKit/Tests/HttpBrowserTest.php
@@ -134,6 +134,28 @@ public function testMultiPartRequestWithInvalidItem()
]);
}
+ public function testMultiPartRequestWithAdditionalParameters()
+ {
+ $client = $this->createMock(HttpClientInterface::class);
+ $this->expectClientToSendRequestWithFiles($client, ['file1_content', 'baz']);
+
+ $browser = new HttpBrowser($client);
+ $browser->request('POST', 'http://example.com/', ['bar' => 'baz'], [
+ 'file1' => $this->getUploadedFile('file1'),
+ ]);
+ }
+
+ public function testMultiPartRequestWithAdditionalParametersOfTheSameName()
+ {
+ $client = $this->createMock(HttpClientInterface::class);
+ $this->expectClientToNotSendRequestWithFiles($client, ['baz']);
+
+ $browser = new HttpBrowser($client);
+ $browser->request('POST', 'http://example.com/', ['file1' => 'baz'], [
+ 'file1' => $this->getUploadedFile('file1'),
+ ]);
+ }
+
private function uploadFile(string $data): string
{
$path = tempnam(sys_get_temp_dir(), 'http');
@@ -167,4 +189,22 @@ protected function expectClientToSendRequestWithFiles(HttpClientInterface $clien
}))
->willReturn($this->createMock(ResponseInterface::class));
}
+
+ protected function expectClientToNotSendRequestWithFiles(HttpClientInterface $client, $fileContents)
+ {
+ $client
+ ->expects($this->once())
+ ->method('request')
+ ->with('POST', 'http://example.com/', $this->callback(function ($options) use ($fileContents) {
+ $this->assertStringContainsString('Content-Type: multipart/form-data', implode('', $options['headers']));
+ $this->assertInstanceOf('\Generator', $options['body']);
+ $body = implode('', iterator_to_array($options['body'], false));
+ foreach ($fileContents as $content) {
+ $this->assertStringNotContainsString($content, $body);
+ }
+
+ return true;
+ }))
+ ->willReturn($this->createMock(ResponseInterface::class));
+ }
}
diff --git a/src/Symfony/Component/Cache/.gitattributes b/src/Symfony/Component/Cache/.gitattributes
index ebb9287043dc4..84c7add058fb5 100644
--- a/src/Symfony/Component/Cache/.gitattributes
+++ b/src/Symfony/Component/Cache/.gitattributes
@@ -1,3 +1,4 @@
/Tests export-ignore
/phpunit.xml.dist export-ignore
+/.gitattributes export-ignore
/.gitignore export-ignore
diff --git a/src/Symfony/Component/Config/.gitattributes b/src/Symfony/Component/Config/.gitattributes
index ebb9287043dc4..84c7add058fb5 100644
--- a/src/Symfony/Component/Config/.gitattributes
+++ b/src/Symfony/Component/Config/.gitattributes
@@ -1,3 +1,4 @@
/Tests export-ignore
/phpunit.xml.dist export-ignore
+/.gitattributes export-ignore
/.gitignore export-ignore
diff --git a/src/Symfony/Component/Console/.gitattributes b/src/Symfony/Component/Console/.gitattributes
index ebb9287043dc4..84c7add058fb5 100644
--- a/src/Symfony/Component/Console/.gitattributes
+++ b/src/Symfony/Component/Console/.gitattributes
@@ -1,3 +1,4 @@
/Tests export-ignore
/phpunit.xml.dist export-ignore
+/.gitattributes export-ignore
/.gitignore export-ignore
diff --git a/src/Symfony/Component/Console/Output/StreamOutput.php b/src/Symfony/Component/Console/Output/StreamOutput.php
index 0b24052e9f7c3..9b78f432a0351 100644
--- a/src/Symfony/Component/Console/Output/StreamOutput.php
+++ b/src/Symfony/Component/Console/Output/StreamOutput.php
@@ -12,7 +12,6 @@
namespace Symfony\Component\Console\Output;
use Symfony\Component\Console\Exception\InvalidArgumentException;
-use Symfony\Component\Console\Exception\RuntimeException;
use Symfony\Component\Console\Formatter\OutputFormatterInterface;
/**
@@ -74,10 +73,7 @@ protected function doWrite(string $message, bool $newline)
$message .= PHP_EOL;
}
- if (false === @fwrite($this->stream, $message)) {
- // should never happen
- throw new RuntimeException('Unable to write output.');
- }
+ @fwrite($this->stream, $message);
fflush($this->stream);
}
diff --git a/src/Symfony/Component/Console/Tests/Fixtures/stream_output_file.txt b/src/Symfony/Component/Console/Tests/Fixtures/stream_output_file.txt
new file mode 100644
index 0000000000000..e69de29bb2d1d
diff --git a/src/Symfony/Component/Console/Tests/Output/StreamOutputTest.php b/src/Symfony/Component/Console/Tests/Output/StreamOutputTest.php
index df4e3384ab8c4..8fa9dfd1047c4 100644
--- a/src/Symfony/Component/Console/Tests/Output/StreamOutputTest.php
+++ b/src/Symfony/Component/Console/Tests/Output/StreamOutputTest.php
@@ -56,4 +56,12 @@ public function testDoWrite()
rewind($output->getStream());
$this->assertEquals('foo'.PHP_EOL, stream_get_contents($output->getStream()), '->doWrite() writes to the stream');
}
+
+ public function testDoWriteOnFailure()
+ {
+ $resource = fopen(__DIR__.'/../Fixtures/stream_output_file.txt', 'r', false);
+ $output = new StreamOutput($resource);
+ rewind($output->getStream());
+ $this->assertEquals('', stream_get_contents($output->getStream()));
+ }
}
diff --git a/src/Symfony/Component/CssSelector/.gitattributes b/src/Symfony/Component/CssSelector/.gitattributes
index ebb9287043dc4..84c7add058fb5 100644
--- a/src/Symfony/Component/CssSelector/.gitattributes
+++ b/src/Symfony/Component/CssSelector/.gitattributes
@@ -1,3 +1,4 @@
/Tests export-ignore
/phpunit.xml.dist export-ignore
+/.gitattributes export-ignore
/.gitignore export-ignore
diff --git a/src/Symfony/Component/DependencyInjection/.gitattributes b/src/Symfony/Component/DependencyInjection/.gitattributes
index ebb9287043dc4..84c7add058fb5 100644
--- a/src/Symfony/Component/DependencyInjection/.gitattributes
+++ b/src/Symfony/Component/DependencyInjection/.gitattributes
@@ -1,3 +1,4 @@
/Tests export-ignore
/phpunit.xml.dist export-ignore
+/.gitattributes export-ignore
/.gitignore export-ignore
diff --git a/src/Symfony/Component/DependencyInjection/Compiler/PriorityTaggedServiceTrait.php b/src/Symfony/Component/DependencyInjection/Compiler/PriorityTaggedServiceTrait.php
index c24d5976b3ccb..caa2e03e71de6 100644
--- a/src/Symfony/Component/DependencyInjection/Compiler/PriorityTaggedServiceTrait.php
+++ b/src/Symfony/Component/DependencyInjection/Compiler/PriorityTaggedServiceTrait.php
@@ -15,6 +15,7 @@
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
use Symfony\Component\DependencyInjection\Reference;
+use Symfony\Component\DependencyInjection\TypedReference;
/**
* Trait that allows a generic method to find and sort service by priority option in the tag.
@@ -55,41 +56,51 @@ private function findAndSortTaggedServices($tagName, ContainerBuilder $container
foreach ($container->findTaggedServiceIds($tagName, true) as $serviceId => $attributes) {
$defaultPriority = null;
$defaultIndex = null;
+ $class = $container->getDefinition($serviceId)->getClass();
+ $class = $container->getParameterBag()->resolveValue($class) ?: null;
foreach ($attributes as $attribute) {
$index = $priority = null;
if (isset($attribute['priority'])) {
$priority = $attribute['priority'];
- } elseif (null === $defaultPriority && $defaultPriorityMethod) {
- $defaultPriority = PriorityTaggedServiceUtil::getDefaultPriority($container, $serviceId, $defaultPriorityMethod, $tagName);
+ } elseif (null === $defaultPriority && $defaultPriorityMethod && $class) {
+ $defaultPriority = PriorityTaggedServiceUtil::getDefaultPriority($container, $serviceId, $class, $defaultPriorityMethod, $tagName);
}
$priority = $priority ?? $defaultPriority ?? $defaultPriority = 0;
if (null === $indexAttribute && !$needsIndexes) {
- $services[] = [$priority, ++$i, null, $serviceId];
+ $services[] = [$priority, ++$i, null, $serviceId, null];
continue 2;
}
if (null !== $indexAttribute && isset($attribute[$indexAttribute])) {
$index = $attribute[$indexAttribute];
- } elseif (null === $defaultIndex && $defaultIndexMethod) {
- $defaultIndex = PriorityTaggedServiceUtil::getDefaultIndex($container, $serviceId, $defaultIndexMethod, $tagName, $indexAttribute);
+ } elseif (null === $defaultIndex && $defaultIndexMethod && $class) {
+ $defaultIndex = PriorityTaggedServiceUtil::getDefaultIndex($container, $serviceId, $class, $defaultIndexMethod, $tagName, $indexAttribute);
}
$index = $index ?? $defaultIndex ?? $defaultIndex = $serviceId;
- $services[] = [$priority, ++$i, $index, $serviceId];
+ $services[] = [$priority, ++$i, $index, $serviceId, $class];
}
}
uasort($services, static function ($a, $b) { return $b[0] <=> $a[0] ?: $a[1] <=> $b[1]; });
$refs = [];
- foreach ($services as [, , $index, $serviceId]) {
+ foreach ($services as [, , $index, $serviceId, $class]) {
+ if (!$class) {
+ $reference = new Reference($serviceId);
+ } elseif ($index === $serviceId) {
+ $reference = new TypedReference($serviceId, $class);
+ } else {
+ $reference = new TypedReference($serviceId, $class, ContainerBuilder::EXCEPTION_ON_INVALID_REFERENCE, $index);
+ }
+
if (null === $index) {
- $refs[] = new Reference($serviceId);
+ $refs[] = $reference;
} else {
- $refs[$index] = new Reference($serviceId);
+ $refs[$index] = $reference;
}
}
@@ -105,11 +116,8 @@ class PriorityTaggedServiceUtil
/**
* Gets the index defined by the default index method.
*/
- public static function getDefaultIndex(ContainerBuilder $container, string $serviceId, string $defaultIndexMethod, string $tagName, string $indexAttribute): ?string
+ public static function getDefaultIndex(ContainerBuilder $container, string $serviceId, string $class, string $defaultIndexMethod, string $tagName, string $indexAttribute): ?string
{
- $class = $container->getDefinition($serviceId)->getClass();
- $class = $container->getParameterBag()->resolveValue($class) ?: null;
-
if (!($r = $container->getReflectionClass($class)) || !$r->hasMethod($defaultIndexMethod)) {
return null;
}
@@ -134,11 +142,8 @@ public static function getDefaultIndex(ContainerBuilder $container, string $serv
/**
* Gets the priority defined by the default priority method.
*/
- public static function getDefaultPriority(ContainerBuilder $container, string $serviceId, string $defaultPriorityMethod, string $tagName): ?int
+ public static function getDefaultPriority(ContainerBuilder $container, string $serviceId, string $class, string $defaultPriorityMethod, string $tagName): ?int
{
- $class = $container->getDefinition($serviceId)->getClass();
- $class = $container->getParameterBag()->resolveValue($class) ?: null;
-
if (!($r = $container->getReflectionClass($class)) || !$r->hasMethod($defaultPriorityMethod)) {
return null;
}
diff --git a/src/Symfony/Component/DependencyInjection/Tests/Compiler/PriorityTaggedServiceTraitTest.php b/src/Symfony/Component/DependencyInjection/Tests/Compiler/PriorityTaggedServiceTraitTest.php
index 25ac597844520..3feafac3d3230 100644
--- a/src/Symfony/Component/DependencyInjection/Tests/Compiler/PriorityTaggedServiceTraitTest.php
+++ b/src/Symfony/Component/DependencyInjection/Tests/Compiler/PriorityTaggedServiceTraitTest.php
@@ -17,6 +17,7 @@
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Reference;
use Symfony\Component\DependencyInjection\Tests\Fixtures\BarTagClass;
+use Symfony\Component\DependencyInjection\TypedReference;
class PriorityTaggedServiceTraitTest extends TestCase
{
@@ -122,10 +123,10 @@ public function testOnlyTheIndexedTagsAreListed()
$tag = new TaggedIteratorArgument('my_custom_tag', 'foo');
$expected = [
- 'bar_tag_class' => new Reference('service2'),
- 'b' => new Reference('service2'),
+ 'bar_tag_class' => new TypedReference('service2', BarTagClass::class),
+ 'b' => new TypedReference('service2', BarTagClass::class),
'bar' => new Reference('service1'),
- 'a' => new Reference('service2'),
+ 'a' => new TypedReference('service2', BarTagClass::class),
];
$services = $priorityTaggedServiceTraitImplementation->test($tag, $container);
$this->assertSame(array_keys($expected), array_keys($services));
diff --git a/src/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveTaggedIteratorArgumentPassTest.php b/src/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveTaggedIteratorArgumentPassTest.php
index 2a07f26178980..a62a585c6ef0c 100644
--- a/src/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveTaggedIteratorArgumentPassTest.php
+++ b/src/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveTaggedIteratorArgumentPassTest.php
@@ -16,6 +16,7 @@
use Symfony\Component\DependencyInjection\Compiler\ResolveTaggedIteratorArgumentPass;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Reference;
+use Symfony\Component\DependencyInjection\TypedReference;
/**
* @author Roland Franssen
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies:
diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.de.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.de.xlf
index a546b86c78a9b..c5d1fe0cf1981 100644
--- a/src/Symfony/Component/Validator/Resources/translations/validators.de.xlf
+++ b/src/Symfony/Component/Validator/Resources/translations/validators.de.xlf
@@ -374,6 +374,14 @@