weird production compile problem

2011-06-14 Thread pansen
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);
GenericListMinUserDto genericLinkList = new
GenericListMinUserDto(unifiedResources);
GenericImageSliderMinUserDto slider = new
GenericImageSliderMinUserDto(
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
SimpleMethodCallbackGenericListDtoMinUserDto() {
@Override
public void onSuccess(Method method,
GenericListDtoMinUserDto response) {
ListMinUserDto 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;

Re: weird production compile problem

2011-06-14 Thread pansen
the exception is::

java.lang.ClassCastException
at Unknown.com_google_gwt_core_client_impl_StackTraceCreator
$Collector_
$fillInStackTrace__Lcom_google_gwt_core_client_impl_StackTraceCreator
$Collector_2Ljava_lang_Throwable_2V(Unknown Source)
at
Unknown.java_lang_ClassCastException_ClassCastException__V(Unknown
Source)
at
Unknown.com_google_gwt_lang_Cast_dynamicCast__Ljava_lang_Object_2ILjava_lang_Object_2(Unknown
Source)
at
Unknown.net_vz_common_widgets_client_listitem_renderer_MinUserRenderer_render__Ljava_lang_Object_2ZLnet_vz_common_widgets_client_listitem_GenericList
$ImageSize_2Lnet_vz_common_widgets_client_bundles_UnifiedResources_2Lcom_google_gwt_user_client_ui_Widget_2(Unknown
Source)
at Unknown.net_vz_common_widgets_client_listitem_GenericList_
$addToList__Lnet_vz_common_widgets_client_listitem_GenericList_2Ljava_util_Collection_2Ljava_util_List_2(Unknown
Source)
at Unknown.anonymous(Unknown Source)
at
Unknown.net_vz_common_widgets_client_profile_lastvisitors_ProfileLastVisitorsActivity
$1_
$onSuccess__Lnet_vz_common_widgets_client_profile_lastvisitors_ProfileLastVisitorsActivity
$1_2Lorg_fusesource_restygwt_client_Method_2Lnet_vz_common_services_client_restdto_GenericListDto_2V(Unknown
Source)
at
Unknown.net_vz_common_widgets_client_profile_lastvisitors_ProfileLastVisitorsActivity
$1_onSuccess__Lorg_fusesource_restygwt_client_Method_2Ljava_lang_Object_2V(Unknown
Source)
at
Unknown.org_fusesource_restygwt_client_AbstractRequestCallback_onResponseReceived__Lcom_google_gwt_http_client_Request_2Lcom_google_gwt_http_client_Response_2V(Unknown
Source)
at
Unknown.org_fusesource_restygwt_client_callback_FilterawareRetryingCallback_onResponseReceived__Lcom_google_gwt_http_client_Request_2Lcom_google_gwt_http_client_Response_2V(Unknown
Source)
at Unknown.com_google_gwt_http_client_Request_
$fireOnResponseReceived__Lcom_google_gwt_http_client_Request_2Lcom_google_gwt_http_client_RequestCallback_2V(Unknown
Source)
at Unknown.com_google_gwt_http_client_RequestBuilder
$1_onReadyStateChange__Lcom_google_gwt_xhr_client_XMLHttpRequest_2V(Unknown
Source)
at Unknown.anonymous(Unknown Source)
at
Unknown.com_google_gwt_core_client_impl_Impl_apply__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2(Unknown
Source)
at
Unknown.com_google_gwt_core_client_impl_Impl_entry0__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2(Unknown
Source)
at Unknown.anonymous(Unknown Source)
at Unknown.anonymous(Unknown Source)
at Unknown.anonymous(Unknown Source)

On 14 Jun., 15:47, pansen andi.ba...@googlemail.com wrote:
 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 

Re: weird production compile problem

2011-06-14 Thread Juan Pablo Gardella
Are you use third gwt libraries ? for example gin, etc.? What version of gwt
are you use?

2011/6/14 pansen andi.ba...@googlemail.com

 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);
GenericListMinUserDto genericLinkList = new
 GenericListMinUserDto(unifiedResources);
GenericImageSliderMinUserDto slider = new
 GenericImageSliderMinUserDto(
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
 SimpleMethodCallbackGenericListDtoMinUserDto() {
@Override
public void onSuccess(Method method,
 GenericListDtoMinUserDto response) {
ListMinUserDto 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 

Re: weird production compile problem

2011-06-14 Thread pansen
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 gardellajuanpa...@gmail.com
wrote:
 Are you use third gwt libraries ? for example gin, etc.? What version of gwt
 are you use?

 2011/6/14 pansen andi.ba...@googlemail.com







  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);
         GenericListMinUserDto genericLinkList = new
  GenericListMinUserDto(unifiedResources);
         GenericImageSliderMinUserDto slider = new
  GenericImageSliderMinUserDto(
                 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
  SimpleMethodCallbackGenericListDtoMinUserDto() {
                     @Override
                     public void onSuccess(Method method,
  GenericListDtoMinUserDto response) {
                         ListMinUserDto 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();
                     }
                 });
             }
         };

         

Re: weird production compile problem

2011-06-14 Thread pansen
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 andi.ba...@googlemail.com 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 gardellajuanpa...@gmail.com
 wrote:







  Are you use third gwt libraries ? for example gin, etc.? What version of gwt
  are you use?

  2011/6/14 pansen andi.ba...@googlemail.com

   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);
          GenericListMinUserDto genericLinkList = new
   GenericListMinUserDto(unifiedResources);
          GenericImageSliderMinUserDto slider = new
   GenericImageSliderMinUserDto(
                  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
   SimpleMethodCallbackGenericListDtoMinUserDto() {
                      @Override
                      public void onSuccess(Method method,
   GenericListDtoMinUserDto response) {
                          ListMinUserDto 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);