[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wink-dev
Subject:    [jira] Created: (WINK-296) DEBUG -> TRACE logging reform
From:       "Jason Dillon (JIRA)" <jira () apache ! org>
Date:       2010-06-22 16:34:54
Message-ID: 28949117.15571277224494082.JavaMail.jira () thor
[Download RAW message or body]

DEBUG -> TRACE logging reform
-----------------------------

                 Key: WINK-296
                 URL: https://issues.apache.org/jira/browse/WINK-296
             Project: Wink
          Issue Type: Improvement
          Components: Common
    Affects Versions: 1.1.1
            Reporter: Jason Dillon


In general, Wink DEBUG logging is entirely too verbose and should be revisited to \
show the basic details when DEBUG is enabled and use TRACE for the full gory details \
which may be needed by a Wink developer to debug a problem.  DEBUG should be left \
more for Wink users who are trying to debug their application and how its integrating \
with Wink.

Perhaps you guys might also want to look at using org.slf4j.Marker's so that you can \
distinguish between internal and user logging events.  As I know that developers of \
Wink might think that all of the above is DEBUG, but for a user its really TRACE.  \
This way you can mark DEBUG or TRACE logs with an "INTERNAL" marker for the gory \
internals.

I'd also like to see the wire log in DEBUG, perhaps with a system property to flip it \
on off.  So by default maybe it doesn't show up in DEBUG, but if I set \
wink.wirelog.enable=true, then it will?

----

Looks like the logging format is better, though wink still logs way to much at DEBUG \
IMO.  For example, this looks more like TRACE logging to me:

{noformat}
jvm 1    | DEBUG [qtp1721336021-24] o.a.w.s.i.c.UriInfoImpl - getPathSegments(false) \
called jvm 1    | DEBUG [qtp1721336021-24] o.a.w.s.i.c.UriInfoImpl - getPath(false) \
called jvm 1    | DEBUG [qtp1721336021-24] o.a.w.s.i.c.UriInfoImpl - getPath(false) \
returning jobs jvm 1    | DEBUG [qtp1721336021-24] o.a.w.s.i.c.UriInfoImpl - \
getPathSegments(false) encoded path parameters are: [jobs] jvm 1    | DEBUG \
[qtp1721336021-24] o.a.w.s.i.c.UriInfoImpl - getPathSegments(false) returning [jobs] \
{noformat}

Also the PrivodersRegister logging is still *insane* IMO.

I think most of the DEBUG logging that is going on should really be TRACE logging.  \
For just one simple GET, with DEBUG enabled for org.apache.wink, this gets spat out:

{noformat}
jvm 1    | DEBUG [qtp1721336021-23] c.s.b.r.s.i.w.RestServlet - Processing: GET \
/rest/status (http://localhost:8080/rest/status) \
[client=0.1-SNAPSHOT;model=0.1-SNAPSHOT;id=a74c4a57-97d7-4ef6-9676-469db4b09d75] jvm \
1    | DEBUG [qtp1721336021-23] o.a.w.s.i.RequestProcessor - Retrieving request \
processor org.apache.wink.server.internal.RequestProcessor@6128453c using attribute \
name org.apache.wink.server.internal.RequestProcessor in servlet context \
ServletContext@6063f5af{/,file:/Users/jason/ws/sonatype/benson/target/benson-0.1-SNAPSHOT/runtime/apps/benson/webapps/benson/}
 jvm 1    | DEBUG [qtp1721336021-23] o.a.w.s.i.c.UriInfoImpl - getPath(false) called
jvm 1    | DEBUG [qtp1721336021-23] o.a.w.s.i.c.UriInfoImpl - buildRequestPath \
requestPath is: /rest/status jvm 1    | DEBUG [qtp1721336021-23] \
o.a.w.s.i.c.UriInfoImpl - buildRequestPath requestPath normalized is: /rest/status \
jvm 1    | DEBUG [qtp1721336021-23] o.a.w.s.i.c.UriInfoImpl - buildRequestPath after \
context path removed: /rest/status jvm 1    | DEBUG [qtp1721336021-23] \
o.a.w.s.i.c.UriInfoImpl - buildRequestPath isServlet: true jvm 1    | DEBUG \
[qtp1721336021-23] o.a.w.s.i.c.UriInfoImpl - buildRequestPath requestPath after \
servlet path removed: /status jvm 1    | DEBUG [qtp1721336021-23] \
o.a.w.s.i.c.UriInfoImpl - buildRequestPath returning requestPath: status jvm 1    | \
DEBUG [qtp1721336021-23] o.a.w.s.i.c.UriInfoImpl - getPath(false) returning status \
jvm 1    | DEBUG [qtp1721336021-23] o.a.w.s.i.c.HttpHeadersImpl - \
HttpServletRequest.getHeaders(Content-Type) returned [] so putting into headers cache \
jvm 1    | DEBUG [qtp1721336021-23] o.a.w.s.i.c.HttpHeadersImpl - \
getRequestHeaderInternal(Content-Type) returning [] jvm 1    | DEBUG \
[qtp1721336021-23] o.a.w.s.i.c.HttpHeadersImpl - getMediaType() returning null jvm 1  \
| DEBUG [qtp1721336021-23] o.a.w.s.i.RequestProcessor - Set message context and \
starting request handlers chain: Method: GET, Path: status, MediaType: null jvm 1    \
| DEBUG [qtp1721336021-23] o.a.w.s.h.AbstractHandlersChain - Invoking handler: \
org.apache.wink.server.internal.handlers.SearchResultHandler jvm 1    | DEBUG \
[qtp1721336021-23] o.a.w.s.h.AbstractHandlersChain - Invoking handler: \
org.apache.wink.server.internal.handlers.OptionsMethodHandler jvm 1    | DEBUG \
[qtp1721336021-23] o.a.w.s.h.AbstractHandlersChain - Invoking handler: \
org.apache.wink.server.internal.handlers.HeadMethodHandler jvm 1    | DEBUG \
[qtp1721336021-23] o.a.w.s.h.AbstractHandlersChain - Invoking handler: \
org.apache.wink.server.internal.handlers.FindRootResourceHandler jvm 1    | DEBUG \
[qtp1721336021-23] o.a.w.s.i.c.UriInfoImpl - getPathSegments(false) called jvm 1    | \
DEBUG [qtp1721336021-23] o.a.w.s.i.c.UriInfoImpl - getPath(false) called jvm 1    | \
DEBUG [qtp1721336021-23] o.a.w.s.i.c.UriInfoImpl - getPath(false) returning status \
jvm 1    | DEBUG [qtp1721336021-23] o.a.w.s.i.c.UriInfoImpl - getPathSegments(false) \
encoded path parameters are: [status] jvm 1    | DEBUG [qtp1721336021-23] \
o.a.w.s.i.c.UriInfoImpl - getPathSegments(false) returning [status] jvm 1    | DEBUG \
[qtp1721336021-23] o.a.w.s.i.h.FindRootResourceHandler - Getting URI Info path \
segments: [status] jvm 1    | DEBUG [qtp1721336021-23] \
o.a.w.s.i.h.FindRootResourceHandler - Getting stripped path from segments: status jvm \
1    | DEBUG [qtp1721336021-23] o.a.w.s.i.h.FindRootResourceHandler - Found resource \
instances: [ResourceRecord: Path: status; ClassMetadata: Class: class \
com.sonatype.benson.rest.api.status.StatusResource; UriTemplateMatcher: Parent: \
status; URI: status; Matcher: java.util.regex.Matcher[pattern=(\Qstatus\E)((?:/.*)?) \
region=0,6 lastmatch=status]; Matches: true] jvm 1    | DEBUG [qtp1721336021-23] \
o.a.w.s.i.c.UriInfoImpl - getPathSegments(false) called jvm 1    | DEBUG \
[qtp1721336021-23] o.a.w.s.i.c.UriInfoImpl - getPathSegments(false) returning \
[status] jvm 1    | DEBUG [qtp1721336021-23] o.a.w.s.i.h.FindRootResourceHandler - \
Using SearchResult: Found: false, Resource: null, Method: null, Error: null jvm 1    \
| DEBUG [qtp1721336021-23] o.a.w.s.h.AbstractHandlersChain - Invoking handler: \
org.apache.wink.server.internal.handlers.FindResourceMethodHandler jvm 1    | DEBUG \
[qtp1721336021-23] o.a.w.s.i.h.FindResourceMethodHandler - Root resource @Path \
matches exactly so finding root resource method in \
com.sonatype.benson.rest.api.status.StatusResource jvm 1    | DEBUG \
[qtp1721336021-23] o.a.w.s.i.c.UriInfoImpl - getQueryParameters(true) called jvm 1    \
| DEBUG [qtp1721336021-23] o.a.w.s.i.c.UriInfoImpl - getQueryParameters(true) query \
string is: null jvm 1    | DEBUG [qtp1721336021-23] o.a.w.s.i.c.UriInfoImpl - \
getQueryParameters(true) encoded query parameters are: [] jvm 1    | DEBUG \
[qtp1721336021-23] o.a.w.s.i.c.UriInfoImpl - getQueryParameters(true) returning [] \
jvm 1    | DEBUG [qtp1721336021-23] o.a.w.s.i.c.HttpHeadersImpl - alternateParameter \
is null jvm 1    | DEBUG [qtp1721336021-23] o.a.w.s.i.c.HttpHeadersImpl - \
HttpServletRequest.getHeaders(Accept) returned [application/xml] so putting into \
headers cache jvm 1    | DEBUG [qtp1721336021-23] o.a.w.s.i.c.HttpHeadersImpl - \
getRequestHeaderInternal(Accept) returning [application/xml] jvm 1    | DEBUG \
[qtp1721336021-23] o.a.w.s.i.c.HttpHeadersImpl - getRequestHeader(Accept) returns \
[application/xml] jvm 1    | DEBUG [qtp1721336021-23] o.a.w.s.i.c.HttpHeadersImpl - \
Accept header is: application/xml jvm 1    | DEBUG [qtp1721336021-23] \
o.a.w.s.i.c.HttpHeadersImpl - getAcceptHeader() returns application/xml jvm 1    | \
DEBUG [qtp1721336021-23] o.a.w.s.i.c.HttpHeadersImpl - getAcceptableMediaTypes() \
returns [application/xml] jvm 1    | DEBUG [qtp1721336021-23] \
o.a.w.s.i.c.HttpHeadersImpl - getRequestHeaderInternal(Content-Type) returning [] jvm \
1    | DEBUG [qtp1721336021-23] o.a.w.s.i.c.HttpHeadersImpl - getMediaType() \
returning null jvm 1    | DEBUG [qtp1721336021-23] o.a.w.s.i.c.HttpHeadersImpl - \
getAcceptableMediaTypes() returns [application/xml] jvm 1    | DEBUG \
[qtp1721336021-23] o.a.w.s.i.h.FindResourceMethodHandler - Found root resource method \
to invoke: MethodMetadata [[consumes=[], paths=[], produces=[]]formalParameters=[], \
httpMethod=GET, parent=Class: class \
com.sonatype.benson.rest.api.status.StatusResource, reflectionMethod=public \
javax.ws.rs.core.Response \
com.sonatype.benson.rest.api.status.StatusResource.getStatus()]  jvm 1    | DEBUG \
[qtp1721336021-23] o.a.w.s.h.AbstractHandlersChain - Invoking handler: \
org.apache.wink.server.internal.handlers.CreateInvocationParametersHandler jvm 1    | \
DEBUG [qtp1721336021-23] o.a.w.s.i.h.CreateInvocationParametersHandler - Formal \
Injectable parameters list is: [] jvm 1    | DEBUG [qtp1721336021-23] \
o.a.w.s.i.h.CreateInvocationParametersHandler - Actual parameters list to inject is: \
null jvm 1    | DEBUG [qtp1721336021-23] o.a.w.s.h.AbstractHandlersChain - Invoking \
handler: org.apache.wink.server.internal.handlers.InvokeMethodHandler jvm 1    | \
DEBUG [qtp1721336021-23] o.a.w.s.i.h.InvokeMethodHandler - Invoking method getStatus \
of declaring class com.sonatype.benson.rest.api.status.StatusResource on the instance \
of a class com.sonatype.benson.rest.api.status.StatusResource@ab14733 with parameters \
[] jvm 1    | DEBUG [qtp1721336021-23] c.s.b.r.a.s.StatusResource - Returning status
jvm 1    | DEBUG [qtp1721336021-23] o.a.w.s.i.c.UriInfoImpl - getPath(false) called
jvm 1    | DEBUG [qtp1721336021-23] o.a.w.s.i.c.UriInfoImpl - getPath(false) \
returning status jvm 1    | DEBUG [qtp1721336021-23] o.a.w.s.i.c.HttpHeadersImpl - \
getRequestHeaderInternal(Content-Type) returning [] jvm 1    | DEBUG \
[qtp1721336021-23] o.a.w.s.i.c.HttpHeadersImpl - getMediaType() returning null jvm 1  \
| DEBUG [qtp1721336021-23] o.a.w.s.i.RequestProcessor - Finished request handlers \
chain and starting response handlers chain: Method: GET, Path: status, MediaType: \
null jvm 1    | DEBUG [qtp1721336021-23] o.a.w.s.h.AbstractHandlersChain - Invoking \
handler: org.apache.wink.server.internal.handlers.PopulateResponseStatusHandler jvm 1 \
| DEBUG [qtp1721336021-23] o.a.w.s.h.AbstractHandlersChain - Invoking handler: \
org.apache.wink.server.internal.handlers.PopulateResponseMediaTypeHandler jvm 1    | \
DEBUG [qtp1721336021-23] o.a.w.s.i.h.PopulateResponseMediaTypeHandler - Determining \
Content-Type from @Produces on method: [application/json, application/xml] jvm 1    | \
DEBUG [qtp1721336021-23] o.a.w.s.i.c.HttpHeadersImpl - getAcceptableMediaTypes() \
returns [application/xml] jvm 1    | DEBUG [qtp1721336021-23] \
o.a.w.s.i.h.PopulateResponseMediaTypeHandler - Comparing application/xml to \
application/json jvm 1    | DEBUG [qtp1721336021-23] \
o.a.w.s.i.h.PopulateResponseMediaTypeHandler - Comparing application/xml to \
application/xml jvm 1    | DEBUG [qtp1721336021-23] \
o.a.w.s.i.h.PopulateResponseMediaTypeHandler - MediaType compatible so using \
candidate type application/xml jvm 1    | DEBUG [qtp1721336021-23] \
o.a.w.s.i.h.PopulateResponseMediaTypeHandler - Candidate application/xml has q value \
null so adding to possible candidates jvm 1    | DEBUG [qtp1721336021-23] \
o.a.w.s.i.h.PopulateResponseMediaTypeHandler - No previous best candidate so using \
candidate application/xml jvm 1    | DEBUG [qtp1721336021-23] \
o.a.w.s.i.h.PopulateResponseMediaTypeHandler - Response Content-Type will be set to \
application/xml jvm 1    | DEBUG [qtp1721336021-23] o.a.w.s.h.AbstractHandlersChain - \
Invoking handler: org.apache.wink.server.internal.handlers.FlushResultHandler jvm 1   \
| DEBUG [qtp1721336021-23] o.a.w.s.i.h.FlushResultHandler - Response status code set \
to: 200 jvm 1    | DEBUG [qtp1721336021-23] o.a.w.c.i.r.ProvidersRegistry - Getting \
MessageBodyWriter for class type class com.sonatype.benson.rest.model.Status, \
genericType class com.sonatype.benson.rest.model.Status, annotations \
[@javax.ws.rs.GET()], and media type application/xml jvm 1    | DEBUG \
[qtp1721336021-23] o.a.w.c.i.r.ProvidersRegistry - Getting providers by media type by \
calling getProvidersByMediaType(application/xml, class \
com.sonatype.benson.rest.model.Status) jvm 1    | DEBUG [qtp1721336021-23] \
o.a.w.c.i.r.ProvidersRegistry - Get media type to providers cache for media type \
application/xml resulted in [OFHolder [genericType=class java.lang.Object, \
mediaType=application/xml, of=Priority: 0.100000, ObjectFactory: \
org.apache.wink.guice.server.internal.lifecycle.GuiceInjectorLifeCycleManager$GuiceSingletonObjectFactory@561140db], \
OFHolder [genericType=class java.lang.Object, mediaType=application/xml, of=Priority: \
0.100000, ObjectFactory: \
org.apache.wink.guice.server.internal.lifecycle.GuiceInjectorLifeCycleManager$GuiceSingletonObjectFactory@531a700a], \
OFHolder [genericType=class java.lang.Object, mediaType=*/*, of=Priority: 0.100000, \
ObjectFactory: org.apache.wink.guice.server.internal.lifecycle.GuiceInjectorLifeCycleManager$GuiceSingletonObjectFactory@4df2a9da], \
OFHolder [genericType=class java.lang.Object, mediaType=*/*, of=Priority: 0.100000, \
ObjectFactory: org.apache.wink.guice.server.internal.lifecycle.GuiceInjectorLifeCycleManager$GuiceSingletonObjectFactory@561140db], \
OFHolder [genericType=class java.lang.Object, mediaType=*/*, of=Priority: 0.100000, \
ObjectFactory: org.apache.wink.guice.server.internal.lifecycle.GuiceInjectorLifeCycleManager$GuiceSingletonObjectFactory@531a700a]]
 jvm 1    | DEBUG [qtp1721336021-23] o.a.w.c.i.r.ProvidersRegistry - Found possible \
MessageBodyWriter ObjectFactories [OFHolder [genericType=class java.lang.Object, \
mediaType=application/xml, of=Priority: 0.100000, ObjectFactory: \
org.apache.wink.guice.server.internal.lifecycle.GuiceInjectorLifeCycleManager$GuiceSingletonObjectFactory@561140db], \
OFHolder [genericType=class java.lang.Object, mediaType=application/xml, of=Priority: \
0.100000, ObjectFactory: \
org.apache.wink.guice.server.internal.lifecycle.GuiceInjectorLifeCycleManager$GuiceSingletonObjectFactory@531a700a], \
OFHolder [genericType=class java.lang.Object, mediaType=*/*, of=Priority: 0.100000, \
ObjectFactory: org.apache.wink.guice.server.internal.lifecycle.GuiceInjectorLifeCycleManager$GuiceSingletonObjectFactory@4df2a9da], \
OFHolder [genericType=class java.lang.Object, mediaType=*/*, of=Priority: 0.100000, \
ObjectFactory: org.apache.wink.guice.server.internal.lifecycle.GuiceInjectorLifeCycleManager$GuiceSingletonObjectFactory@561140db], \
OFHolder [genericType=class java.lang.Object, mediaType=*/*, of=Priority: 0.100000, \
ObjectFactory: org.apache.wink.guice.server.internal.lifecycle.GuiceInjectorLifeCycleManager$GuiceSingletonObjectFactory@531a700a]]
 jvm 1    | DEBUG [qtp1721336021-23] o.a.w.c.i.r.ProvidersRegistry - Calling \
org.apache.wink.common.internal.providers.entity.xml.JAXBCollectionXmlProvider@9a303d3.isWriteable( \
class com.sonatype.benson.rest.model.Status, class \
com.sonatype.benson.rest.model.Status, [@javax.ws.rs.GET()], application/xml ) jvm 1  \
| DEBUG [qtp1721336021-23] o.a.w.c.i.r.ProvidersRegistry - Calling \
org.apache.wink.common.internal.providers.entity.xml.JAXBXmlProvider@14dd18cc.isWriteable( \
class com.sonatype.benson.rest.model.Status, class \
com.sonatype.benson.rest.model.Status, [@javax.ws.rs.GET()], application/xml ) jvm 1  \
| DEBUG [qtp1721336021-23] o.a.w.c.i.r.ProvidersRegistry - \
org.apache.wink.common.internal.providers.entity.xml.JAXBXmlProvider@14dd18cc.isWriteable( \
class com.sonatype.benson.rest.model.Status, class \
com.sonatype.benson.rest.model.Status, [@javax.ws.rs.GET()], application/xml ) \
returned true jvm 1    | DEBUG [qtp1721336021-23] o.a.w.s.i.h.FlushResultHandler - \
Serialization using provider \
org.apache.wink.common.internal.providers.entity.xml.JAXBXmlProvider jvm 1    | DEBUG \
[qtp1721336021-23] o.a.w.s.i.h.FlushResultHandler - \
org.apache.wink.common.internal.providers.entity.xml.JAXBXmlProvider@14dd18cc.getSize(com.sonatype.benson.rest.model.Status@7cb96ac0, \
class com.sonatype.benson.rest.model.Status, class \
com.sonatype.benson.rest.model.Status, [@javax.ws.rs.GET()], application/xml) \
returned -1 jvm 1    | DEBUG [qtp1721336021-23] o.a.w.s.i.h.FlushResultHandler - \
org.apache.wink.common.internal.providers.entity.xml.JAXBXmlProvider@14dd18cc.writeTo(com.sonatype.benson.rest.model.Status@7cb96ac0, \
class com.sonatype.benson.rest.model.Status, class \
com.sonatype.benson.rest.model.Status, [@javax.ws.rs.GET()], application/xml, \
CaseInsensitiveMultivaluedMap [map=[]], \
org.apache.wink.server.internal.handlers.FlushResultHandler$FlushHeadersOutputStream@39a4eb85) \
being called jvm 1    | DEBUG [qtp1721336021-23] \
o.a.w.s.i.c.ServerMediaTypeCharsetAdjuster - \
setDefaultCharsetOnMediaTypeHeader(CaseInsensitiveMultivaluedMap [map=[]], \
application/xml) entry jvm 1    | DEBUG [qtp1721336021-23] \
o.a.w.s.i.c.ServerMediaTypeCharsetAdjuster - No default charset was applied to the \
response Content-Type header due to deployment configuration directive. jvm 1    | \
DEBUG [qtp1721336021-23] o.a.w.s.i.c.ServerMediaTypeCharsetAdjuster - \
setDefaultCharsetOnMediaTypeHeader() exit returning application/xml jvm 1    | DEBUG \
[qtp1721336021-23] o.a.w.c.i.r.ProvidersRegistry - Getting ContextResolver for class \
javax.xml.bind.JAXBContext which has @Produces compatible with application/xml jvm 1  \
| DEBUG [qtp1721336021-23] o.a.w.c.i.r.ProvidersRegistry - ContextResolvers \
MediaTypeMap was empty so returning null jvm 1    | DEBUG [qtp1721336021-23] \
o.a.w.c.i.p.e.x.AbstractJAXBProvider - Marshaller obtained [from  pool] jvm 1    | \
DEBUG [qtp1721336021-23] o.a.w.c.u.ProviderUtils - getCharset(application/xml, null) \
jvm 1    | DEBUG [qtp1721336021-23] o.a.w.c.u.ProviderUtils - getCharset() returning \
UTF-8 since requestHeaders was null jvm 1    | DEBUG [qtp1721336021-23] \
o.a.w.c.i.r.ProvidersRegistry - Getting ContextResolver for class \
org.apache.wink.common.model.XmlFormattingOptions which has @Produces compatible with \
application/xml jvm 1    | DEBUG [qtp1721336021-23] o.a.w.c.i.r.ProvidersRegistry - \
ContextResolvers MediaTypeMap was empty so returning null jvm 1    | DEBUG \
[qtp1721336021-23] o.a.w.s.i.h.FlushResultHandler - Set response Content-Type to: \
application/xml  jvm 1    | DEBUG [qtp1721336021-23] o.a.w.s.i.MediaTypeMapper - Did \
not find a mapping record so returning original response media type: application/xml \
jvm 1    | DEBUG [qtp1721336021-23] o.a.w.s.i.h.FlushResultHandler - Flushing \
headers: CaseInsensitiveMultivaluedMap [map=[]] jvm 1    | DEBUG [qtp1721336021-23] \
o.a.w.c.i.p.e.x.AbstractJAXBProvider - Marshaller placed back into pool jvm 1    | \
DEBUG [qtp1721336021-23] o.a.w.s.i.h.FlushResultHandler - Flushing headers if not \
written jvm 1    | DEBUG [qtp1721336021-23] o.a.w.s.h.AbstractHandlersChain - \
Invoking handler: org.apache.wink.server.internal.handlers.HeadMethodHandler jvm 1    \
| DEBUG [qtp1721336021-23] o.a.w.s.i.RequestProcessor - Attempting to release \
resource instance jvm 1    | DEBUG [qtp1721336021-23] o.a.w.s.i.RequestProcessor - \
Releasing resource instance jvm 1    | DEBUG [qtp1721336021-23] \
o.a.w.s.i.RequestProcessor - Finished response handlers chain {noformat}

Its overwhelming.  What happened to the wire logging?  Is that TRACE?

Personally I think that Wink should consider using DEBUG for minimal-verbosity \
describing what is going on, what URI, what params, which resource was selected... I \
kinda think that the wire stuff should be in there too, and thats it.

I don't personally care how mediatypes are compared or selected, ie:

{noformat}
jvm 1    | DEBUG [qtp1721336021-23] o.a.w.s.i.h.PopulateResponseMediaTypeHandler - \
Comparing application/xml to application/json jvm 1    | DEBUG [qtp1721336021-23] \
o.a.w.s.i.h.PopulateResponseMediaTypeHandler - Comparing application/xml to \
application/xml jvm 1    | DEBUG [qtp1721336021-23] \
o.a.w.s.i.h.PopulateResponseMediaTypeHandler - MediaType compatible so using \
candidate type application/xml {noformat}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic