cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Serkan Taş <serkan_...@hotmail.com>
Subject Re: capitalization of chracters in turkish locale causes a problem of service creation
Date Fri, 23 Mar 2012 12:14:35 GMT
Hi,

You are completely right Aki. I am pretty sure with weblogic and Jaxb are the prefect samples
for the stutation and last night i added the eXist database to the list.

I am not going to discuss the political side of the defect :)

But it is needed to add another line also for lowercase.

"I".lowerCase() is equal "ı"

regards,

serkan


23 Mar 2012 tarihinde 11:41 saatinde, Aki Yoshida şunları yazdı:

> Hi,
> I was wondering f any complex java application can be running reliably
> on the Turkish locale. A while ago, I learned this Turkish locale
> problem and did a code scan on various libraries using toLowerCase().
> And there were quite a lot of them (even in JDK) using the default
> locale provided the input is a pure ascii Latin alphabet string.
> 
> I think it is unfortunate that the Turkish locale defines its own
> mapping within the ascii range instead of using higher range
> characters as the Greek locale does. But this is probably a political
> topic and does not belong to this mailing list. So, I will stop it
> here.
> 
> However, don't you think it is broken if the following assertion is
> not satisfied ?
> 
> assertEquals("i".toUpperCase().charAt(0),  Character.toUpperCase('i'));
> 
> regards, aki
> 
> 
> 
> 
> 2012/3/22 Daniel Kulp <dkulp@apache.org>:
>> 
>> Created:
>> 
>> https://issues.apache.org/jira/browse/XMLSCHEMA-22
>> 
>> to make sure it's not lost.
>> 
>> Dan
>> 
>> 
>> 
>> On Thursday, March 22, 2012 04:58:42 PM Daniel Kulp wrote:
>>> On Wednesday, March 21, 2012 12:15:28 PM Benson Margulies wrote:
>>>> This is clearly a bug, it shouldn't be using the thread default
>>>> locale. I'm not sure where the bug will turn out to be; it could be
>>>> JAXB.
>>> 
>>> No, this is in XmlSchema.  If you you look there in XmlSchemaForm, you
>>> see:
>>> 
>>> 
>>>     public static XmlSchemaForm schemaValueOf(String name) {
>>>         return EnumUtil.valueOf(XmlSchemaForm.class, name);
>>>     }
>>> 
>>> 
>>> and then in EnumUtil:
>>> 
>>>     static <T extends Enum<T>> T valueOf(Class<T> enumClass,
String name)
>>> { return Enum.valueOf(enumClass, name.toUpperCase());
>>>     }
>>> 
>>> 
>>> the toUpperCase call would use the local Local.   I wonder if that should
>>> be something more like:
>>> 
>>> .toUpperCase(Locale.ENGLISH);
>>> 
>>> to force english usage for that or just put a pure valueOf on
>>> XmlSchemaForm that handle the three values directly.
>>> 
>>> In anycase, a fix would need to be done down there.   Patches are welcome.
>>> :-)
>>> 
>>> Dan
>>> 
>>>> On Wed, Mar 21, 2012 at 10:42 AM, s t <serkan_tas@hotmail.com> wrote:
>>>>> Hi,
>>>>> while generating a service from a wsdl, we are facing to problem of
>>>>> having turkish locale. The generator capitalizes the variable
>>>>> class org.apache.ws.commons.schema.XmlSchemaForm.qualified
>>>>> as
>>>>> class org.apache.ws.commons.schema.XmlSchemaForm.QUALİFİED.
>>>>> I am not sure how i can solve the issue without changing the locale of
>>>>> whole VM. May be the root of the couse should be somewhere in schema
>>>>> parsing library of apache. You can find the details of the exception
>>>>> below.
>>>>> 
>>>>> 
>>>>> javax.management.RuntimeMBeanException:
>>>>> java.lang.IllegalArgumentException: No enum const class
>>>>> org.apache.ws.commons.schema.XmlSchemaForm.QUALİFİED      at
>>>>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.rethrow(DefaultM
>>>>> B
>>>>> eanServerInterceptor.java:856)      at
>>>>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.rethrowMaybeMBea
>>>>> n
>>>>> Exception(DefaultMBeanServerInterceptor.java:869)      at
>>>>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMB
>>>>> e
>>>>> anServerInterceptor.java:838)      at
>>>>> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
>>>>> 
>>>>>      at
>>>>> 
>>>>> javax.management.remote.generic.ServerIntermediary.handleRequest(Serve
>>>>> r
>>>>> Intermediary.java:280)      at
>>>>> javax.management.remote.generic.ServerIntermediary$PrivilegedRequestJo
>>>>> b
>>>>> .run(ServerIntermediary.java:951)      at
>>>>> java.security.AccessController.doPrivileged(Native Method)      at
>>>>> javax.management.remote.generic.ServerIntermediary$RequestHandler.hand
>>>>> l
>>>>> eMBSReqMessage(ServerIntermediary.java:727)      at
>>>>> javax.management.remote.generic.ServerIntermediary$RequestHandler.exec
>>>>> u
>>>>> te(ServerIntermediary.java:629)      at
>>>>> com.sun.jmx.remote.generic.ServerSynchroMessageConnectionImpl$RemoteJo
>>>>> b
>>>>> .run(ServerSynchroMessageConnectionImpl.java:266)      at
>>>>> com.sun.jmx.remote.opt.util.ThreadService$ThreadServiceJob.run(ThreadS
>>>>> e
>>>>> rvice.java:208)      at
>>>>> com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:59)Caused
>>>>> by: java.lang.IllegalArgumentException: No enum const class
>>>>> org.apache.ws.commons.schema.XmlSchemaForm.QUALİFİED      at
>>>>> java.lang.Enum.valueOf(Enum.java:196)      at
>>>>> org.apache.ws.commons.schema.EnumUtil.valueOf(EnumUtil.java:31)
>>>>> at
>>>>> org.apache.ws.commons.schema.XmlSchemaForm.schemaValueOf(XmlSchemaForm
>>>>> .
>>>>> java:32)      at
>>>>> org.apache.ws.commons.schema.SchemaBuilder.getFormDefault(SchemaBuilde
>>>>> r
>>>>> .java:181)      at
>>>>> org.apache.ws.commons.schema.SchemaBuilder.handleSchemaElementBasics(S
>>>>> c
>>>>> hemaBuilder.java:1489)      at
>>>>> org.apache.ws.commons.schema.SchemaBuilder.handleXmlSchemaElement(Sche
>>>>> m
>>>>> aBuilder.java:649)      at
>>>>> org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollect
>>>>> i
>>>>> on.java:542)      at
>>>>> org.apache.cxf.common.xmlschema.SchemaCollection.read(SchemaCollection
>>>>> .
>>>>> java:129)      at
>>>>> org.apache.cxf.wsdl11.SchemaUtil.extractSchema(SchemaUtil.java:133)
>>>>> 
>>>>>  at org.apache.cxf.wsdl11.SchemaUtil.getSchemas(SchemaUtil.java:73)
>>>>>  at org.apache.cxf.wsdl11.SchemaUtil.getSchemas(SchemaUtil.java:65)
>>>>>  at org.apache.cxf.wsdl11.SchemaUtil.getSchemas(SchemaUtil.java:60)
>>>>>  at
>>>>> 
>>>>> org.apache.cxf.wsdl11.WSDLServiceBuilder.getSchemas(WSDLServiceBuilder
>>>>> .
>>>>> java:372)      at
>>>>> org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuil
>>>>> d
>>>>> er.java:339)      at
>>>>> org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuil
>>>>> d
>>>>> er.java:196)      at
>>>>> org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuil
>>>>> d
>>>>> er.java:172)      at
>>>>> org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.jav
>>>>> a
>>>>> 
>>>>> :119)      at
>>>>> 
>>>>> org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(Dyna
>>>>> m
>>>>> icClientFactory.java:294)      at
>>>>> org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(Dyna
>>>>> m
>>>>> icClientFactory.java:234)      at
>>>>> org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(Dyna
>>>>> m
>>>>> icClientFactory.java:227)      at
>>>>> org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(Dyna
>>>>> m
>>>>> icClientFactory.java:182)      at
>>>>> com.likya.tlossw.jmx.beans.WebServiceOperator.getWsOperationList(WebSe
>>>>> r
>>>>> viceOperator.java:68)      at
>>>>> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)      at
>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.j
>>>>> a
>>>>> va:39)      at
>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccess
>>>>> o
>>>>> rImpl.java:25)      at
>>>>> java.lang.reflect.Method.invoke(Method.java:597)
>>>>> 
>>>>>      at
>>>>> 
>>>>> com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBe
>>>>> a
>>>>> nIntrospector.java:93)      at
>>>>> com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBe
>>>>> a
>>>>> nIntrospector.java:27)      at
>>>>> com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.ja
>>>>> v
>>>>> a:208)      at
>>>>> com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:120)
>>>>> 
>>>>>  at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:262)
>>>>> 
>>>>>      at
>>>>> 
>>>>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMB
>>>>> e
>>>>> anServerInterceptor.java:836)      ... 9 more
>> --
>> Daniel Kulp
>> dkulp@apache.org - http://dankulp.com/blog
>> Talend Community Coder - http://coders.talend.com
>> 
> 


Mime
View raw message