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 [email protected]
>>> .
>>> 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/CAN%3DyUA1VHvrdh1HhYgz%3DagXXT69%3De2d%2B1M3uFspw5ZR3tcyoTg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to