Skip to content
  • Kategorien
  • Aktuell
  • Tags
  • Beliebt
  • Benutzer
  • Gruppen
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
MediathekView Logo

MediathekView-Forum

  1. Übersicht
  2. Fragen, Hilfe, Kritik
  3. MV13.3.0: Speichern unter Linux

MV13.3.0: Speichern unter Linux

Geplant Angeheftet Gesperrt Verschoben Fragen, Hilfe, Kritik
20 Beiträge 4 Kommentatoren 1.0k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • ? Offline
    ? Offline
    Ein ehemaliger Benutzer
    antwortete auf DerReisende77 am zuletzt editiert von Ein ehemaliger Benutzer
    #9

    @DerReisende77

    Ich hab mit dem Verfassen meines Posts vorhin so lange gebraucht, dass ich Deines zuerst übersehen hatte. War ggfs. zeitlich nah beieinander. Ich hab jedenfalls nochmal git pull gemacht und in MV13.3 die Wesentlichen Zeilen (LinkOption.NOFOLLOW_LINKS und logging) eingebaut. Zeilennummer in checkPathWriteable stimmt daher nicht ganz mit Deiner Datei zusammen… aber es kommt auch hier zu der exception (wie o.g. wirft bereits das Files.createDirectories(path); die Exception, also die Zeile vor der geänderten Zeile (Files.isDirectory(path, LinkOption.NOFOLLOW_LINKS))

    [ERROR] 2019-09-02 20:35:29.558 [AWT-EventQueue-0] mediathek.tool.GuiFunktionenProgramme - checkPathWritable()
    java.nio.file.FileAlreadyExistsException: /home/rubikon/Videos/Neulink
    at sun.nio.fs.UnixException.translateToIOException(UnixException.java:94) ~[?:?]
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) ~[?:?]
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116) ~[?:?]
    at sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:385) ~[?:?]
    at java.nio.file.Files.createDirectory(Files.java:689) ~[?:?]
    at java.nio.file.Files.createAndCheckIsDirectory(Files.java:796) ~[?:?]
    at java.nio.file.Files.createDirectories(Files.java:742) ~[?:?]
    at mediathek.tool.GuiFunktionenProgramme.checkPathWriteable(GuiFunktionenProgramme.java:370) ~[MediathekView.jar:?]

    ? 1 Antwort Letzte Antwort
    • ? Offline
      ? Offline
      Ein ehemaliger Benutzer
      antwortete auf Ein ehemaliger Benutzer am zuletzt editiert von Ein ehemaliger Benutzer
      #10

      Scheint’s ist das Phänomen seit Juli 2015 als Problem gemeldet, für Java 7. Allerdings wurde die Meldung als “Not an issue” bewertet und die Meldung als resolved markiert.

      https://bugs.openjdk.java.net/browse/JDK-8130464

      Also ich hab mal quick & dirty eine Version gebaut, in der ich mittels
      File.getCanonicalFile()
      die Exception in Files.createDirectories umgehe. Also erst den Pfad mit symlink auflösen zum canonical path - und auf diesen canonical path dann Files.createDirectories(canonicalPath) aufrufen.
      D.h. das obige Szenario mit dem sym link funzt mit dieser Version unter meiner Linux VM.

      Danke an Stackoverflow!
      https://stackoverflow.com/questions/813710/java-1-6-determine-symbolic-links

      Bitte nicht hauen, wenn der Vorschlag nicht gefällt. Ist nur so ein Gedanke… und mal wieder so ein Fall, wo man vom 100.ten ins 1000.te kommt vor lauter Spezialfällen

      D 1 Antwort Letzte Antwort
      • D Offline
        D Offline
        DerReisende77 Entwickler
        antwortete auf Ein ehemaliger Benutzer am zuletzt editiert von
        #11

        @rubikon und genau das ist mittlerweile das Problem mit Java. Funktionen gehen angeblich, dann stellt man fest daß sie auf einer Plattform nicht funktionieren, auf den anderen aber schon. Und beim Lösen von Bugs war Oracle teilweise sehr kreativ indem sie einfach ignoriert wurden. Und am Ende des Tages muss man spaghetti Code bauen der dann überall läuft.

        Kannst du für deine Änderungen einen Pull request erstellen? Dann schau ich sie mir an und würde die integrieren wenn es überall funktioniert

        Open source developers do NOT have to:

        • Make your issue a priority, just because you say so.
        • Give you any sort of "timetable", or explanation for why it´s "taking too long".

        Check your entitlement. Nobody owes you anything.

        ? 1 Antwort Letzte Antwort
        • ? Offline
          ? Offline
          Ein ehemaliger Benutzer
          antwortete auf DerReisende77 am zuletzt editiert von
          #12

          @DerReisende77 pull request schau ich mir heute Abend an, wie das geht. Ist aber eigentlich nur 1 Zeile Code.

          Was ich gestern Nacht noch gesehen habe: mit per mklink oder junction erstellten links funktioniert meine Methode unter einem …
          … ich traue mich nicht, es zu sagen…
          …vielseits beliebten amerikanischen Betriebssystem aufs erste Hinschaue nicht. Dort gibt’s scheint’s keinen Unterschied zwischen canonical path und absolute path, so wie unter zumindest Debian… seufz
          Aber immerhin würde Files.isSymbolikLink greifen. Muß mal nachdenken.

          D 1 Antwort Letzte Antwort
          • D Offline
            D Offline
            DerReisende77 Entwickler
            antwortete auf Ein ehemaliger Benutzer am zuletzt editiert von
            #13

            @rubikon man kann es auch ruhig Windoof nennen 😉 du kannst die Funktion komplett auch gerne hier rein Posten. Dann sparst du dir den LR Aufwand wenn es nicht zu viel ist.
            Aber es sollte schon auf allen Plattformen funktionieren 😉

            Open source developers do NOT have to:

            • Make your issue a priority, just because you say so.
            • Give you any sort of "timetable", or explanation for why it´s "taking too long".

            Check your entitlement. Nobody owes you anything.

            ? 1 Antwort Letzte Antwort
            • ? Offline
              ? Offline
              Ein ehemaliger Benutzer
              antwortete auf DerReisende77 am zuletzt editiert von
              #14

              @DerReisende77 Ich hab, parallel in Win10 und Debian testing im Wesentlichen mit einer 13.3.0 (master) gearbeitet, mit Ausnahme mediathek.tool.GuiFunktionenProgramme

              In der besagten Datei hab ich einiges aus develop genommen und selbst mal ein wenig gespielt.
              Ggfs. sind Ideen dabei, mit denen Du Dich anfreunden kannst.

              GuiFunktionenProgramme.checkPathWriteable.txt

              Also die Probleme, die ich hatte waren:

              • Weder Linux noch Windows mögen als Parameter für Files.createDirectories einen symlink, sh. oben.
              • Linux will für Files.createDirectories einen canonical path bei symlinks
              • Windows gibt für mklink/junction dasselbe Ergebnis für absoluteFile und canonicalFile
              • die Option LinkOption.NOFOLLOW_LINKS aus Files.isDirectory liefert false für Links, die auf ein Verzeichnis zeigen.

              Ich hab mir dann gedacht:
              Files.createDirectories besser nicht aufrufen, wenn isSymbolicLink true liefert.
              Files.createDirectories insgesamt nur dann aufrufen, wenn path weder auf ein Verzeichnis noch auf einen Link zeigt.

              Bei mir scheint’s zu laufen, aber ich hab aktuell die Option weg, einen Unterordner mit Thema anzulegen.

              D 1 Antwort Letzte Antwort
              • D Offline
                D Offline
                DerReisende77 Entwickler
                antwortete auf Ein ehemaliger Benutzer am zuletzt editiert von
                #15

                @rubikon Ich habe gerade eine andere Version im develop branch eingecheckt die bei meinen Tests funktioniert. Kannst Du das mal bitte ausprobieren?

                Open source developers do NOT have to:

                • Make your issue a priority, just because you say so.
                • Give you any sort of "timetable", or explanation for why it´s "taking too long".

                Check your entitlement. Nobody owes you anything.

                ? 1 Antwort Letzte Antwort
                • ? Offline
                  ? Offline
                  Ein ehemaliger Benutzer
                  antwortete auf DerReisende77 am zuletzt editiert von Ein ehemaliger Benutzer
                  #16

                  @DerReisende77 ja, mach ich.
                  Das, was im Moment eingecheckt ist, ist beweisbar eine Kontradiktion und kann nicht funktionieren:

                  bool ret = false; // Initialisierung
                  

                  ret wird aber auf keiner Stelle auf true gesetzt…

                  // die nicht auskommentiert ist. 
                  

                  Krieg ich aber hin, hoffe ich 🤡 - und dann meld ich mich. Danke schon mal!:thumbs_up:

                  D 1 Antwort Letzte Antwort
                  • D Offline
                    D Offline
                    DerReisende77 Entwickler
                    antwortete auf Ein ehemaliger Benutzer am zuletzt editiert von
                    #17

                    @rubikon das true kommt durch den temFile.delete wenn erfolgreich.

                    Open source developers do NOT have to:

                    • Make your issue a priority, just because you say so.
                    • Give you any sort of "timetable", or explanation for why it´s "taking too long".

                    Check your entitlement. Nobody owes you anything.

                    ? 1 Antwort Letzte Antwort
                    • ? Offline
                      ? Offline
                      Ein ehemaliger Benutzer
                      antwortete auf DerReisende77 am zuletzt editiert von Ein ehemaliger Benutzer
                      #18

                      @DerReisende77 oi,:face_screaming_in_fear: Sorry!:zipper-mouth_face:
                      Wo hatt ich denn da meine Augen beim Feixen! :confounded_face:
                      Na der :pistol: ging ja wohl nach hinten los 🙄 schäm
                      Ich gehör ins Bett, bin bratfertig 😵 :face_with_head-bandage: :pile_of_poo:

                      Jedenfalls:
                      In einer modifizierten 13.3.0 mit diesem Code für checkPathWriteable/checkPathWriteable2 aus der aktuellen develop nimmt der Dialog zum “Film Speichern unter” Verzeichnisse mit und ohne symlinks erfolgreich an. Unter Windows und Linux.
                      Wenn ich dagegen als “Verzeichnis” einen Symlink auf eine Datei eintippe, dann heißt es, völlig zurecht, “Pfad ist nicht beschreibbar”.

                      läuft.:thumbs_up:

                      D 1 Antwort Letzte Antwort
                      • D Offline
                        D Offline
                        DerReisende77 Entwickler
                        antwortete auf Ein ehemaliger Benutzer am zuletzt editiert von
                        #19

                        @rubikon gut dann mache ich das hübsch Räume auf und checke die Finalversion ein.

                        Open source developers do NOT have to:

                        • Make your issue a priority, just because you say so.
                        • Give you any sort of "timetable", or explanation for why it´s "taking too long".

                        Check your entitlement. Nobody owes you anything.

                        MenchenSuedM 1 Antwort Letzte Antwort
                        • MenchenSuedM Offline
                          MenchenSuedM Offline
                          MenchenSued Globaler Moderator
                          antwortete auf DerReisende77 am zuletzt editiert von
                          #20

                          @DerReisende77 sagte in MV13.3.0: Speichern unter Linux:

                          Ich habe gerade eine Änderung in den develop branch eingebracht. Dieser sollte das Problem beheben.

                          Sorry für die späte Rückmeldung. Ich habe die Problematik mit symbolischen Links noch mal im aktuellen Develop Branch getestet. Scheint jetzt fehlerfrei unter Linux zu laufen. Danke.


                          MediathekView 14.3.0 nightly (4.3.2025), Linux Mint 21.3, VLC 3.0.16

                          1 Antwort Letzte Antwort

                          40

                          Online

                          6.7k

                          Benutzer

                          6.2k

                          Themen

                          39.1k

                          Beiträge
                          • Anmelden

                          • Du hast noch kein Konto? Registrieren

                          • Anmelden oder registrieren, um zu suchen
                          • Erster Beitrag
                            Letzter Beitrag
                          0
                          • Kategorien
                          • Aktuell
                          • Tags
                          • Beliebt
                          • Benutzer
                          • Gruppen