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] > <javascript:>> 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] <javascript:>> 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] >>> <javascript:>. >>> 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/bc0b2f9c-d319-482e-92ad-64ae1f7e6258%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
