Make the sun class be loaded dynamically -- not statically -- and if
it is not present, just throw an UnsupportedOperationException? I
think that would solve Android's problem.

On Tue, Sep 6, 2011 at 8:36 AM, sebb <seb...@gmail.com> wrote:
> On 6 September 2011 05:44, David Karlsen <davidkarl...@gmail.com> wrote:
>> I think tying to sun classes is a bad idea.
>
> Yes, which is why the code checks to see if the class is present.
>
> If the Java 6 method is available, then it uses that, otherwise it
> checks for the Sun method.
> If neither is available, then the code throws an
> UnsupportedOperationException in the stripAccents() method.
>
>> Den 6. sep. 2011 05:54 skrev "sebb" <seb...@gmail.com> følgende:
>>> On 6 September 2011 04:33, Henri Yandell <flame...@gmail.com> wrote:
>>>> On Sat, Sep 3, 2011 at 8:10 AM, sebb <seb...@gmail.com> wrote:
>>>>> On 3 September 2011 05:37, Henri Yandell <flame...@gmail.com> wrote:
>>>>>> I'm less concerned with the 115 errors, unless they're all as grievous
>>>>>> as the StringUtils one - ie) the method causing trouble is not the
>>>>>> only one broken.
>>>>>>
>>>>>> If the error happened when calling stripAccents, that would be
>>>>>> workable; but having all of StringUtils unavailable is very painful.
>>>>>> One option would be to move the code out of the static initializer and
>>>>>> make it lazy when stripAccents is first called - leading to only
>>>>>> callers of stripAccents when the JDK 6 class is unavailable to suffer
>>>>>> pain.
>>>>>
>>>>> I thought we'd already fixed that by catching the extra Exception?
>>>>>
>>>>> I already suggested localising the error display to the stripAccents
>> method.
>>>>
>>>> Sorry - not operating at 100% last week.
>>>>
>>>>>> I thought we could simplify things by simply making the java6Available
>>>>>> flag be a real test for Java 6, but Android seems very weird there. Is
>>>>>> Android going to force us to stay on the EOL Java 5, or is it Java 6
>>>>>> compatible? IIUC it reports itself as 0.9, which we've declared as
>>>>>> equivalent to JDK 1.5.
>>>>>
>>>>> Are you sure that is the issue?
>>>>> Surely the Android problem is that we check for the sun class but
>>>>> don't handle all possible errors?
>>>>> So the class does not load; it cannot use the Java6 method even if it
>> exists.
>>>>
>>>> I'm very confused between Android and GAE :)
>>>>
>>>>>> That relates to another (simple) solution - move to Java 6 :)
>>>>>
>>>>> Or capture Exception for both the java6 and sun tests; report the
>>>>> exception(s) if neither is available when required.
>>>>
>>>> I like this. Capture the exception in the static initializer and then
>>>> throw a new runtime exception in stripAccents that refers to said
>>>> exception. Perhaps an IllegalStateException("blah", originalException)
>>>> ?
>>>
>>> It currently throws UnsupportedOperationException; I think we should
>>> keep that as it's more accurate.
>>>
>>> There will always be two Exceptions at that point (otherwise we must
>>> have Java 6 or Sun).
>>> We know we need to report the Sun Exception - is there any need to
>>> report the Java 6 exception?
>>> i.e. could we be running on Java 6 but still get an Exception?
>>>
>>> For completeness (and debugging) we should probably report both.
>>>
>>> Perhaps we could nest the exceptions.
>>>
>>>> Hen
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to