[ 
https://issues.apache.org/jira/browse/CXF-8028?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Daniel Kulp reassigned CXF-8028:
--------------------------------

    Assignee: Daniel Kulp

> Performance problem with very big request 
> ------------------------------------------
>
>                 Key: CXF-8028
>                 URL: https://issues.apache.org/jira/browse/CXF-8028
>             Project: CXF
>          Issue Type: Bug
>          Components: Core, JAX-WS Runtime
>    Affects Versions: 3.3.0
>            Reporter: Gilles Diacon
>            Assignee: Daniel Kulp
>            Priority: Critical
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> I am using CXF as webservice client for years and since the migration of my 
> application from Java 8 to Java 11 I have noticed a performance degradation 
> on very big request
> after digging in the code I found following methods in {{DOMUtils.java}}
> {code:java}
> /**
>  * Try to get the DOM Node from the SAAJ Node with JAVA9 afterwards
>  * @param node The original node we need check
>  * @return The DOM node
>  */
> public static Node getDomElement(Node node) {
>     if (node != null && isJava9SAAJ()) {
>         //java9plus hack
>         try {
>             Method method = node.getClass().getMethod("getDomElement");
>             node = (Node)method.invoke(node);
>         } catch (NoSuchMethodException e) {
>             //best effort to try, do nothing if NoSuchMethodException
>         } catch (Exception e) {
>             throw new RuntimeException(e);
>         }
>     }
>     return node;
> }
> {code}
> CXF-7270 + CXF-7683 + CXF-7741 + CXF-7847
> when {{getDomelement()}} method doesn't exist on the Node, an exception of 
> type {{NoSuchMethodException}} is created which normally takes 1 milliseconds 
> (mainly used to fill the {{stacktrace}})
>  (similar problem for {{getDomDocumentFragment()}} method)
> but if the document is really big and contains more than 30'000 elements, the 
> repetitive creation of this exception could cost a some seconds ...
> I have fixed this performance by caching node without {{getDomElement()}} 
> method to avoid repetitive exception but I am not sure if it's a good solution
> can you help me with this performance problem?



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to