--- a/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java Wed Sep 23 18:29:41 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java Wed Sep 23 18:48:13 2009 -0700
@@ -36,6 +36,7 @@
import com.sun.tools.javac.code.*;
import com.sun.tools.javac.code.Symbol.*;
import com.sun.tools.javac.code.Type.*;
+import com.sun.tools.javac.file.BaseFileObject;
import com.sun.tools.javac.util.*;
import static com.sun.tools.javac.code.BoundKind.*;
@@ -1685,13 +1686,8 @@
// the last possible moment because the sourcefile may be used
// elsewhere in error diagnostics. Fixes 4241573.
//databuf.appendChar(c.pool.put(c.sourcefile));
- String filename = c.sourcefile.toString();
- int sepIdx = filename.lastIndexOf(File.separatorChar);
- // Allow '/' as separator on all platforms, e.g., on Win32.
- int slashIdx = filename.lastIndexOf('/');
- if (slashIdx > sepIdx) sepIdx = slashIdx;
- if (sepIdx >= 0) filename = filename.substring(sepIdx + 1);
- databuf.appendChar(c.pool.put(names.fromString(filename)));
+ String simpleName = BaseFileObject.getSimpleName(c.sourcefile);
+ databuf.appendChar(c.pool.put(names.fromString(simpleName)));
endAttr(alenIdx);
acount++;
}