Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8166286

jmod fails on symlink to directory

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P3
    • 9
    • 9
    • tools
    • b144
    • Verified

    Description

      Given the following structure:

      $ find apa
      apa
      apa/lib
      apa/lib/baz
      apa/lib/foo
      apa/lib/foo/bar
      apa/classes/module-info.class

      Where baz is a symlink to foo:
      $ ls -l apa/lib
      total 8
      lrwxr-xr-x 1 erik staff 3 19 Sep 16:30 baz -> foo
      drwxr-xr-x 3 erik staff 102 19 Sep 16:26 foo

      Running jmod like this fails:
      jmod create --class-path apa/classes --libs apa/lib apa.jmod
      Error: Is a directory
      java.io.IOException: Is a directory
      at sun.nio.ch.FileDispatcherImpl.read0(java.base/Native Method)
      at sun.nio.ch.FileDispatcherImpl.read(java.base/FileDispatcherImpl.java:42)
      at sun.nio.ch.IOUtil.readIntoNativeBuffer(java.base/IOUtil.java:223)
      at sun.nio.ch.IOUtil.read(java.base/IOUtil.java:197)
      at sun.nio.ch.FileChannelImpl.read(java.base/FileChannelImpl.java:165)
      at sun.nio.ch.ChannelInputStream.read(java.base/ChannelInputStream.java:65)
      at sun.nio.ch.ChannelInputStream.read(java.base/ChannelInputStream.java:109)
      at sun.nio.ch.ChannelInputStream.read(java.base/ChannelInputStream.java:103)
      at java.io.InputStream.transferTo(java.base/InputStream.java:523)
      at jdk.tools.jmod.JmodTask$JmodFileWriter.writeZipEntry(jdk.jlink/JmodTask.java:705)
      at jdk.tools.jmod.JmodTask$JmodFileWriter$3.visitFile(jdk.jlink/JmodTask.java:676)
      at jdk.tools.jmod.JmodTask$JmodFileWriter$3.visitFile(jdk.jlink/JmodTask.java:663)
      at java.nio.file.Files.walkFileTree(java.base/Files.java:2695)
      at java.nio.file.Files.walkFileTree(java.base/Files.java:2767)
      at jdk.tools.jmod.JmodTask$JmodFileWriter.processSection(jdk.jlink/JmodTask.java:663)
      at jdk.tools.jmod.JmodTask$JmodFileWriter.processSection(jdk.jlink/JmodTask.java:655)
      at jdk.tools.jmod.JmodTask$JmodFileWriter.write(jdk.jlink/JmodTask.java:396)
      at jdk.tools.jmod.JmodTask.create(jdk.jlink/JmodTask.java:352)
      at jdk.tools.jmod.JmodTask.run(jdk.jlink/JmodTask.java:200)
      at jdk.tools.jmod.Main.main(jdk.jlink/Main.java:33)

      I have verified that it fails on the file apa/lib/baz specifically. For my repro, I just took module-info.class from java.base.

      Attachments

        Issue Links

          Activity

            People

              sundar Sundararajan Athijegannathan
              erikj Erik Joelsson
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: