[BEAM-1045] IOChannelFactory: removes toPath() and resolve(), and rely on URI for paths resolving.#1412
[BEAM-1045] IOChannelFactory: removes toPath() and resolve(), and rely on URI for paths resolving.#1412peihe wants to merge 1 commit intoapache:masterfrom
Conversation
98ecce8 to
771a945
Compare
771a945 to
55d53f3
Compare
|
Refer to this link for build results (access rights to CI server needed): |
55d53f3 to
522d3ce
Compare
|
Refer to this link for build results (access rights to CI server needed): |
99a5de2 to
f055426
Compare
|
Refer to this link for build results (access rights to CI server needed): Build result: FAILURE[...truncated 10683 lines...][JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall@2/runners/spark/pom.xml to org.apache.beam/beam-runners-spark/0.4.0-incubating-SNAPSHOT/beam-runners-spark-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall@2/sdks/java/io/hdfs/pom.xml to org.apache.beam/beam-sdks-java-io-hdfs/0.4.0-incubating-SNAPSHOT/beam-sdks-java-io-hdfs-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall@2/sdks/java/maven-archetypes/pom.xml to org.apache.beam/beam-sdks-java-maven-archetypes-parent/0.4.0-incubating-SNAPSHOT/beam-sdks-java-maven-archetypes-parent-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall@2/runners/google-cloud-dataflow-java/dependency-reduced-pom.xml to org.apache.beam/beam-runners-google-cloud-dataflow-java/0.4.0-incubating-SNAPSHOT/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall@2/runners/google-cloud-dataflow-java/target/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT.jar to org.apache.beam/beam-runners-google-cloud-dataflow-java/0.4.0-incubating-SNAPSHOT/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall@2/runners/google-cloud-dataflow-java/target/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT-javadoc.jar to org.apache.beam/beam-runners-google-cloud-dataflow-java/0.4.0-incubating-SNAPSHOT/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT-javadoc.jar[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall@2/runners/google-cloud-dataflow-java/target/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT-sources.jar to org.apache.beam/beam-runners-google-cloud-dataflow-java/0.4.0-incubating-SNAPSHOT/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall@2/runners/google-cloud-dataflow-java/target/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT-test-sources.jar to org.apache.beam/beam-runners-google-cloud-dataflow-java/0.4.0-incubating-SNAPSHOT/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT-test-sources.jar[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall@2/runners/google-cloud-dataflow-java/target/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT-tests.jar to org.apache.beam/beam-runners-google-cloud-dataflow-java/0.4.0-incubating-SNAPSHOT/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT-tests.jar[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall@2/runners/apex/pom.xml to org.apache.beam/beam-runners-apex/0.4.0-incubating-SNAPSHOT/beam-runners-apex-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall@2/sdks/java/io/jms/pom.xml to org.apache.beam/beam-sdks-java-io-jms/0.4.0-incubating-SNAPSHOT/beam-sdks-java-io-jms-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall@2/runners/flink/pom.xml to org.apache.beam/beam-runners-flink-parent/0.4.0-incubating-SNAPSHOT/beam-runners-flink-parent-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall@2/sdks/java/io/mongodb/pom.xml to org.apache.beam/beam-sdks-java-io-mongodb/0.4.0-incubating-SNAPSHOT/beam-sdks-java-io-mongodb-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall@2/sdks/java/extensions/sorter/pom.xml to org.apache.beam/beam-sdks-java-extensions-sorter/0.4.0-incubating-SNAPSHOT/beam-sdks-java-extensions-sorter-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall@2/sdks/pom.xml to org.apache.beam/beam-sdks-parent/0.4.0-incubating-SNAPSHOT/beam-sdks-parent-0.4.0-incubating-SNAPSHOT.pomNo artifacts from beam_PreCommit_Java_MavenInstall » Apache Beam :: SDKs #5585 to compare, so performing full copy of artifacts[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall@2/sdks/java/extensions/join-library/pom.xml to org.apache.beam/beam-sdks-java-extensions-join-library/0.4.0-incubating-SNAPSHOT/beam-sdks-java-extensions-join-library-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall@2/runners/pom.xml to org.apache.beam/beam-runners-parent/0.4.0-incubating-SNAPSHOT/beam-runners-parent-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall@2/sdks/java/io/jdbc/pom.xml to org.apache.beam/beam-sdks-java-io-jdbc/0.4.0-incubating-SNAPSHOT/beam-sdks-java-io-jdbc-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall@2/sdks/java/extensions/pom.xml to org.apache.beam/beam-sdks-java-extensions-parent/0.4.0-incubating-SNAPSHOT/beam-sdks-java-extensions-parent-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall@2/examples/pom.xml to org.apache.beam/beam-examples-parent/0.4.0-incubating-SNAPSHOT/beam-examples-parent-0.4.0-incubating-SNAPSHOT.pomchannel stoppedSetting status of adb5283 to FAILURE with url https://builds.apache.org/job/beam_PreCommit_Java_MavenInstall/5583/ and message: 'Build finished. 'Using context: Jenkins: Maven clean install--none-- |
|
Refer to this link for build results (access rights to CI server needed): Build result: FAILURE[...truncated 10698 lines...][JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/sdks/java/io/hdfs/pom.xml to org.apache.beam/beam-sdks-java-io-hdfs/0.4.0-incubating-SNAPSHOT/beam-sdks-java-io-hdfs-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/sdks/java/maven-archetypes/pom.xml to org.apache.beam/beam-sdks-java-maven-archetypes-parent/0.4.0-incubating-SNAPSHOT/beam-sdks-java-maven-archetypes-parent-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/runners/google-cloud-dataflow-java/dependency-reduced-pom.xml to org.apache.beam/beam-runners-google-cloud-dataflow-java/0.4.0-incubating-SNAPSHOT/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/runners/google-cloud-dataflow-java/target/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT.jar to org.apache.beam/beam-runners-google-cloud-dataflow-java/0.4.0-incubating-SNAPSHOT/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/runners/google-cloud-dataflow-java/target/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT-javadoc.jar to org.apache.beam/beam-runners-google-cloud-dataflow-java/0.4.0-incubating-SNAPSHOT/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT-javadoc.jar[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/runners/google-cloud-dataflow-java/target/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT-sources.jar to org.apache.beam/beam-runners-google-cloud-dataflow-java/0.4.0-incubating-SNAPSHOT/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/runners/google-cloud-dataflow-java/target/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT-test-sources.jar to org.apache.beam/beam-runners-google-cloud-dataflow-java/0.4.0-incubating-SNAPSHOT/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT-test-sources.jar[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/runners/google-cloud-dataflow-java/target/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT-tests.jar to org.apache.beam/beam-runners-google-cloud-dataflow-java/0.4.0-incubating-SNAPSHOT/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT-tests.jar[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/runners/apex/pom.xml to org.apache.beam/beam-runners-apex/0.4.0-incubating-SNAPSHOT/beam-runners-apex-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/sdks/java/io/jms/pom.xml to org.apache.beam/beam-sdks-java-io-jms/0.4.0-incubating-SNAPSHOT/beam-sdks-java-io-jms-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/runners/flink/pom.xml to org.apache.beam/beam-runners-flink-parent/0.4.0-incubating-SNAPSHOT/beam-runners-flink-parent-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/sdks/java/io/mongodb/pom.xml to org.apache.beam/beam-sdks-java-io-mongodb/0.4.0-incubating-SNAPSHOT/beam-sdks-java-io-mongodb-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/sdks/java/extensions/sorter/pom.xml to org.apache.beam/beam-sdks-java-extensions-sorter/0.4.0-incubating-SNAPSHOT/beam-sdks-java-extensions-sorter-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/sdks/pom.xml to org.apache.beam/beam-sdks-parent/0.4.0-incubating-SNAPSHOT/beam-sdks-parent-0.4.0-incubating-SNAPSHOT.pomNo artifacts from beam_PreCommit_Java_MavenInstall » Apache Beam :: SDKs #5585 to compare, so performing full copy of artifacts[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/sdks/java/extensions/join-library/pom.xml to org.apache.beam/beam-sdks-java-extensions-join-library/0.4.0-incubating-SNAPSHOT/beam-sdks-java-extensions-join-library-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/runners/pom.xml to org.apache.beam/beam-runners-parent/0.4.0-incubating-SNAPSHOT/beam-runners-parent-0.4.0-incubating-SNAPSHOT.pomNo artifacts from beam_PreCommit_Java_MavenInstall » Apache Beam :: Runners #5585 to compare, so performing full copy of artifacts[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/sdks/java/io/jdbc/pom.xml to org.apache.beam/beam-sdks-java-io-jdbc/0.4.0-incubating-SNAPSHOT/beam-sdks-java-io-jdbc-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/sdks/java/extensions/pom.xml to org.apache.beam/beam-sdks-java-extensions-parent/0.4.0-incubating-SNAPSHOT/beam-sdks-java-extensions-parent-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/examples/pom.xml to org.apache.beam/beam-examples-parent/0.4.0-incubating-SNAPSHOT/beam-examples-parent-0.4.0-incubating-SNAPSHOT.pomchannel stoppedSetting status of 99a5de2 to FAILURE with url https://builds.apache.org/job/beam_PreCommit_Java_MavenInstall/5584/ and message: 'Build finished. 'Using context: Jenkins: Maven clean install--none-- |
|
Refer to this link for build results (access rights to CI server needed): Build result: FAILURE[...truncated 10693 lines...][JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/sdks/java/maven-archetypes/examples/pom.xml to org.apache.beam/beam-sdks-java-maven-archetypes-examples/0.4.0-incubating-SNAPSHOT/beam-sdks-java-maven-archetypes-examples-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/runners/spark/pom.xml to org.apache.beam/beam-runners-spark/0.4.0-incubating-SNAPSHOT/beam-runners-spark-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/sdks/java/io/hdfs/pom.xml to org.apache.beam/beam-sdks-java-io-hdfs/0.4.0-incubating-SNAPSHOT/beam-sdks-java-io-hdfs-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/sdks/java/maven-archetypes/pom.xml to org.apache.beam/beam-sdks-java-maven-archetypes-parent/0.4.0-incubating-SNAPSHOT/beam-sdks-java-maven-archetypes-parent-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/runners/google-cloud-dataflow-java/dependency-reduced-pom.xml to org.apache.beam/beam-runners-google-cloud-dataflow-java/0.4.0-incubating-SNAPSHOT/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/runners/google-cloud-dataflow-java/target/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT.jar to org.apache.beam/beam-runners-google-cloud-dataflow-java/0.4.0-incubating-SNAPSHOT/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT.jar[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/runners/google-cloud-dataflow-java/target/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT-javadoc.jar to org.apache.beam/beam-runners-google-cloud-dataflow-java/0.4.0-incubating-SNAPSHOT/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT-javadoc.jar[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/runners/google-cloud-dataflow-java/target/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT-sources.jar to org.apache.beam/beam-runners-google-cloud-dataflow-java/0.4.0-incubating-SNAPSHOT/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT-sources.jar[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/runners/google-cloud-dataflow-java/target/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT-test-sources.jar to org.apache.beam/beam-runners-google-cloud-dataflow-java/0.4.0-incubating-SNAPSHOT/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT-test-sources.jar[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/runners/google-cloud-dataflow-java/target/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT-tests.jar to org.apache.beam/beam-runners-google-cloud-dataflow-java/0.4.0-incubating-SNAPSHOT/beam-runners-google-cloud-dataflow-java-0.4.0-incubating-SNAPSHOT-tests.jar[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/runners/apex/pom.xml to org.apache.beam/beam-runners-apex/0.4.0-incubating-SNAPSHOT/beam-runners-apex-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/sdks/java/io/jms/pom.xml to org.apache.beam/beam-sdks-java-io-jms/0.4.0-incubating-SNAPSHOT/beam-sdks-java-io-jms-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/runners/flink/pom.xml to org.apache.beam/beam-runners-flink-parent/0.4.0-incubating-SNAPSHOT/beam-runners-flink-parent-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/sdks/java/io/mongodb/pom.xml to org.apache.beam/beam-sdks-java-io-mongodb/0.4.0-incubating-SNAPSHOT/beam-sdks-java-io-mongodb-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/sdks/java/extensions/sorter/pom.xml to org.apache.beam/beam-sdks-java-extensions-sorter/0.4.0-incubating-SNAPSHOT/beam-sdks-java-extensions-sorter-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/sdks/pom.xml to org.apache.beam/beam-sdks-parent/0.4.0-incubating-SNAPSHOT/beam-sdks-parent-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/sdks/java/extensions/join-library/pom.xml to org.apache.beam/beam-sdks-java-extensions-join-library/0.4.0-incubating-SNAPSHOT/beam-sdks-java-extensions-join-library-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/runners/pom.xml to org.apache.beam/beam-runners-parent/0.4.0-incubating-SNAPSHOT/beam-runners-parent-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/sdks/java/io/jdbc/pom.xml to org.apache.beam/beam-sdks-java-io-jdbc/0.4.0-incubating-SNAPSHOT/beam-sdks-java-io-jdbc-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/sdks/java/extensions/pom.xml to org.apache.beam/beam-sdks-java-extensions-parent/0.4.0-incubating-SNAPSHOT/beam-sdks-java-extensions-parent-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/examples/pom.xml to org.apache.beam/beam-examples-parent/0.4.0-incubating-SNAPSHOT/beam-examples-parent-0.4.0-incubating-SNAPSHOT.pomchannel stoppedSetting status of f055426 to FAILURE with url https://builds.apache.org/job/beam_PreCommit_Java_MavenInstall/5585/ and message: 'Build finished. 'Using context: Jenkins: Maven clean install--none-- |
f055426 to
3608afb
Compare
|
Refer to this link for build results (access rights to CI server needed): |
3608afb to
146b3a6
Compare
|
Refer to this link for build results (access rights to CI server needed): Build result: FAILURE[...truncated 6597 lines...]No artifacts from beam_PreCommit_Java_MavenInstall » Apache Beam :: Runners :: Google Cloud Dataflow #5595 to compare, so performing full copy of artifacts[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/runners/apex/pom.xml to org.apache.beam/beam-runners-apex/0.4.0-incubating-SNAPSHOT/beam-runners-apex-0.4.0-incubating-SNAPSHOT.pom[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/sdks/java/io/jms/pom.xml to org.apache.beam/beam-sdks-java-io-jms/0.4.0-incubating-SNAPSHOT/beam-sdks-java-io-jms-0.4.0-incubating-SNAPSHOT.pomNo artifacts from beam_PreCommit_Java_MavenInstall » Apache Beam :: SDKs :: Java :: IO :: JMS #5593 to compare, so performing full copy of artifacts[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/runners/flink/pom.xml to org.apache.beam/beam-runners-flink-parent/0.4.0-incubating-SNAPSHOT/beam-runners-flink-parent-0.4.0-incubating-SNAPSHOT.pomNo artifacts from beam_PreCommit_Java_MavenInstall » Apache Beam :: Runners :: Flink #5593 to compare, so performing full copy of artifacts[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/sdks/java/io/mongodb/pom.xml to org.apache.beam/beam-sdks-java-io-mongodb/0.4.0-incubating-SNAPSHOT/beam-sdks-java-io-mongodb-0.4.0-incubating-SNAPSHOT.pomNo artifacts from beam_PreCommit_Java_MavenInstall » Apache Beam :: SDKs :: Java :: IO :: MongoDB #5593 to compare, so performing full copy of artifacts[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/sdks/java/extensions/sorter/pom.xml to org.apache.beam/beam-sdks-java-extensions-sorter/0.4.0-incubating-SNAPSHOT/beam-sdks-java-extensions-sorter-0.4.0-incubating-SNAPSHOT.pomNo artifacts from beam_PreCommit_Java_MavenInstall » Apache Beam :: SDKs :: Java :: Extensions :: Sorter #5593 to compare, so performing full copy of artifacts[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/sdks/pom.xml to org.apache.beam/beam-sdks-parent/0.4.0-incubating-SNAPSHOT/beam-sdks-parent-0.4.0-incubating-SNAPSHOT.pomNo artifacts from beam_PreCommit_Java_MavenInstall » Apache Beam :: SDKs #5595 to compare, so performing full copy of artifacts[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/sdks/java/extensions/join-library/pom.xml to org.apache.beam/beam-sdks-java-extensions-join-library/0.4.0-incubating-SNAPSHOT/beam-sdks-java-extensions-join-library-0.4.0-incubating-SNAPSHOT.pomNo artifacts from beam_PreCommit_Java_MavenInstall » Apache Beam :: SDKs :: Java :: Extensions :: Join library #5593 to compare, so performing full copy of artifacts[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/runners/pom.xml to org.apache.beam/beam-runners-parent/0.4.0-incubating-SNAPSHOT/beam-runners-parent-0.4.0-incubating-SNAPSHOT.pomNo artifacts from beam_PreCommit_Java_MavenInstall » Apache Beam :: Runners #5595 to compare, so performing full copy of artifacts[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/sdks/java/io/jdbc/pom.xml to org.apache.beam/beam-sdks-java-io-jdbc/0.4.0-incubating-SNAPSHOT/beam-sdks-java-io-jdbc-0.4.0-incubating-SNAPSHOT.pomNo artifacts from beam_PreCommit_Java_MavenInstall » Apache Beam :: SDKs :: Java :: IO :: JDBC #5593 to compare, so performing full copy of artifacts[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/sdks/java/extensions/pom.xml to org.apache.beam/beam-sdks-java-extensions-parent/0.4.0-incubating-SNAPSHOT/beam-sdks-java-extensions-parent-0.4.0-incubating-SNAPSHOT.pomNo artifacts from beam_PreCommit_Java_MavenInstall » Apache Beam :: SDKs :: Java :: Extensions #5593 to compare, so performing full copy of artifacts[JENKINS] Archiving /home/jenkins/jenkins-slave/workspace/beam_PreCommit_Java_MavenInstall/examples/pom.xml to org.apache.beam/beam-examples-parent/0.4.0-incubating-SNAPSHOT/beam-examples-parent-0.4.0-incubating-SNAPSHOT.pomchannel stoppedSetting status of 146b3a6 to FAILURE with url https://builds.apache.org/job/beam_PreCommit_Java_MavenInstall/5594/ and message: 'Build finished. 'Using context: Jenkins: Maven clean install--none-- |
146b3a6 to
00c1353
Compare
|
Refer to this link for build results (access rights to CI server needed): |
00c1353 to
c76c777
Compare
|
Refer to this link for build results (access rights to CI server needed): |
jkff
left a comment
There was a problem hiding this comment.
Thanks and sorry for the delay!
| * absolute paths, then this method returns a path that starts with the last absolute path | ||
| * in {@code others} joined with the remaining paths. | ||
| */ | ||
| public static String resolveAgainstDirectory(String directory, String... others) { |
There was a problem hiding this comment.
Why the decision to make this class operate on String rather than URI?
There was a problem hiding this comment.
This function is to accommodate URI and Path resolves differently.
If the callers already have URIs, their uris should be constructed follow the URI spec (having "/" at the end for directories). Then, they can just use URI.resolve().
URI.create("/home/a").resolve("b").resolve("c").toString() is "/home/c". (Path will give "/home/a/b/c")
URI.create("/home/a/").resolve("b/").resolve("c").toString() is "/home/a/b/c".
There was a problem hiding this comment.
Oh, I see. However, it seems like an easy-to-misuse API: the new FileSystems API will be phrased in terms of URIs, and people will need to remember that despite that, URI.resolve() does the wrong thing, and they should use PathUtils.resolve() on uri.toString() instead. Is there any way to address this?
There was a problem hiding this comment.
I don't see other way.
I wouldn't say URI.resolve() does the wrong thing. People who uses URI.resolve() directly should understand that API. And, unit tests will catch the unexpected behavior easily.
This requirement is for library writers, and I think it is reasonable.
| * absolute paths, then this method returns a path that starts with the last absolute path | ||
| * in {@code others} joined with the remaining paths. | ||
| */ | ||
| public static String resolveAgainstDirectory(String directory, String... others) { |
There was a problem hiding this comment.
Why do you need "others" to be an array rather than a single element?
There was a problem hiding this comment.
I am following the previous pattern in IOChannelUtils.
Also, I think the client code is more readable when resolving multiple levels directories.
| } | ||
|
|
||
| /** | ||
| * Returns the directory portion of the {@code path}, which includes all but the file name. |
There was a problem hiding this comment.
Document what does this return if the path ends with a / ?
What does this return if this is a path something like "gs://bucket"?
What does this return for ".." or "." or "~" ? Are these even allowed?
etc.
In general, examples would be very helpful in docs to the methods of this whole class. There was a lot of ambiguity in docs of IOChannelUtils and since we're revamping the whole thing it'd be great to also do comments properly.
There was a problem hiding this comment.
Updated the javadoc, and simplified the implementation with URI.
| * or an empty {@code String} if this path is "/" or empty, | ||
| * or {@code null} if this path is {@code null}. | ||
| */ | ||
| public static String getFileName(String path) { |
|
|
||
| // Windows doesn't like resolving paths with * in them, so the * is appended after resolve. | ||
| assertThat(factory.match(factory.resolve(temporaryFolder.getRoot().getPath(), "b") + "*"), | ||
| // Windows doesn't like resolving paths with * in them, |
There was a problem hiding this comment.
Is this still true for the new implementation? (also in other places in this file)
| /** | ||
| * Unit tests for {@link PathUtils}. | ||
| */ | ||
| public class PathUtilsTest { |
There was a problem hiding this comment.
All tests here are for a local-file path. Add tests for GCS- or S3-like paths, with buckets and stuff?
Also, I think the path resolution functions should work on non-existing files too, so you don't need an actual TemporaryFolder, you can hard-code the path of a fictional folder ("/tmp/foo" for example). The tests will probably get much cleaner since you'll drop all those tmpFolder.getRoot().toPath() calls and so on.
There was a problem hiding this comment.
Please add more non-trivial examples - specifically for the cases where it would be non-trivial for a human to figure out what should be the right answer. Handling the common cases is easy; a big part of the job of a class for working with filenames is defining how the corner cases are handled, in a useful way.
| } | ||
|
|
||
| @Test | ||
| public void testResolveOtherIsFullPath() throws Exception { |
There was a problem hiding this comment.
By "Full" you mean "Absolute"?
|
Refer to this link for build results (access rights to CI server needed): |
2040311 to
f29cc78
Compare
|
Refer to this link for build results (access rights to CI server needed): |
|
PTAL |
| private static final String URI_DELIMITER = "/"; | ||
|
|
||
| /** | ||
| * Resolve multiple {@code others} against the {@code directory} sequentially. |
There was a problem hiding this comment.
Phrasing cleanup:
Resolves multiple path fragments against the given directory sequentially.
Unlike URI#resolve, this function appends relative path fragments rather than replaces them, e.g. (give example).
| * absolute paths, then this method returns a path that starts with the last absolute path | ||
| * in {@code others} joined with the remaining paths. | ||
| */ | ||
| public static String resolveAgainstDirectory(String directory, String... others) { |
There was a problem hiding this comment.
Oh, I see. However, it seems like an easy-to-misuse API: the new FileSystems API will be phrased in terms of URIs, and people will need to remember that despite that, URI.resolve() does the wrong thing, and they should use PathUtils.resolve() on uri.toString() instead. Is there any way to address this?
| * <p>Unlike {@link URI#resolve}, {@link #resolveAgainstDirectory} includes the last segment of | ||
| * the path. | ||
| * | ||
| * <p>Empty paths in {@code others} are ignored. If {@code others} contains one or more |
| } | ||
|
|
||
| private static String resolveAgainstDirectory(String directory, String other) { | ||
| if (Strings.isNullOrEmpty(other)) { |
| * | ||
| * @return a string representing the name of the file or directory, | ||
| * or an empty {@code String} if this path is "/" or empty, | ||
| * or {@code null} if this path is {@code null}. |
| * | ||
| * @return a string representing the directory portion of the {@code path}, | ||
| * or the {@code path} itself, if it is already a directory, | ||
| * or an empty {@link String}, if {@code path} is "~", ".", "..". |
There was a problem hiding this comment.
I did not mean to ask for specifically documenting ~, . and .. - I would like to see the documentation describe more concretely the general rule by which it operates in all such ambiguous cases, because these are not the only ambiguous cases. And illustrate the rule by examples.
E.g. what will it return for "gs://bucket"? For "gs://"? For "file:///" ? For "/foo//bar"? For "/foo/bar/../" ? For "/foo/bar/.."? For other cases I haven't thought of?
| * the root in the directory hierarchy. | ||
| * | ||
| * @return a string representing the name of the file or directory, | ||
| * or the {@code path} itself, if {@code path} is "~", ".", "..", |
There was a problem hiding this comment.
Same questions as to the previous method (ambiguities, disallowing nulls etc)
| * @return a string representing the name of the file or directory, | ||
| * or the {@code path} itself, if {@code path} is "~", ".", "..", | ||
| * or an empty {@link String} if this path is "/" or empty, | ||
| * or {@code null} if this path is {@code null}. |
There was a problem hiding this comment.
This comment about nulls is incorrect, the code throws on null.
| checkNotNull(path, "path"); | ||
| if (path.isEmpty() || path.equals(URI_DELIMITER)) { | ||
| return ""; | ||
| } else if (path.endsWith(URI_DELIMITER)) { |
There was a problem hiding this comment.
I really don't like this hand-crafted string manipulation - it looks naive, in the sense that there are probably corner cases it doesn't cover. Are there any utilities we can reuse?
| /** | ||
| * Unit tests for {@link PathUtils}. | ||
| */ | ||
| public class PathUtilsTest { |
There was a problem hiding this comment.
Please add more non-trivial examples - specifically for the cases where it would be non-trivial for a human to figure out what should be the right answer. Handling the common cases is easy; a big part of the job of a class for working with filenames is defining how the corner cases are handled, in a useful way.
f29cc78 to
4a9ca48
Compare
9d1d1e2 to
8daee59
Compare
|
Refer to this link for build results (access rights to CI server needed): |
|
Refer to this link for build results (access rights to CI server needed): |
8daee59 to
002a130
Compare
|
Refer to this link for build results (access rights to CI server needed): |
| } catch (IOException e) { | ||
| throw new RuntimeException(e); | ||
| } | ||
| URI baseOutputUri = URI.create(baseOutputFilename).normalize(); |
There was a problem hiding this comment.
- This fragment looks like something that should a single call to PathUtils - AFAIU the whole point of PathUtils is to free clients from this error-prone string and URI manipulation.
- I don't understand what's going on here in general:
** does URI.create() work for Windows paths (e.g. "c:\foo bar\blah")?
** What's the difference between baseOutputUri and pathUri?
** What does the self-relativize in "pathUri.resolve("").relativize(pathUri)" accomplish?
** Why do we hand-concatenate paths at line 332 instead of using .resolve()? - Line 323 says we shouldn't call Instant.now() inside .apply(), but at line 334 we're calling it - I'm surprised there's no test for that, can you add one?
There was a problem hiding this comment.
My worries about adding this logic to PathUtils is that people might misuse it.
I think PathUtils should only contain common URI manipulation. And, they need to be simple and easy to understand to avoid being misused.
The logic here is not simple, and the client should own it: understand the URI manipulation, and verify the code with sufficient tests.
- non-URI paths needs to be converted before reaching to here.
- pathUri doesn't contains scheme, authority, query and fragment.
- self-relativize is to get the last component of pathUri.
"/home/output" resolve("") returns "/home/"
"/home/" relativize("/home/output") returns "output" - line 332 is constructing the directory name. It is not path resolving (append /).
3.added test for now.
There was a problem hiding this comment.
1 - ok, I'm convinced.
- "non-URI paths need to be converted" - which code does that? In other words: does the current PR change user-facing behavior of FileBasedSink in a backward-incompatible way on Windows, i.e. will it break existing user pipelines? If yes, please fix that; if no, please explain why not, because if I'm understanding correctly the answer currently is yes.
On bullets 2,3 - please put them in comments in code - I asked about them because they are unclear from the code; and ideally they should be.
| * @throws IllegalArgumentException if others contains {@link URI} query or fragment components. | ||
| */ | ||
| public static String resolveAgainstDirectory( | ||
| @Nonnull String directory, @Nonnull String other, @Nonnull String... others) { |
There was a problem hiding this comment.
Annotating as Nonnull is unnecessary - everything is non-null unless annotated as Nullable. This is the style followed by the rest of Beam codebase.
|
|
||
| String path = directory.getPath(); | ||
| if (!Strings.isNullOrEmpty(directory.getAuthority()) && Strings.isNullOrEmpty(path)) { | ||
| // Workaround of [BEAM-1174]: path needs to be absolute if the authority exists. |
There was a problem hiding this comment.
Insert the full link https://issues.apache.org/jira/browse/BEAM-1174
| .apply("/home/output/"), | ||
| Matchers.startsWith("/home/output/temp-beam--")); | ||
|
|
||
| // Tests for Windows OS path in URI format. |
There was a problem hiding this comment.
What about Windows OS path in non-URI format: it's currently allowed.
There was a problem hiding this comment.
Currently, Windows OS paths in non-URI format don't work. It breaks when our code resolves *.
I would like FileBasedSource/Sink to use URI, and TextIO/AvroIO own the conversion from users string to URI.
For users' convenience, we can try converting Windows OS path to the URI format in TextIO/AvroIO for some common cases.
There was a problem hiding this comment.
By "currently" do you mean "at Beam HEAD", or "at the current PR"?
There was a problem hiding this comment.
I mean "at Beam HEAD", see https://issues.apache.org/jira/browse/BEAM-1045
This PR removes toPath() and resolve(). It fixed most of BEAM-1045. (still need to fix match())
I updated the PR title to refer to BEAM-1045
| public void testBuildTemporaryDirectoryName() { | ||
| // Tests for local files without the scheme. | ||
| assertThat( | ||
| new FileBasedWriteOperation.TemporaryDirectoryBuilder() |
There was a problem hiding this comment.
Extract new FileBasedWriteOperation.TemporaryDirectoryBuilder() into a local variable and reformat?
| assertThat( | ||
| new FileBasedWriteOperation.TemporaryDirectoryBuilder() | ||
| .apply("/home/output/"), | ||
| Matchers.startsWith("/home/output/temp-beam--")); |
There was a problem hiding this comment.
It might be good to special-case this case where there is no base filename, to avoid producing the confusing -- - it looks like a bug even though it isn't.
| // Tests absolute path. | ||
| assertEquals( | ||
| "/root/tmp/aa", | ||
| PathUtils.resolveAgainstDirectory("/root/tmp/aa", "/root/tmp/aa")); |
There was a problem hiding this comment.
Why is the original and resolved path the same?
There was a problem hiding this comment.
updated to different strings
| // Tests query and fragment. | ||
| assertEquals( | ||
| "file:/home/output/aa/bb", | ||
| PathUtils.resolveAgainstDirectory("file:/home/output?query#fragment", "aa", "bb")); |
There was a problem hiding this comment.
It seems like we're always dropping query and fragment. Why even allow them?
There was a problem hiding this comment.
resolve() in Path or URI do the same thing.
Also, I don't see reasons to disable query and fragment in TextIO.Write.to().
If we don't allow them in resolveAgainstDirectory(), then we have to explicitly drop them every time before invoking this method. It is not convenient, and could lead to unnecessary check fails.
There was a problem hiding this comment.
The reason to disallow query and fragment is that we're dropping them - if the user specifies them, they probably expect that we'll preserve this data, but we won't - dropping data should not be done silently.
There was a problem hiding this comment.
done
checked in resolveAgainstDirectory()
|
PTAL |
|
Refer to this link for build results (access rights to CI server needed): |
|
Refer to this link for build results (access rights to CI server needed): |
|
Is this ready for another round?... Please get Jenkins green. |
|
Refer to this link for build results (access rights to CI server needed): |
d31d588 to
b65d5b2
Compare
|
Refer to this link for build results (access rights to CI server needed): |
b65d5b2 to
2161f7d
Compare
|
Refer to this link for build results (access rights to CI server needed): |
cd59258 to
f11f9f8
Compare
|
Updated the PR, waiting for tests. |
|
Refer to this link for build results (access rights to CI server needed): |
|
Refer to this link for build results (access rights to CI server needed): |
|
I hit a issue of URI in my other PR. I will ping when it is ready for review. |
f11f9f8 to
6bef8dd
Compare
|
Refer to this link for build results (access rights to CI server needed): |
… on URI for paths resolving.
6bef8dd to
b7517bf
Compare
|
Refer to this link for build results (access rights to CI server needed): |
|
Close this PR, and resolve() is done in #1900 Thanks for Eugene for reviewing. Many of the feedback are adopted in the PR above. |
Be sure to do all of the following to help us incorporate your contribution
quickly and easily:
[BEAM-<Jira issue #>] Description of pull requestmvn clean verify. (Even better, enableTravis-CI on your fork and ensure the whole test matrix passes).
<Jira issue #>in the title with the actual Jira issuenumber, if there is one.
Individual Contributor License Agreement.
…o tighten the interface.