Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Brite
  • 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

  • Default (No Skin)
  • No Skin
Collapse
MediathekView Logo

MediathekView-Forum

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

MV13.3.0: Speichern unter Linux

Scheduled Pinned Locked Moved Fragen, Hilfe, Kritik
20 Posts 4 Posters 1.1k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ? A Former User

    @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:?]

    ? Offline
    ? Offline
    A Former User
    wrote on last edited by A Former User
    #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 Reply Last reply
    • ? A Former User

      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 Offline
      D Offline
      DerReisende77
      Entwickler
      wrote on last edited by
      #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 Reply Last reply
      • D DerReisende77

        @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

        ? Offline
        ? Offline
        A Former User
        wrote on last edited by
        #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 Reply Last reply
        • ? A Former User

          @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 Offline
          D Offline
          DerReisende77
          Entwickler
          wrote on last edited by
          #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 Reply Last reply
          • D DerReisende77

            @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 ;)

            ? Offline
            ? Offline
            A Former User
            wrote on last edited by
            #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 Reply Last reply
            • ? A Former User

              @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 Offline
              D Offline
              DerReisende77
              Entwickler
              wrote on last edited by
              #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 Reply Last reply
              • D DerReisende77

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

                ? Offline
                ? Offline
                A Former User
                wrote on last edited by A Former User
                #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 :clown_face: - und dann meld ich mich. Danke schon mal!:thumbs_up:

                D 1 Reply Last reply
                • ? A Former User

                  @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 :clown_face: - und dann meld ich mich. Danke schon mal!:thumbs_up:

                  D Offline
                  D Offline
                  DerReisende77
                  Entwickler
                  wrote on last edited by
                  #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 Reply Last reply
                  • D DerReisende77

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

                    ? Offline
                    ? Offline
                    A Former User
                    wrote on last edited by A Former User
                    #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 :face_with_rolling_eyes: schäm
                    Ich gehör ins Bett, bin bratfertig :dizzy_face: :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 Reply Last reply
                    • ? A Former User

                      @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 :face_with_rolling_eyes: schäm
                      Ich gehör ins Bett, bin bratfertig :dizzy_face: :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 Offline
                      D Offline
                      DerReisende77
                      Entwickler
                      wrote on last edited by
                      #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 Reply Last reply
                      • D DerReisende77

                        @MenchenSued Ich habe gerade eine Änderung in den develop branch eingebracht. Dieser sollte das Problem beheben. Falls es zu einem Fehler kommt, wird dieser in mediathekview.log (hoffentlich) als Fehler am Ende protokolliert von einer Funktion “checkPathWritable()”.
                        Könntest Du das evtl bei dir testen ob es funktioniert?

                        MenchenSuedM Offline
                        MenchenSuedM Offline
                        MenchenSued
                        Globaler Moderator
                        wrote on last edited by
                        #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.4.2, Linux Mint 21.3, VLC 3.0.16

                        1 Reply Last reply
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        22

                        Online

                        7.0k

                        Users

                        6.4k

                        Topics

                        40.9k

                        Posts
                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups