Yes, please file a bug for that. If you can contribute the patch to gwt-code-reviews.appspot.com it'd be even better (see https://developers.google.com/web-toolkit/makinggwtbetter#contributingcode) As far as the patch goes, your processing loses the "most-to-least-derived type" ordering of the domainToClientType values that Deobfuscator#getClientProxies mandates. See http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/web/bindery/requestfactory/apt/TypeComparator.java for the ordering, to be ported to Class<?> (see http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/gwt/place/rebind/MostToLeastDerivedPlaceTypeComparator.java for an almost-equivalent)
On Wednesday, May 9, 2012 4:24:22 PM UTC+2, Alexandre Ardhuin wrote: > > Hi All, > > I have an application with 2 gwt modules. Each module uses its own > RequestFactory and its own Proxy for the same domain object (ie. 2 > RequestFactory with 2 differents Proxy on the same domain class). > The first RF call succeeds and following RF of the same type too but when > the other RF is used an exception occurs : > "The domain type Xxx cannot be sent to the client" > > After some tests, the problem occurs only for 2 RF. Having only one RF > with 2 Proxy on the same domain object works well. > > The problem seems to be in > com.google.web.bindery.requestfactory.vm.impl.Deobfuscator.Builder.merge(Deobfuscator). > > Doing the following modification resolves it. > > public Builder merge(Deobfuscator existing) { > + Set<String> domains = new HashSet<String>(); > + domains.addAll(d.domainToClientType.keySet()); > + domains.addAll(existing.domainToClientType.keySet()); > + for (String domain : domains) { > + Set<String> clientTypes = new HashSet<String>(); > + clientTypes.addAll(d.domainToClientType.get(domain)); > + clientTypes.addAll(existing.domainToClientType.get(domain)); > + d.domainToClientType.put(domain, Collections.unmodifiableList(new > ArrayList<String>(clientTypes))); > + } > - d.domainToClientType.putAll(existing.domainToClientType); > d.operationData.putAll(existing.operationData); > // referencedTypes recomputed in build() > d.typeTokens.putAll(existing.typeTokens); > return this; > } > > Can someone confirms this is a bug ? (I haven't found any issue on that) > > Alexandre > -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To view this discussion on the web visit https://groups.google.com/d/msg/google-web-toolkit/-/64utrsjDpFgJ. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.