/**
* The major version number of class files created
- * from scratch. The value is 47 (JDK 1.3).
+ * from scratch. The default value is 47 (JDK 1.3)
+ * or 49 (JDK 1.5) if the JVM supports <code>java.lang.StringBuilder</code>.
*/
- public static final int MAJOR_VERSION = JAVA_3;
+ public static int MAJOR_VERSION = JAVA_3;
+
+ static {
+ try {
+ Class.forName("java.lang.StringBuilder");
+ MAJOR_VERSION = JAVA_5;
+ }
+ catch (Throwable t) {}
+ }
/**
* Constructs a class file from a byte stream.
ByteArray.write16bit(name, dest, j + 4);
- if (type != 0)
- type = cp.copy(type, newCp, null);
+ if (type != 0) {
+ String sig = cp.getUtf8Info(type);
+ sig = Descriptor.rename(sig, classnames);
+ type = newCp.addUtf8Info(sig);
+ }
ByteArray.write16bit(type, dest, j + 6);
ByteArray.write16bit(index, dest, j + 8);