And thanks for you help, got it working! Am Mittwoch, 21. Januar 2015 07:47:21 UTC+1 schrieb Frank Hossfeld: > > Arrrgh, you are right. It works well up to version 2.6.1. > > Am Mittwoch, 21. Januar 2015 01:26:22 UTC+1 schrieb Goktug Gokdogan: >> >> Here it is: >> >> https://code.google.com/p/mvp4g/source/browse/trunk/sources/src/test/java/com/google/gwt/dev/javac/typemodel/TypeOracleStub.java >> >> You always stub types with JGenericType; that is not correct. >> >> On Tue, Jan 20, 2015 at 4:22 PM, Goktug Gokdogan <[email protected]> >> wrote: >> >>> I'm not going to come Munich.. >>> >>> TypeOracle getJavaLangObject shouldn't return "java.lang.Object<>". From >>> the screenshots, it looks like your are using a stub implementation for >>> TypeOracle and that is probably doing the wrong thing. >>> >>> On Tue, Jan 20, 2015 at 3:34 PM, Frank Hossfeld < >>> [email protected]> wrote: >>> >>>> I have tried to create a JUnit test for the AssignabilityChecker class, >>>> but that's not so easy. So I run the test from the JUnit test provided by >>>> the mvp4g project. You can easily reproduce the error. Just check out the >>>> mvp4g code from trunk, delete the AssignabilityChecker class and run the >>>> method testPath method from ServiceAnnotationsLoaderTest. >>>> >>>> I am using the isAssignable method from AssignabilityChecker class. The >>>> value of the from parameter is something the SimpleService interface of >>>> mvp4g. The value of the to parameter is "java.lang.object". The >>>> "isAssignable" method calls "isAssignableFromRaw". >>>> >>>> The first thing this method does is to call "isJavaLangObject(to)". >>>> >>>> The code of the "isJavaLangObject" method looks like this: >>>> >>>> private static boolean isJavaLangObject(JClassType type) { >>>> return type == type.getOracle().getJavaLangObject(); >>>> } >>>> >>>> >>>> type.getOracle().getJavaLangObject() returns "java.lang.Object<>". If >>>> this is compared to the raw type "java.lang.Object" the compare will fail. >>>> I have added two Screenshots. p02.png will show the value as the >>>> isAssignableFromRaw is called and p03.png will show the value which is >>>> returned by the method getJavaLangObject. >>>> >>>> Will you be at the GWT.create in Munich? If yes, I can show you the >>>> problem. >>>> >>>> The screenshots can be downloaded here: >>>> >>>> http://www.hossfeld-solutions.de/downloads/p02.png >>>> http://www.hossfeld-solutions.de/downloads/p03.png >>>> >>>> >>>> Am Dienstag, 20. Januar 2015 21:53:03 UTC+1 schrieb Goktug Gokdogan: >>>>> >>>>> I tried to reproduce the problem in GWT. I added following to >>>>> JParameterizedTypeTest >>>>> assertType("Object").isAssignableFrom("List"); >>>>> assertType("Object").isAssignableFrom("Integer"); >>>>> >>>>> and both cases doesn't fail. >>>>> >>>>> I also don't understand what you mean about converting >>>>> java.lang.Object to raw type. java.lang.Object is not a generic type so >>>>> it >>>>> cannot have a raw type. >>>>> >>>>> Can you provide the exact types that your are passing or better >>>>> reproduce the problem in JParameterizedTypeTest so we can take a look at >>>>> the issue? >>>>> >>>>> >>>>> On Mon, Jan 19, 2015 at 2:07 AM, Frank Hossfeld < >>>>> [email protected]> wrote: >>>>> >>>>>> Please can you prove that it is a bug or am I doing something wrong? >>>>>> I make an update to the AssignabilityChecker (this time with less code >>>>>> changes). If it is a bug, the changes should solve it. >>>>>> >>>>>> Am Samstag, 17. Januar 2015 14:34:36 UTC+1 schrieb Frank Hossfeld: >>>>>> >>>>>>> It look like that there is a bug inside the AssignabilityChecker >>>>>>> class of GWT 2.7.0. >>>>>>> >>>>>>> If you use the method isAssignableFromRaw(JClassType from, >>>>>>> JClassType to) to check weather something is assignable to the „to“ >>>>>>> parameter or not, the method will always fail if the value of the >>>>>>> parameter >>>>>>> „to“ is „java.lang.object“. >>>>>>> >>>>>>> The first thing this method does is to check if the „to“-parameter >>>>>>> is the java.lang.object type. Therefor the method calls the method >>>>>>> „isJavaLangObject(JClassType type)“. This method compares parameter >>>>>>> type >>>>>>> with type.getOracle().getJavaLangObject(). But type.getOracle(). >>>>>>> getJavaLangObject() does not return a raw type. To solve this >>>>>>> problem, the value of type.getOracle().getJavaLangObject() must be >>>>>>> converted to a raw type. >>>>>>> >>>>>>> The method is used to times. Once it is called from >>>>>>> isAssignableFromGenericArrayType(JarrayType from, JClassType to), >>>>>>> where the method isJavaLangObject(to) will work correct The second call >>>>>>> is >>>>>>> the one from isAssignableFromRaw, where the compare will fail. >>>>>>> >>>>>>> To solve this problem, I have created a another method: >>>>>>> >>>>>>> *private static boolean isJavaLangObjectRawType(JClassType rawType) >>>>>>> {* >>>>>>> >>>>>>> * return rawType == >>>>>>> convertToRawIfGeneric(rawType.getOracle().getJvaLangObject());* >>>>>>> >>>>>>> *}* >>>>>>> >>>>>>> and call this method from isAssignableFromRaw. Using this patch, >>>>>>> everything works correct. >>>>>>> >>>>>>> To test this error, you can download the mvp4g framework (trunk) from >>>>>>> >>>>>>> *https://code.google.com/p/mvp4g/source/checkout >>>>>>> <https://code.google.com/p/mvp4g/source/checkout>* >>>>>>> >>>>>>> and run the method: >>>>>>> >>>>>>> *testGeneratedClass* >>>>>>> >>>>>>> from the class: >>>>>>> >>>>>>> >>>>>>> *com.mvp4g.rebind.config.loader.annotation.ServicesAnnotationsLoaderTest* >>>>>>> >>>>>>> I have created a patch and assigned it. Using the patch, the test >>>>>>> will behave in the same way as it does with GWT 2.6.1. >>>>>>> >>>>>>> Frank >>>>>>> >>>>>>> >>>>>>> >>>>>>> Enviorement: OS X 10.10.1, Java 1.7, IntelliJ Ultimate Editition >>>>>>> 14.0.2 >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "GWT Contributors" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to google-web-toolkit-contributors+unsubscribe@ >>>>>> googlegroups.com. >>>>>> To view this discussion on the web visit https://groups.google.com/d/ >>>>>> msgid/google-web-toolkit-contributors/3895a392-dd05- >>>>>> 4450-813e-eceaf447adea%40googlegroups.com >>>>>> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/3895a392-dd05-4450-813e-eceaf447adea%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> >>>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "GWT Contributors" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to >>>> [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/google-web-toolkit-contributors/fa42088b-e9ab-48dd-b252-618fee582a1a%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/fa42088b-e9ab-48dd-b252-618fee582a1a%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> >>
-- You received this message because you are subscribed to the Google Groups "GWT Contributors" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit-contributors/3f431175-f7e8-4e03-ab8f-47bd9c61b853%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
