Revision: 10644
Author: cromwell...@google.com
Date: Tue Sep 13 11:22:30 2011
Log: When -XdisableClassMetadata is used, Class.getName() can return
Class$S<seedNumber> as a class name. However, there are other modes where
it can return Class$<obfuscated function name>. In some rare cases, these
two could collide of if an obfuscated name of a class ended up as something
like 'S123'. This patch changes the WebModeClientOracle to treat Class$S123
differently than 'S123' when deobfuscating class names.
Review at http://gwt-code-reviews.appspot.com/1540804
Review by: rj...@google.com
http://code.google.com/p/google-web-toolkit/source/detail?r=10644
Modified:
/trunk/user/src/com/google/gwt/rpc/server/WebModeClientOracle.java
=======================================
--- /trunk/user/src/com/google/gwt/rpc/server/WebModeClientOracle.java Thu
Jul 28 15:01:32 2011
+++ /trunk/user/src/com/google/gwt/rpc/server/WebModeClientOracle.java Tue
Sep 13 11:22:30 2011
@@ -383,12 +383,14 @@
@Override
public String getTypeName(String seedName) {
// TODO: Decide how to handle the no-metadata case
+ ClassData data = null;
if (seedName.startsWith("Class$")) {
seedName = seedName.substring(6);
- }
- ClassData data = seedNamesToClassData.get(seedName);
+ data = seedIdsToClassData.get(seedName);
+ }
+
if (data == null) {
- data = seedIdsToClassData.get(seedName);
+ data = seedNamesToClassData.get(seedName);
}
return data == null ? null : data.typeName;
}
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors