-
Bug
-
Resolution: Fixed
-
P2
-
7
-
b102
-
generic
-
generic
The fix for 6933622: Duplicate class files in rt.jar and charsets.jar
Changeset http://hg.openjdk.java.net/jdk7/tl/jdk/rev/848e69fcf2f3
Has regressed the control builds... more details...
This is a workaround fix, and a more permanent and correct fix will be to undo this workaround and do it right, but for now the control builds are broken and need to be restored.
-----------
email sent on this:
Looks like I need to undo the removal of the sun/nio/cs/ext classes from rt.jar
(they supposedly belonged in charsets.jar). Control builds of jdk7-tl are broken.
Apparently in the short time that they have been in jdk7 rt.jar, we seem to have
created a dependency on some of the sun/nio/cs/ext classes that we did not have before.
The build error happens when CreateSymbols is run during the jdk images creation,
missing class sun.nio.cs.ext.DoubleByte. When doing a control build, this is a run
of the bootstrap langtools javac.jar, and charsets.jar is not in the classpath.
The error looks like:
error: sun.nio.cs.ext.DoubleByte.Encoder: class file for sun.nio.cs.ext.DoubleByte not found
error: class file for sun.nio.cs.ext.DoubleByte not found 1 error
gmake[3]: *** [initial-image-jdk] Error 1
gmake[3]: Leaving directory `/tmp/jprt/P1/B/153854.ohair/source/jdk/make'
gmake[2]: *** [jdk-build] Error 2
A workaround fix is to reverse the change I made to explicitly exclude the sun/nio/cs/ext
classes from rt.jar:
---------------------
diff --git a/make/common/Release.gmk b/make/common/Release.gmk
--- a/make/common/Release.gmk
+++ b/make/common/Release.gmk
@@ -549,7 +549,6 @@
######################################################
# List of directories in classes directory that should NOT be in rt.jar
-# sun/nio/cs/ext/ will go into charsets.jar
######################################################
NOT_RT_JAR_LIST = $(ABS_TEMPDIR)/not_rt_jar.list
@@ -572,7 +571,6 @@
$(ECHO) "META-INF/services/com.sun.tools.xjc.Plugin" >> $@
$(ECHO) "com/sun/tools/" >> $@
$(ECHO) "sun/jvmstat/" >> $@
- $(ECHO) "sun/nio/cs/ext/" >> $@
$(ECHO) "sun/rmi/rmic/" >> $@
$(ECHO) "sun/tools/asm/" >> $@
$(ECHO) "sun/tools/java/" >> $@
-----------------------
I'm not exactly sure what the right fix is here, or if the real fix is to track down the
change that added in the new dependence and remove that dependence.
Any help anyone can provide, especially charsets.jar experts would be welcome.
Changeset http://hg.openjdk.java.net/jdk7/tl/jdk/rev/848e69fcf2f3
Has regressed the control builds... more details...
This is a workaround fix, and a more permanent and correct fix will be to undo this workaround and do it right, but for now the control builds are broken and need to be restored.
-----------
email sent on this:
Looks like I need to undo the removal of the sun/nio/cs/ext classes from rt.jar
(they supposedly belonged in charsets.jar). Control builds of jdk7-tl are broken.
Apparently in the short time that they have been in jdk7 rt.jar, we seem to have
created a dependency on some of the sun/nio/cs/ext classes that we did not have before.
The build error happens when CreateSymbols is run during the jdk images creation,
missing class sun.nio.cs.ext.DoubleByte. When doing a control build, this is a run
of the bootstrap langtools javac.jar, and charsets.jar is not in the classpath.
The error looks like:
error: sun.nio.cs.ext.DoubleByte.Encoder: class file for sun.nio.cs.ext.DoubleByte not found
error: class file for sun.nio.cs.ext.DoubleByte not found 1 error
gmake[3]: *** [initial-image-jdk] Error 1
gmake[3]: Leaving directory `/tmp/jprt/P1/B/153854.ohair/source/jdk/make'
gmake[2]: *** [jdk-build] Error 2
A workaround fix is to reverse the change I made to explicitly exclude the sun/nio/cs/ext
classes from rt.jar:
---------------------
diff --git a/make/common/Release.gmk b/make/common/Release.gmk
--- a/make/common/Release.gmk
+++ b/make/common/Release.gmk
@@ -549,7 +549,6 @@
######################################################
# List of directories in classes directory that should NOT be in rt.jar
-# sun/nio/cs/ext/ will go into charsets.jar
######################################################
NOT_RT_JAR_LIST = $(ABS_TEMPDIR)/not_rt_jar.list
@@ -572,7 +571,6 @@
$(ECHO) "META-INF/services/com.sun.tools.xjc.Plugin" >> $@
$(ECHO) "com/sun/tools/" >> $@
$(ECHO) "sun/jvmstat/" >> $@
- $(ECHO) "sun/nio/cs/ext/" >> $@
$(ECHO) "sun/rmi/rmic/" >> $@
$(ECHO) "sun/tools/asm/" >> $@
$(ECHO) "sun/tools/java/" >> $@
-----------------------
I'm not exactly sure what the right fix is here, or if the real fix is to track down the
change that added in the new dependence and remove that dependence.
Any help anyone can provide, especially charsets.jar experts would be welcome.
- relates to
-
JDK-6933622 Duplicate class files in rt.jar and charsets.jar
-
- Resolved
-
-
JDK-6964313 Find sun/nio/cs/ext issue with CreateSymbols, then move sun/nio/cs/ext to charsets.jar
-
- Resolved
-