ok, i found the problem and fixed it in restygwt:
https://github.com/pansen/resty-gwt/commit/d6f63d9146f407fd12e9f1ab4cfccfa0c7a2d154

if someone could help me with that
http://groups.google.com/group/google-web-toolkit/browse_thread/thread/e0f8392cf222a0ef
, i could finalize this in a smarter way.

cheers, andi

On 14 Jun., 20:55, pansen <[email protected]> wrote:
> thx juan, sorry for the noise. i found out 1 hour ago that the problem
> is with 99% percent probabilty related to restygwt. i'm happy i found
> this, now we'll see if i can fix it ;)
>
> keep you updated.
>
> cheers, andi
>
> On 14 Jun., 20:21, Juan Pablo Gardella <[email protected]>
> wrote:
>
>
>
>
>
>
>
> > Are you use third gwt libraries ? for example gin, etc.? What version of gwt
> > are you use?
>
> > 2011/6/14 pansen <[email protected]>
>
> > > hey guys,
>
> > > i think we have a massive problem with the generated js sources for
> > > production. we built a larger app and since now all worked like a
> > > charm, we had not a single stopper.
>
> > > at the moment there is a strange issue. when i use the static app it
> > > seems like there is a confusion about the generic-type or the content
> > > of it. let me first show you the gwttest i wrote to let you see what
> > > happens::
>
> > > package net.vz.common.widgets.client.profile.lastvisitors;
>
> > > import java.util.List;
> > > import java.util.logging.Logger;
>
> > > import net.vz.common.services.client.registry.Registry;
> > > import net.vz.common.services.client.restdto.GenericListDto;
> > > import net.vz.common.services.client.restdto.MinUserDto;
> > > import net.vz.common.services.client.restservice.UserService;
> > > import
> > > net.vz.common.services.client.resty.vzcore.SimpleMethodCallback;
> > > import net.vz.common.widgets.client.bundles.UnifiedResources;
> > > import net.vz.common.widgets.client.i18n.LocalMessages;
> > > import net.vz.common.widgets.client.listitem.GenericImageSlider;
> > > import net.vz.common.widgets.client.listitem.GenericList;
> > > import net.vz.common.widgets.client.listitem.renderer.MinUserRenderer;
> > > import
> > > net.vz.common.widgets.client.simpleItem.inject.SimpleItemModule;
> > > import net.vz.common.widgets.client.toolbox.custompanels.ListPanel;
> > > import net.vz.common.widgets.client.toolbox.slideBar.SlideBarActivity;
> > > import net.vz.common.widgets.client.toolbox.slideBar.SlideBarView;
> > > import net.vz.common.widgets.client.toolbox.slideBar.SlideBarViewImpl;
>
> > > import org.fusesource.restygwt.client.Method;
>
> > > import com.google.gwt.core.client.GWT;
> > > import com.google.gwt.event.shared.SimpleEventBus;
> > > import com.google.gwt.junit.client.GWTTestCase;
> > > import com.google.gwt.user.client.ui.AcceptsOneWidget;
> > > import com.google.gwt.user.client.ui.SimplePanel;
>
> > > /**
> > >  * try to reconstruct a production bug which seems to be caused by
> > > wrong typing
> > >  * from gwt??!
> > >  *
> > >  * @author abalke
> > >  */
> > > public class ProfileLastVisitorsActivityTestGwt extends GWTTestCase {
>
> > >    private static final String userKey = "U:test_user";
>
> > >    @Override
> > >    public String getModuleName() {
> > >        return SimpleItemModule.MODULE_NAME;
> > >    }
>
> > >    public void testDo() {
> > >        LocalMessages localMessages = GWT.create(LocalMessages.class);
> > >        UnifiedResources unifiedResources = new UnifiedResources();
>
> > >        ListPanel ul = GWT.create(ListPanel.class);
> > >        SlideBarView sidebarView = GWT.create(SlideBarViewImpl.class);
> > >        SlideBarActivity slideBarActivity = new
> > > SlideBarActivity(sidebarView);
> > >        GenericList<MinUserDto> genericLinkList = new
> > > GenericList<MinUserDto>(unifiedResources);
> > >        GenericImageSlider<MinUserDto> slider = new
> > > GenericImageSlider<MinUserDto>(
> > >                ul, slideBarActivity, genericLinkList,
> > > unifiedResources);
>
> > >        ProfileLastVisitorsViewImpl__ view =
> > >            new ProfileLastVisitorsViewImpl__(localMessages);
> > >        UserService userService = GWT.create(UserService.class);
> > >        MinUserRenderer renderer = new MinUserRenderer();
>
> > >        AcceptsOneWidget panel = new SimplePanel();
> > >        SimpleEventBus eventBus = new SimpleEventBus();
> > >        ProfileLastVisitorsActivity a = new
> > > ProfileLastVisitorsActivity(
> > >                view, userService, slider, renderer) {
> > >            protected void loadLastVisitors(String userId) {
> > >                userService.getLastVisitors(userId, new
> > > SimpleMethodCallback<GenericListDto<MinUserDto>>() {
> > >                    @Override
> > >                    public void onSuccess(Method method,
> > > GenericListDto<MinUserDto> response) {
> > >                        List<MinUserDto> items = response.getItems();
> > >                        if (Registry.canLog()) {
>
> > > Logger.getLogger(ProfileLastVisitorsActivity.class.getName())
> > >                                .info("got a list of " +
> > > MinUserDto.class + ": " );
>
> > > Logger.getLogger(ProfileLastVisitorsActivity.class.getName())
> > >                                .info("... " + items.get(0));
> > >                        }
> > >                        slider.render(items);
>
> > > view.setLastVisitorsOverallCount(response.getCount());
> > >                        view.show(true);
>
> > >                        // in production, here is a wrong type
> > >                        assertEquals(MinUserDto.class,
> > > items.get(0).getClass());
> > >                        assertEquals(true,
> > > ((ProfileLastVisitorsViewImpl__)view).getShowState());
> > >                        finishTest();
> > >                    }
> > >                });
> > >            }
> > >        };
>
> > >        a.start(panel, eventBus);
>
> > >        // the widget wants only to be loaded when this is my user
> > >        Registry.MY_USER_ID = userKey;
>
> > >        assertEquals(false, view.getShowState());
> > >        a.update(userKey);
>
> > >        delayTestFinish(5 * 1000);
> > >    }
>
> > >    class ProfileLastVisitorsViewImpl__ extends
> > > ProfileLastVisitorsViewImpl {
>
> > >        private boolean isShown = false;
>
> > >        public ProfileLastVisitorsViewImpl__(LocalMessages
> > > localMessages) {
> > >            super(localMessages);
> > >        }
>
> > >        @Override
> > >        public void show(boolean b) {
> > >            isShown = b;
> > >            super.show(b);
> > >        }
>
> > >        public boolean getShowState() {
> > >            return isShown;
> > >        }
> > >    }
> > > }
>
> > > in production mode (static compile) i see in the logs that there is a
> > > list of type ``A`` containing the first element of type ``B`` on this
> > > place, which is overridden in the test above::
>
> > >    protected void loadLastVisitors(String userId) {
> > >        userService.getLastVisitors(userId, new
> > > SimpleMethodCallback<GenericListDto<MinUserDto>>() {
> > >            @Override
> > >            public void onSuccess(Method method,
> > > GenericListDto<MinUserDto> response) {
> > >                List<MinUserDto> items = response.getItems();
> > >                if (Registry.canLog()) {
>
> > > Logger.getLogger(ProfileLastVisitorsActivity.class.getName())
> > >                        .info("should have a list of " +
> > > MinUserDto.class + ", first element is a: " +items.get(0));
> > >                }
> > >                slider.render(items);
> > >                view.setLastVisitorsOverallCount(response.getCount());
> > >                view.show(true);
> > >            }
> > >        });
> > >    }
>
> > > in result of that i get a classcastexception - but only in compiled
> > > production code. neither the integration-test, nor the hosted mode
> > > with exactly the same backend-responses fails.
>
> > > my question is now: have you ever seen an issue with type-confusion in
> > > a bigger context? what should i do to come to a result with this
> > > issue. if you tell me where to look in the compiled code i can try to
> > > reduce the setup.
>
> > > as a last option i only see to reduce my project to a minimum size
> > > where the error still occurs to send it to you and file a bug.
>
> > > any hints are greatly appreciated.
>
> > > andi
>
> > > --
> > > You received this message because you are subscribed to the Google Groups
> > > "Google Web Toolkit" group.
> > > To post to this group, send email to [email protected].
> > > To unsubscribe from this group, send email to
> > > [email protected].
> > > For more options, visit this group at
> > >http://groups.google.com/group/google-web-toolkit?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to