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

Fail to compile a java file: java.nio.file.ReadOnlyFileSystemExceptionat jdk.zipfs/jdk.nio.zipfs.ZipFileSystem.checkWritable(ZipFileSystem.java:370)

XMLWordPrintable

    • generic
    • generic

      ADDITIONAL SYSTEM INFORMATION :
      [OS] Darwin Xuan 22.1.0 Darwin Kernel Version 22.1.0: Sun Oct 9 20:14:54 PDT 2022; root:xnu-8792.41.9~2/RELEASE_X86_64 x86_64
      [java] javac --version
      javac 19.0.1

      A DESCRIPTION OF THE PROBLEM :
      Failed to compile a java file using javac 19.0.1 or javac 17.0.5, which can be compiled successfully previously in java 17.0.2.
      The arguments are:
      --class-path
      /Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-java-4.5.2-sources.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-devtools-v105-4.5.2.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-edge-driver-4.5.2.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/opentelemetry-api-logs-1.19.0-alpha.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-remote-driver-4.5.2-sources.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-devtools-v85-4.5.2-sources.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/jcommander-1.82.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-devtools-v104-4.5.2-sources.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/netty-buffer-4.1.84.Final.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/opentelemetry-sdk-trace-1.19.0.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/auto-service-annotations-1.0.1.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-support-4.5.2.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/checker-qual-3.12.0.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/opentelemetry-exporter-common-1.19.0.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/netty-transport-classes-kqueue-4.1.84.Final.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-devtools-v105-4.5.2-sources.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/error_prone_annotations-2.11.0.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/slf4j-api-2.0.3.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/netty-handler-4.1.84.Final.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-chrome-driver-4.5.2.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/opentelemetry-api-1.19.0.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/netty-transport-native-epoll-4.1.84.Final.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-devtools-v104-4.5.2.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/netty-transport-native-unix-common-4.1.84.Final.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/netty-resolver-4.1.84.Final.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-devtools-v106-4.5.2-sources.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/opentelemetry-exporter-logging-1.19.0.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/netty-codec-socks-4.1.84.Final.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/opentelemetry-context-1.19.0.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/async-http-client-netty-utils-2.12.3.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/failureaccess-1.0.1.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-chrome-driver-4.5.2-sources.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-edge-driver-4.5.2-sources.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-chromium-driver-4.5.2-sources.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/netty-transport-classes-epoll-4.1.84.Final.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/jakarta.activation-1.2.2.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-api-4.5.2.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/netty-common-4.1.84.Final.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/opentelemetry-sdk-metrics-1.19.0.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-firefox-driver-4.5.2-sources.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-chromium-driver-4.5.2.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-safari-driver-4.5.2-sources.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/opentelemetry-sdk-extension-autoconfigure-spi-1.19.0.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/netty-transport-4.1.84.Final.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-support-4.5.2-sources.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/netty-reactive-streams-2.0.4.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-java-4.5.2.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/netty-transport-native-kqueue-4.1.84.Final.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-json-4.5.2-sources.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/commons-exec-1.3.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-firefox-driver-4.5.2.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/opentelemetry-semconv-1.19.0-alpha.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/netty-codec-http-4.1.84.Final.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/jsoup-1.15.3.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/opentelemetry-sdk-1.19.0.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/j2objc-annotations-1.3.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/reactive-streams-1.0.4.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/async-http-client-2.12.3.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-http-4.5.2.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/auto-service-1.0.1.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/byte-buddy-1.12.18.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-devtools-v106-4.5.2.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-remote-driver-4.5.2.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/auto-common-1.2.1.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/netty-handler-proxy-4.1.84.Final.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-http-4.5.2-sources.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-json-4.5.2.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-devtools-v85-4.5.2.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/failsafe-3.3.0.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/guava-31.1-jre.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/opentelemetry-sdk-common-1.19.0.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-ie-driver-4.5.2-sources.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/jsr305-3.0.2.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-ie-driver-4.5.2.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/opentelemetry-sdk-extension-autoconfigure-1.19.0-alpha.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/netty-codec-4.1.84.Final.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-safari-driver-4.5.2.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/selenium-api-4.5.2-sources.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/jtoml-2.0.0.jar:/Users/chenxuan/IdeaProjects/Oct-26/lib/opentelemetry-sdk-logs-1.19.0-alpha.jar
      Downloader.java
      -Xlint

      REGRESSION : Last worked in version 17

      ACTUAL -
      An exception has occurred in the compiler (19.0.1). Please file a bug against the Java compiler via the Java bug reporting page (http://bugreport.java.com) after checking the Bug Database (http://bugs.java.com) for duplicates. Include your program, the following diagnostic, and the parameters passed to the Java compiler in your report. Thank you.
      java.nio.file.ReadOnlyFileSystemException
      at jdk.zipfs/jdk.nio.zipfs.ZipFileSystem.checkWritable(ZipFileSystem.java:370)
      at jdk.zipfs/jdk.nio.zipfs.ZipFileSystem.newOutputStream(ZipFileSystem.java:804)
      at jdk.zipfs/jdk.nio.zipfs.ZipPath.newOutputStream(ZipPath.java:911)
      at jdk.zipfs/jdk.nio.zipfs.ZipFileSystemProvider.newOutputStream(ZipFileSystemProvider.java:268)
      at java.base/java.nio.file.Files.newOutputStream(Files.java:228)
      at jdk.compiler/com.sun.tools.javac.file.PathFileObject.openOutputStream(PathFileObject.java:451)
      at jdk.compiler/com.sun.tools.javac.jvm.ClassWriter.writeClass(ClassWriter.java:1503)
      at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.genCode(JavaCompiler.java:738)
      at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1635)
      at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1603)
      at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:946)
      at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:317)
      at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:176)
      at jdk.compiler/com.sun.tools.javac.Main.compile(Main.java:64)
      at jdk.compiler/com.sun.tools.javac.Main.main(Main.java:50)

      ---------- BEGIN SOURCE ----------
      import org.openqa.selenium.Cookie;
      import org.openqa.selenium.chrome.ChromeDriver;
      import org.openqa.selenium.chrome.ChromeOptions;

      import java.io.*;
      import java.text.SimpleDateFormat;
      import java.time.Duration;
      import java.util.ArrayList;
      import java.util.Date;
      import java.util.Set;

      class StopIteration extends Exception {
          @Override
          public String getMessage() {
              return " --> 爬取的网页中不含有相关帖子";
          }
      }

      public class Downloader {
          public static final String INITIAL_PAGE = "https://s.weibo.com/";
          public static final String COOKIES = "cookies.txt";

          public static void main(String[] args) throws InterruptedException, IOException, ClassNotFoundException {
              String keyword = args[1];
              int year = Integer.parseInt(args[2]) + 1900;
              int month = Integer.parseInt(args[3]) - 1;
              int day = Integer.parseInt(args[4]);
              Date date = new Date(year, month, day);

              ArrayList<String> URLs = getURL(keyword, date, 15);
              getWebpages(keyword, URLs);
          }

          public static ArrayList<String> getURL(String keyword, Date startDate, int days) {
              StringBuilder stringBuilder = new StringBuilder();
              stringBuilder.append("https://s.weibo.com/weibo?q=").append(keyword);
              stringBuilder.append("&typeall=1&suball=1&timescope=custom%3A");

              SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd-HH");
              long time = startDate.getTime();
              Date date = new Date(time);

              int i = 0;
              ArrayList<String> arrayList = new ArrayList<>();
              while (i < days * 24) {
                  date.setTime(time + i * 3600000L);
                  String beginTime = simpleDateFormat.format(date);
                  date.setTime(time + ++i * 3600000L);
                  String endTime = simpleDateFormat.format(date);
                  String URL = stringBuilder + beginTime + "%3A" + endTime + "&Refer=g";
                  arrayList.add(URL);
              }
              return arrayList;
          }

          public static void getWebpages(String directoryName, ArrayList<String> URLs) throws IOException, InterruptedException, ClassNotFoundException {
              File file = new File(directoryName);
              System.out.println(file.mkdir());

              Spider spider = new Spider(3, true);
              spider.getPage(INITIAL_PAGE);
              System.out.println(" --> 等待登录...");
              Thread.sleep(15000);
              spider.loadCookies(COOKIES);
              spider.getPage(INITIAL_PAGE);
              Thread.sleep(10000);

              for (int i = 0, urLsSize = URLs.size(); i < urLsSize; i++) {
                  String URL = URLs.get(i);
                  try {
                      int page = 1;
                      while (page < 51) {
                          spider.writePage(URL, directoryName + "/" + i + "-" + page + ".html");
                          System.out.printf("%s Success!\n", i + "-" + page++);
                      }
                  } catch (StopIteration | IOException stopIteration) {
                      System.out.println(stopIteration.getMessage());
                  } catch (Exception exception) {
                      System.out.println(" --> 未知错误!");
                  }
              }
              spider.closeDriver();
              System.out.println("Done!");
          }
      }

      class Spider {
          private static ChromeDriver chromeDriver;

          public Spider() {
              chromeDriver = new ChromeDriver();
              chromeDriver.manage().timeouts().implicitlyWait(Duration.ofSeconds(3));
          }

          public Spider(int waitTime, boolean isHeadless) {
              ChromeOptions chromeOptions = new ChromeOptions();
              chromeOptions.setHeadless(isHeadless);
              chromeOptions.addArguments("--disable-gpu");
              chromeDriver = new ChromeDriver(chromeOptions);
              chromeDriver.manage().timeouts().implicitlyWait(Duration.ofSeconds(waitTime));
          }

          public void getPage(String url) {
              chromeDriver.get(url);
          }

          public void writePage(String url, String filename) throws IOException, StopIteration {
              getPage(url);
              String pageSource = chromeDriver.getPageSource();
              if (pageSource.contains("card card-no-result s-pt20b40")) {
                  throw new StopIteration();
              }
              try (FileWriter fileWriter = new FileWriter(filename)) {
                  fileWriter.write(pageSource);
              }
          }

          public void closeDriver() {
              chromeDriver.close();
          }

          public void writeCookies(String url, String filename) throws InterruptedException, IOException {
              chromeDriver.get(url);
              Thread.sleep(15000);
              Set<Cookie> cookies = chromeDriver.manage().getCookies();
              FileOutputStream fileOutputStream = new FileOutputStream(filename);
              ObjectOutputStream outputStream = new ObjectOutputStream(fileOutputStream);
              outputStream.writeObject(cookies);
          }

          public void loadCookies(String filename) throws IOException, ClassNotFoundException {
              FileInputStream fileInputStream = new FileInputStream(filename);
              ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
              Object readObject = objectInputStream.readObject();
              if (readObject instanceof Set<?> objects) {
                  objects.forEach(object -> chromeDriver.manage().addCookie((Cookie) object));
              }
          }
      }

      ---------- END SOURCE ----------

      FREQUENCY : always


            adev Anupam Dev
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: