[jira] Created: (CAMEL-1152) Disallow setting a header with a null name

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

[jira] Created: (CAMEL-1152) Disallow setting a header with a null name

JIRA jira@apache.org
Disallow setting a header with a null name
------------------------------------------

                 Key: CAMEL-1152
                 URL: https://issues.apache.org/activemq/browse/CAMEL-1152
             Project: Apache Camel
          Issue Type: Improvement
          Components: camel-core
         Environment: Any
            Reporter: Ramon Buckland
            Priority: Minor


I have found that it is possible to set the header "name" to null of a message.

You can set a null header name as follows..

 <setHeader name="someName"><constant>SUCCESS</constant></setHeader>

This task succeeds, (ie no error occurs) but not as you would expect, because this is what it is meant to be (@headerName)

<setHeader headerName="someName"><constant>SUCCESS</constant></setHeader>

eg: log dumping the header shows   -  Headers:{null=SUCCESS}

A side effect of this happening is that if you then use the xslt: component after setting a null header with a value, the xslt (saxon) component  freaks out with a NPE because it is attempting to set parameters for each header it finds, but the header is there and has a null name.  

A Snippet of the Stack Trace -

java.lang.NullPointerException
        at net.sf.saxon.om.StructuredQName.fromClarkName(StructuredQName.java:70)
        at net.sf.saxon.Controller.setParameter(Controller.java:1979)
        at org.apache.camel.builder.xml.XsltBuilder.addParameters(XsltBuilder.java:290)
        at org.apache.camel.builder.xml.XsltBuilder.configureTransformer(XsltBuilder.java:276)
        at org.apache.camel.builder.xml.XsltBuilder.process(XsltBuilder.java:74)
        at org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:92)
        at org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:66)


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

Reply | Threaded
Open this post in threaded view
|

[jira] Assigned: (CAMEL-1152) Disallow setting a header with a null name

JIRA jira@apache.org

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

Claus Ibsen reassigned CAMEL-1152:
----------------------------------

    Assignee: Claus Ibsen

> Disallow setting a header with a null name
> ------------------------------------------
>
>                 Key: CAMEL-1152
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-1152
>             Project: Apache Camel
>          Issue Type: Improvement
>          Components: camel-core
>         Environment: Any
>            Reporter: Ramon Buckland
>            Assignee: Claus Ibsen
>            Priority: Minor
>
> I have found that it is possible to set the header "name" to null of a message.
> You can set a null header name as follows..
>  <setHeader name="someName"><constant>SUCCESS</constant></setHeader>
> This task succeeds, (ie no error occurs) but not as you would expect, because this is what it is meant to be (@headerName)
> <setHeader headerName="someName"><constant>SUCCESS</constant></setHeader>
> eg: log dumping the header shows   -  Headers:{null=SUCCESS}
> A side effect of this happening is that if you then use the xslt: component after setting a null header with a value, the xslt (saxon) component  freaks out with a NPE because it is attempting to set parameters for each header it finds, but the header is there and has a null name.  
> A Snippet of the Stack Trace -
> java.lang.NullPointerException
> at net.sf.saxon.om.StructuredQName.fromClarkName(StructuredQName.java:70)
> at net.sf.saxon.Controller.setParameter(Controller.java:1979)
> at org.apache.camel.builder.xml.XsltBuilder.addParameters(XsltBuilder.java:290)
> at org.apache.camel.builder.xml.XsltBuilder.configureTransformer(XsltBuilder.java:276)
> at org.apache.camel.builder.xml.XsltBuilder.process(XsltBuilder.java:74)
> at org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:92)
> at org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:66)

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

Reply | Threaded
Open this post in threaded view
|

[jira] Commented: (CAMEL-1152) Disallow setting a header with a null name

