karaf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Guillaume Nodet <gno...@apache.org>
Subject Re: Problems due to the endorsed java.lang.Exception
Date Fri, 18 Mar 2016 17:11:02 GMT
The getClassContext() method is used in pax-logging to render the exception
in a nicer way.
I don't have any problem moving the qualifier to protected or whatever, but
we'd need to change the code in pax-logging


https://github.com/ops4j/org.ops4j.pax.logging/blob/master/pax-logging-log4j2/src/main/java/org/apache/logging/log4j/core/impl/ThrowableProxy.java#L136-L144


https://github.com/ops4j/org.ops4j.pax.logging/blob/master/pax-logging-service/src/main/java/org/apache/log4j/OsgiThrowableRenderer.java#L62-L67

It should not be a big deal, but the current code expect the method to be
public unfortunately.

Guillaume


2016-03-18 17:29 GMT+01:00 Jean-Baptiste Onofré <jb@nanthrax.net>:

> Hi Cristiano,
>
> I think you are right, it's probably something existing for a while. I'm
> just surprised that you encountered now.
>
> Let me check your detailed use case that you sent previously.
>
> Regards
> JB
>
>
> On 03/18/2016 05:14 PM, Cristiano Costantini wrote:
>
>> Hello all,
>>
>> it is some days I was having troubles using CXF services on ServiceMix
>> (and
>> it is some days I spam on the mailing list of ServiceMix, Camel and CXF
>> :-D
>> ) and I've finally come to the source of my issues which are due to the
>> "endorsed" java.lang.Exception which is used by Karaf:
>>
>>
>> https://github.com/apache/karaf/blob/master/exception/src/main/java/java/lang/Exception.java
>>
>> My problem is due to the fact that this class has a public property,
>> public Class[] getClassContext() {
>>      return classContext;
>> }
>> which is seen by JaxB at runtime inside Karaf which cause it to marshall
>> the Exception in SOAP services with a wrong XML, an XML which include
>> <classContext> tags.
>>
>> The class in Karaf has not changed since committed by Guillaume Nodet in
>> 2010, so this issue with CXF has probably always been there.
>>
>> In my opinion, this getter should be private or protected as I guess it is
>> only used on the nested class method's getThrowableContext (it is a
>> replacement for the JRE's class, I don't think there are external project
>> using this modification of the Exception class).
>>
>>
>> To confirm my thesis, I've hacked the org.apache.karaf.exception-2.4.0.jar
>> inside the lib/endorsed folder with a class compiled by myself where I've
>> changed the method to
>> private Class[] getClassContext() {
>>      return classContext;
>> }
>> and with this hack, Karaf has continued to work (and my CXF service now
>> works properly).
>>
>> Do you think there are potential side effects in this fix?
>> Do you need me to open an issue on Jira to handle the problem?
>> If it is confirmed that the fix of making this method private, do you
>> think
>> it could be included soon on the next Karaf Release?
>>
>> Thank you very much to all,
>> Cristiano
>>
>>
> --
> Jean-Baptiste Onofré
> jbonofre@apache.org
> http://blog.nanthrax.net
> Talend - http://www.talend.com
>



-- 
------------------------
Guillaume Nodet
------------------------
Red Hat, Open Source Integration

Email: gnodet@redhat.com
Web: http://fusesource.com
Blog: http://gnodet.blogspot.com/

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message