mirror of
https://github.com/openjdk/jdk.git
synced 2026-05-23 11:58:03 +00:00
6934615: Relative classpaths in jarfile manifests are handled inefficiently by rmic
Reviewed-by: darcy
This commit is contained in:
parent
235a3e379c
commit
d864e54627
@ -429,7 +429,7 @@ public class BatchEnvironment extends sun.tools.javac.BatchEnvironment {
|
||||
st.hasMoreTokens();) {
|
||||
String elt = st.nextToken();
|
||||
if (jarParent != null)
|
||||
elt = new File(jarParent, elt).toString();
|
||||
elt = new File(jarParent, elt).getCanonicalPath();
|
||||
addFile(elt, warn);
|
||||
}
|
||||
} finally {
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
|
||||
#!/bin/sh
|
||||
# @test
|
||||
# @bug 6473331
|
||||
# @bug 6473331 6485027 6934615
|
||||
# @summary Test handling of the Class-Path attribute in jar file manifests
|
||||
# for the rmic tool
|
||||
# @author Andrey Ozerov
|
||||
@ -65,26 +65,23 @@ EOF
|
||||
|
||||
Sys "$javac" pkg/A.java pkg/B.java
|
||||
|
||||
# NOTE: Certain lines below are commented out in order to work around
|
||||
# bug 6485027, with alternative lines added as part of the workaround
|
||||
# as indicated. In particular, the mutally referential JAR files are
|
||||
# placed in the same directory instead of different directories, and
|
||||
# javac is not expected to handle the extensions directories cases.
|
||||
# NOTE: Previously, some lines were commented out and alternative lines
|
||||
# provided, to work around javac bug 6485027. That bug, and related rmic
|
||||
# bug 6934615 have now been fixed, so most of the workarounds have been
|
||||
# removed. However, javac still does not evaluate jar class paths on
|
||||
# the bootclasspath, including -extdirs.
|
||||
|
||||
#MkManifestWithClassPath "sub/B.zip"
|
||||
MkManifestWithClassPath "B.zip" # 6485027 workaround
|
||||
MkManifestWithClassPath "sub/B.zip"
|
||||
Sys "$jar" cmf MANIFEST.MF A.jar pkg/A.class
|
||||
|
||||
#MkManifestWithClassPath "../A.jar"
|
||||
MkManifestWithClassPath "A.jar" # 6485027 workaround
|
||||
MkManifestWithClassPath "../A.jar"
|
||||
Sys "$jar" cmf MANIFEST.MF B.zip pkg/B.class
|
||||
|
||||
Sys rm -rf pkg
|
||||
Sys mkdir jars
|
||||
Sys mv A.jar jars/.
|
||||
#Sys mkdir jars/sub
|
||||
#Sys mv B.zip jars/sub/.
|
||||
Sys mv B.zip jars/. # 6485027 workaround
|
||||
Sys mkdir jars/sub
|
||||
Sys mv B.zip jars/sub/.
|
||||
|
||||
cat >MainI.java <<EOF
|
||||
import pkg.*;
|
||||
@ -121,26 +118,22 @@ Success "$java" -classpath "jars/A.jar${PS}." Main
|
||||
|
||||
Sys rm -f Main.class MainI.class Main_Stub.class
|
||||
|
||||
#Success "$javac" -classpath "jars/sub/B.zip" Main.java MainI.java
|
||||
#Success "$rmic" -classpath "jars/sub/B.zip${PS}." Main
|
||||
#Success "$java" -classpath "jars/sub/B.zip${PS}." Main
|
||||
Success "$javac" -classpath "jars/B.zip" \
|
||||
Main.java MainI.java # 6485027 workaround
|
||||
Success "$rmic" -classpath "jars/B.zip${PS}." Main # 6485027 workaround
|
||||
Success "$java" -classpath "jars/B.zip${PS}." Main # 6485027 workaround
|
||||
Success "$javac" -classpath "jars/sub/B.zip" Main.java MainI.java
|
||||
Success "$rmic" -classpath "jars/sub/B.zip${PS}." Main
|
||||
Success "$java" -classpath "jars/sub/B.zip${PS}." Main
|
||||
|
||||
#Sys rm -f Main.class MainI.class Main_Stub.class
|
||||
Sys rm -f Main_Stub.class # 6485027 workaround
|
||||
Sys rm -f Main_Stub.class # javac -extdirs workaround
|
||||
|
||||
#Success "$javac" -extdirs "jars" -classpath None Main.java MainI.java
|
||||
Success "$rmic" -extdirs "jars" -classpath . Main
|
||||
Success "$java" -Djava.ext.dirs="jars" -cp . Main
|
||||
|
||||
#Sys rm -f Main_Stub.class
|
||||
#
|
||||
Sys rm -f Main_Stub.class
|
||||
|
||||
#Success "$javac" -extdirs "jars/sub" -classpath None Main.java MainI.java
|
||||
#Success "$rmic" -extdirs "jars/sub" -classpath . Main
|
||||
#Success "$java" -Djava.ext.dirs="jars/sub" -cp . Main
|
||||
Success "$rmic" -extdirs "jars/sub" -classpath . Main
|
||||
Success "$java" -Djava.ext.dirs="jars/sub" -cp . Main
|
||||
|
||||
Cleanup
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user