Altinn / app-lib-dotnet

Libraries used in Altinn Apps
BSD 3-Clause "New" or "Revised" License
8 stars 10 forks source link

Lokaltest av skjema kræsjer dersom man trykker "enter" flere ganger etter hverandre i en textArea komponent #621

Closed lundjoakim closed 5 months ago

lundjoakim commented 5 months ago

Description of the bug

I lokaltest kræsjer skjema dersom man trykker "enter" flere ganger etter hverandre. Samme problem oppstår derimot ikke i tt02.

Her er en video av problemet i lokaltest: https://github.com/Altinn/app-frontend-react/assets/159779882/ac81161c-8598-4ecd-ae37-9244d5eca0e0

Her er repoet som ble testet i videoen: https://altinn.studio/repos/ssb/ra1100-01 (autoCreate må settes til "true")

Steps To Reproduce

  1. Last ned repo nevnt i beskrivelsen
  2. Sett autoCreate i applicationmetadata.json til "true"
  3. Kjør skjema lokalt
  4. på nesten hver eneste side i skjemaet er det en textArea komponent. Gå til en side med textArea, trykk deg inn i feltet og trykk på "enter" flere ganger etter hverandre.
  5. Resultat: skjemaet kræsjer

Additional Information

No response

olemartinorg commented 5 months ago

Fra datamodellen:

    [MaxLength(2000)]
    [XmlElement("kommOmsetning", Order = 1)]
    [JsonProperty("kommOmsetning")]
    [JsonPropertyName("kommOmsetning")]
    public string kommOmsetning { get; set; }

Så dette virker ikke relatert til de andre problemene vi kjenner til rundt XmlText(). Vi bør sjekke denne litt fra frontend-perspektivet, og dersom det er forventninger i JsonPatch som bryter sammen er dette da potensielt en backend-feil vi bør overføre dit (varsko til @ivarne).

ivarne commented 5 months ago

La til en test i https://github.com/Altinn/app-lib-dotnet/pull/590 som demonstrerer problemet. Ser ut til at XML deserialisering er ulikt på windows og Mac/linux. 🥳

ivarne commented 5 months ago

Flaks at denne gangen feiler det bare når backend kjører på windows, så brukere i produksjon slipper unna.

ivarne commented 5 months ago

Jeg har også en teori om at dette ble fikset i v8.1 av nuget pakkene Altinn.App.Core. Skal ta med dette i testingen av #590 for der kommer problemet tilbake🥶

RonnyB71 commented 5 months ago

Testet med v8.1.1 nå, det fungerte med en, men 3-4 linjeskift fungerer ikke.

Kan du også teste:

  1. Skriv noe tekst, trykk enter - gjenta noen ganger
  2. Trykk backspace, vent litt, trykk backspace igjen
  3. Observer at det feiler med ukjent feilf

Dette kan testes i appen RA0819-01 (ligger på Stian Vestli sin bruker) da det kan være avhengig av oppsettet på datamodellen.

StianVestli commented 5 months ago

https://altinn.studio/repos/stian.vestli/ra0819-01.git commit 90ef013a70bd52300ede938613edaf89232e6a99 så feiler det på tekstboksen på side 2

ivarne commented 5 months ago

@RonnyB71 klarer du åpne devtools og hente ut request og response for PATCH requestene?

ivarne commented 5 months ago

Takk til @RonnyB71 hjelp med windows debugging fant jeg ut at windows legger på \r\n på filer som blir lagret. Lurer på om det er mulig å konfigurerer bort

Screenshot 2024-05-03 at 10 52 21

ivarne commented 5 months ago

Fikk \r\n konfigurert bort i https://github.com/Altinn/app-lib-dotnet/pull/590/commits/e3930c4c01fac0d62926bb45fda2cd67f8b832b4 som er en del av #590.

Jeg valgte NewLineHandling.None i stedet for NewLineHandling.Entitize fordi det føltes som en mindre endring, og datamottak kan potensielt bruke en dårlig xml leser som ikke dekoder entiteter.