JIRA jira@apache.org
In reply to this post by JIRA jira@apache.org

    [ https://issues.apache.org/activemq/browse/CAMEL-1152?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=47913#action_47913 ]

Claus Ibsen commented on CAMEL-1152:
------------------------------------

Yeah looks like the attrbiute headerName wasn't set as required.
And I will add an assertion that headerName is not null.

> Disallow setting a header with a null name
> ------------------------------------------
>
>                 Key: CAMEL-1152
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-1152
>             Project: Apache Camel
>          Issue Type: Improvement
>          Components: camel-core
>         Environment: Any
>            Reporter: Ramon Buckland
>            Assignee: Claus Ibsen
>            Priority: Minor
>
> I have found that it is possible to set the header "name" to null of a message.
> You can set a null header name as follows..
>  <setHeader name="someName"><constant>SUCCESS</constant></setHeader>
> This task succeeds, (ie no error occurs) but not as you would expect, because this is what it is meant to be (@headerName)
> <setHeader headerName="someName"><constant>SUCCESS</constant></setHeader>
> eg: log dumping the header shows   -  Headers:{null=SUCCESS}
> A side effect of this happening is that if you then use the xslt: component after setting a null header with a value, the xslt (saxon) component  freaks out with a NPE because it is attempting to set parameters for each header it finds, but the header is there and has a null name.  
> A Snippet of the Stack Trace -
> java.lang.NullPointerException
> at net.sf.saxon.om.StructuredQName.fromClarkName(StructuredQName.java:70)
> at net.sf.saxon.Controller.setParameter(Controller.java:1979)
> at org.apache.camel.builder.xml.XsltBuilder.addParameters(XsltBuilder.java:290)
> at org.apache.camel.builder.xml.XsltBuilder.configureTransformer(XsltBuilder.java:276)
> at org.apache.camel.builder.xml.XsltBuilder.process(XsltBuilder.java:74)
> at org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:92)
> at org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:66)

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

Reply | Threaded
Open this post in threaded view
|

[jira] Resolved: (CAMEL-1152) Disallow setting a header with a null name

JIRA jira@apache.org
In reply to this post by JIRA jira@apache.org

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

Claus Ibsen resolved CAMEL-1152.
--------------------------------

       Resolution: Fixed
    Fix Version/s: 2.0.0
                   1.5.1

trunk: 724122
1.x branch:Committed revision 724123.


> Disallow setting a header with a null name
> ------------------------------------------
>
>                 Key: CAMEL-1152
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-1152
>             Project: Apache Camel
>          Issue Type: Improvement
>          Components: camel-core
>         Environment: Any
>            Reporter: Ramon Buckland
>            Assignee: Claus Ibsen
>            Priority: Minor
>             Fix For: 1.5.1, 2.0.0
>
>
> I have found that it is possible to set the header "name" to null of a message.
> You can set a null header name as follows..
>  <setHeader name="someName"><constant>SUCCESS</constant></setHeader>
> This task succeeds, (ie no error occurs) but not as you would expect, because this is what it is meant to be (@headerName)
> <setHeader headerName="someName"><constant>SUCCESS</constant></setHeader>
> eg: log dumping the header shows   -  Headers:{null=SUCCESS}
> A side effect of this happening is that if you then use the xslt: component after setting a null header with a value, the xslt (saxon) component  freaks out with a NPE because it is attempting to set parameters for each header it finds, but the header is there and has a null name.  
> A Snippet of the Stack Trace -
> java.lang.NullPointerException
> at net.sf.saxon.om.StructuredQName.fromClarkName(StructuredQName.java:70)
> at net.sf.saxon.Controller.setParameter(Controller.java:1979)
> at org.apache.camel.builder.xml.XsltBuilder.addParameters(XsltBuilder.java:290)
> at org.apache.camel.builder.xml.XsltBuilder.configureTransformer(XsltBuilder.java:276)
> at org.apache.camel.builder.xml.XsltBuilder.process(XsltBuilder.java:74)
> at org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:92)
> at org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:66)

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