Exception calling session EJB using Delegation Processor

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

Exception calling session EJB using Delegation Processor

julian.fawcett
I am trying to upgrade from ops 3.0 Beta3 to ops 3.0 final, and am having a problem with my xpl files that use the DelegationProcessor to call session EJBs. This worked fine in the Beta3 release but using the final release I get an exception:

java.lang.NullPointerException
        at org.orbeon.oxf.processor.DelegationProcessor$2.endElement(DelegationP
rocessor.java:352)

I have taken a look a look at the source code and run it through a debugger and can see that the NPE is happening because the jndiContext variable is null. The code tries to initialise this variable on the previous line by getting it from an attribute of the PipelineContext object. Looking at the code I can't see how this attribute can ever have been set in the PipelineContext. The object is instantiated only a few lines earlier (line 328) and the only thing that touches it in the intervening lines is the DOMSerialiser object which does set an attribute, but not the jndi context attribute.

This is baffling because it clearly did work in earlier releases, and as far as I can see this part of the DelegationProcessor code hasn't changed at all.

Is there perhaps some configuration change I have to make in upgrading to 3.0 final?

Regards,
Julian Fawcett
Esprit Ltd
Derby
UK



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Exception calling session EJB using Delegation Processor

Erik Bruchez
Administrator
[hidden email] wrote:

 > I am trying to upgrade from ops 3.0 Beta3 to ops 3.0 final, and am
 > having a problem with my xpl files that use the DelegationProcessor
 > to call session EJBs. This worked fine in the Beta3 release but
 > using the final release I get an exception:
 >
 > java.lang.NullPointerException
 >         at
org.orbeon.oxf.processor.DelegationProcessor$2.endElement(DelegationP
 > rocessor.java:352)
 >
 > I have taken a look a look at the source code and run it through a
 > debugger and can see that the NPE is happening because the
 > jndiContext variable is null. The code tries to initialise this
 > variable on the previous line by getting it from an attribute of the
 > PipelineContext object. Looking at the code I can't see how this
 > attribute can ever have been set in the PipelineContext. The object
 > is instantiated only a few lines earlier (line 328) and the only
 > thing that touches it in the intervening lines is the DOMSerialiser
 > object which does set an attribute, but not the jndi context
 > attribute.

The JNDI context is in fact stored in the PipelineContext object in
the class ProcessorService, before the pipeline starts. So it should
be there, and I don't think that code has changed recently either.

How are you calling the pipeline containing the Delegation processor?
Is it regularly called by the PFC?

 > This is baffling because it clearly did work in earlier releases,
 > and as far as I can see this part of the DelegationProcessor code
 > hasn't changed at all.

That's correct.

 > Is there perhaps some configuration change I have to make in
 > upgrading to 3.0 final?

Not that I know of that would directly impact this!

-Erik




--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: Exception calling session EJB using Delegation Processor

julian.fawcett
erik.bruchez@xxxxxxxxxxxxx wrote:

>julian.fawcett@xxxxxxxxxxxxx wrote:

>> I am trying to upgrade from ops 3.0 Beta3 to ops 3.0 final, and am
>> having a problem with my xpl files that use the DelegationProcessor
>> to call session EJBs. This worked fine in the Beta3 release but
>> using the final release I get an exception:
>>
>> java.lang.NullPointerException
>> at org.orbeon.oxf.processor.DelegationProcessor$2.endElement(DelegationP
>> rocessor.java:352)
>
>> I have taken a look a look at the source code and run it through a
>> debugger and can see that the NPE is happening because the
>> jndiContext variable is null. The code tries to initialise this
>> variable on the previous line by getting it from an attribute of the
>> PipelineContext object. Looking at the code I can't see how this
>> attribute can ever have been set in the PipelineContext. The object
>> is instantiated only a few lines earlier (line 328) and the only
>> thing that touches it in the intervening lines is the DOMSerialiser
>> object which does set an attribute, but not the jndi context
>> attribute.

> The JNDI context is in fact stored in the PipelineContext object in
> the class ProcessorService, before the pipeline starts. So it should
> be there, and I don't think that code has changed recently either.

Yes I noticed when I was running it through the debugger that the ProcessorService was at an earlier point correctly setting the jndi context as an attribute of a PipelineContext object.

But this is the bit that puzzles me, because this was happening before the DelegationProcessor was being called. On line 328 of DelegationProcessor it creates a new instance of a PipelineContext. I have taken a look at the source and the attributes are held in a private non-static HashMap instance. As far as I can see nothing in the constructor puts anything in this map.

I set a breakpoint on line 148 of PipelineContext to see if anything sets an attribute in this instance of the PipelineContext, and the only thing that does so is the DOMSerialiser (line 47). I was also able to view the contents of the attributes map in the instance and it only contains the 1 value set by the DOMSerilaiser.

So I fail to understand how this particular instance of PipelineContext could ever have the jndi context attribute set. I realise I must be missing something because it clearly worked before and the code hasn't changed, But I can't think what I am missing.

> How are you calling the pipeline containing the Delegation processor?
> Is it regularly called by the PFC?

The pipeline containing the delegation processor is called as a page flow action by almost every page in our application. Here is a snippet from the page-flow.xml:

    <page id="caf-page1" model="oxf:/caf/page1.xpl" path-info="/caf/page1" view="oxf:/caf/view.xpl" xforms="oxf:/caf/form.xml">
        <action action="oxf:/check-permission.xpl" when="/form/has-permission = ''">
            <result page="caf-page1">
                <xu:update select="/form/has-permission">
                    <xu:value-of select="document('oxf:action')/check/has-permission"/>
                </xu:update>
                <xu:update select="/form/caf">
                    <xu:copy-of select="document('oxf:instance')/form/caf/*"/>
                </xu:update>
            </result>
        </action>
        <action ....>
            ...
        </action>
    </page>

Here is the relevant section from the check-permission.xpl file:

    <!-- Build EJB call XML doc  -->
    <p:processor name="oxf:xslt" xmlns:p="http://www.orbeon.com/oxf/pipeline">
        <p:input name="data" href="#request-params-xml" />
        <p:input name="config">
            <xsl:transform version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:delegation="http://orbeon.org/oxf/xml/delegation"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                    <xsl:template match="/request/parameters">
                      <root>
                      <delegation:execute service="check-permission" operation="getPermissionForXforms">
                          <cypUID xsi:type="xs:string"><xsl:value-of select="./parameter[name='cypUID']/value" /></cypUID>
                          <assItemUID xsi:type="xs:string"><xsl:value-of select="./parameter[name='assItemUID']/value" /></assItemUID>
                          <mode xsi:type="xs:string"><xsl:value-of select="./parameter[name='mode']/value" /></mode>
                      </delegation:execute>
                      </root>
                    </xsl:template>
            </xsl:transform>
        </p:input>
        <p:output name="data" id="check-permission-call"/>
    </p:processor>

    <!-- Call EJB method to -->
    <p:processor name="oxf:delegation">
      <p:input name="interface">
          <config>
              <service id="check-permission" type="stateless-ejb" uri="java:comp/env/ejb/CYPUtilLocal"/>
          </config>
      </p:input>
      <p:input name="call" href="#check-permission-call" />
      <p:output name="data" id="check-permission-result-string"/>
    </p:processor>
   
Note, we are still using "classic" engine. It all works just fine on the ops 3.0 beta version and it worked fine before that on ops 2.8.
Correction from original message: we were using Beta2 (ops-3.0.beta2.200507191809.zip) not Beta3.

Regards,
Julian



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Exception calling session EJB using Delegation Processor

Erik Bruchez
Administrator
Julien,

You are right that a new PipelineContext() is created on line 328, but I
think the new pipeline that is run with this context is just used as a
trick to convert a SAXStore into a DOM. You should be able to tell by
looking at stack trace when you get the NPE: is line 329 or
DelegationProcessor (domSerializer.start(context);) in the stack? If so,
this could be the problem, if not, the problem is somewhere else. Can
you send a complete stack trace?

-Erik

[hidden email] wrote:

> erik.bruchez@xxxxxxxxxxxxx wrote:
>
>> julian.fawcett@xxxxxxxxxxxxx wrote:
>
>>> I am trying to upgrade from ops 3.0 Beta3 to ops 3.0 final, and am
>>> having a problem with my xpl files that use the DelegationProcessor
>>> to call session EJBs. This worked fine in the Beta3 release but
>>> using the final release I get an exception:
>>>
>>> java.lang.NullPointerException
>>> at org.orbeon.oxf.processor.DelegationProcessor$2.endElement(DelegationP
>>> rocessor.java:352)
>>> I have taken a look a look at the source code and run it through a
>>> debugger and can see that the NPE is happening because the
>>> jndiContext variable is null. The code tries to initialise this
>>> variable on the previous line by getting it from an attribute of the
>>> PipelineContext object. Looking at the code I can't see how this
>>> attribute can ever have been set in the PipelineContext. The object
>>> is instantiated only a few lines earlier (line 328) and the only
>>> thing that touches it in the intervening lines is the DOMSerialiser
>>> object which does set an attribute, but not the jndi context
>>> attribute.
>
>> The JNDI context is in fact stored in the PipelineContext object in
>> the class ProcessorService, before the pipeline starts. So it should
>> be there, and I don't think that code has changed recently either.
>
> Yes I noticed when I was running it through the debugger that the ProcessorService was at an earlier point correctly setting the jndi context as an attribute of a PipelineContext object.
>
> But this is the bit that puzzles me, because this was happening before the DelegationProcessor was being called. On line 328 of DelegationProcessor it creates a new instance of a PipelineContext. I have taken a look at the source and the attributes are held in a private non-static HashMap instance. As far as I can see nothing in the constructor puts anything in this map.
>
> I set a breakpoint on line 148 of PipelineContext to see if anything sets an attribute in this instance of the PipelineContext, and the only thing that does so is the DOMSerialiser (line 47). I was also able to view the contents of the attributes map in the instance and it only contains the 1 value set by the DOMSerilaiser.
>
> So I fail to understand how this particular instance of PipelineContext could ever have the jndi context attribute set. I realise I must be missing something because it clearly worked before and the code hasn't changed, But I can't think what I am missing.
>
>> How are you calling the pipeline containing the Delegation processor?
>> Is it regularly called by the PFC?
>
> The pipeline containing the delegation processor is called as a page flow action by almost every page in our application. Here is a snippet from the page-flow.xml:
>
>     <page id="caf-page1" model="oxf:/caf/page1.xpl" path-info="/caf/page1" view="oxf:/caf/view.xpl" xforms="oxf:/caf/form.xml">
>         <action action="oxf:/check-permission.xpl" when="/form/has-permission = ''">
>             <result page="caf-page1">
>                 <xu:update select="/form/has-permission">
>                     <xu:value-of select="document('oxf:action')/check/has-permission"/>
>                 </xu:update>
>                 <xu:update select="/form/caf">
>                     <xu:copy-of select="document('oxf:instance')/form/caf/*"/>
>                 </xu:update>
>             </result>
>         </action>
>         <action ....>
>             ...
>         </action>
>     </page>
>
> Here is the relevant section from the check-permission.xpl file:
>
>     <!-- Build EJB call XML doc  -->
>     <p:processor name="oxf:xslt" xmlns:p="http://www.orbeon.com/oxf/pipeline">
>         <p:input name="data" href="#request-params-xml" />
>         <p:input name="config">
>             <xsl:transform version="1.0"
>                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>                 xmlns:delegation="http://orbeon.org/oxf/xml/delegation"
>                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>                     <xsl:template match="/request/parameters">
>                       <root>
>                       <delegation:execute service="check-permission" operation="getPermissionForXforms">
>                           <cypUID xsi:type="xs:string"><xsl:value-of select="./parameter[name='cypUID']/value" /></cypUID>
>                           <assItemUID xsi:type="xs:string"><xsl:value-of select="./parameter[name='assItemUID']/value" /></assItemUID>
>                           <mode xsi:type="xs:string"><xsl:value-of select="./parameter[name='mode']/value" /></mode>
>                       </delegation:execute>
>                       </root>
>                     </xsl:template>
>             </xsl:transform>
>         </p:input>
>         <p:output name="data" id="check-permission-call"/>
>     </p:processor>
>
>     <!-- Call EJB method to -->
>     <p:processor name="oxf:delegation">
>       <p:input name="interface">
>           <config>
>               <service id="check-permission" type="stateless-ejb" uri="java:comp/env/ejb/CYPUtilLocal"/>
>           </config>
>       </p:input>
>       <p:input name="call" href="#check-permission-call" />
>       <p:output name="data" id="check-permission-result-string"/>
>     </p:processor>
>    
> Note, we are still using "classic" engine. It all works just fine on the ops 3.0 beta version and it worked fine before that on ops 2.8.
> Correction from original message: we were using Beta2 (ops-3.0.beta2.200507191809.zip) not Beta3.
>
> Regards,
> Julian
>
>
>
> ------------------------------------------------------------------------
>
>
> --
> You receive this message as a subscriber of the [hidden email] mailing list.
> To unsubscribe: mailto:[hidden email]
> For general help: mailto:[hidden email]?subject=help
> ObjectWeb mailing lists service home page: http://www.objectweb.org/wws



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: Exception calling session EJB using Delegation Processor

julian.fawcett
Hi Erik,

I think I may have accidentally replied to you directly earlier rather than to the list. Apologies for that.

Sadly line 329 does not appear in the stacktrace but I have noticed that line 78 of DelegationProcessor does appear earlier in the stack. I am currently following this path through the debugger to see if it tells me anything new.

Here is the full stacktrace:

Exception at oxf:/check-permission.xpl, line -1, column -1
java.lang.NullPointerException
        at org.orbeon.oxf.processor.DelegationProcessor$2.endElement(DelegationP
rocessor.java:352)
        at org.orbeon.oxf.xml.SimpleForwardingContentHandler.endElement(SimpleFo
rwardingContentHandler.java:41)
        at org.orbeon.saxon.event.ContentHandlerProxy.endElement(ContentHandlerP
roxy.java:291)
        at org.orbeon.saxon.event.ProxyReceiver.endElement(ProxyReceiver.java:19
0)
        at org.orbeon.saxon.event.NamespaceReducer.endElement(NamespaceReducer.j
ava:252)
        at org.orbeon.saxon.event.ComplexContentOutputter.endElement(ComplexCont
entOutputter.java:349)
        at org.orbeon.saxon.instruct.ElementCreator.processLeavingTail(ElementCr
eator.java:125)
        at org.orbeon.saxon.instruct.Instruction.process(Instruction.java:91)
        at org.orbeon.saxon.instruct.InstructionWithChildren.processChildren(Ins
tructionWithChildren.java:158)
        at org.orbeon.saxon.instruct.ElementCreator.processLeavingTail(ElementCr
eator.java:122)
        at org.orbeon.saxon.instruct.Template.expand(Template.java:98)
        at org.orbeon.saxon.instruct.Template.processLeavingTail(Template.java:8
2)
        at org.orbeon.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplate
s.java:262)
        at org.orbeon.saxon.instruct.ApplyTemplates.defaultAction(ApplyTemplates
.java:290)
        at org.orbeon.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplate
s.java:253)
        at org.orbeon.saxon.instruct.ApplyTemplates.defaultAction(ApplyTemplates
.java:290)
        at org.orbeon.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplate
s.java:253)
        at org.orbeon.saxon.Controller.transformDocument(Controller.java:1094)
        at org.orbeon.saxon.TransformerHandlerImpl.endDocument(TransformerHandle
rImpl.java:121)
        at org.orbeon.oxf.xml.SAXStore.replay(SAXStore.java:175)
        at org.orbeon.oxf.processor.transformer.xslt.XSLTTransformer$1.readImpl(
XSLTTransformer.java:194)
        at org.orbeon.oxf.processor.ProcessorImpl$6.read(ProcessorImpl.java:981)

        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Proce
ssorImpl.java:1164)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.j
ava:349)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.j
ava:354)
        at org.orbeon.oxf.processor.DelegationProcessor$1.readImpl(DelegationPro
cessor.java:78)
        at org.orbeon.oxf.processor.ProcessorImpl$6.read(ProcessorImpl.java:981)

        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Proce
ssorImpl.java:1164)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.j
ava:349)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.j
ava:354)
        at org.orbeon.oxf.processor.transformer.xslt.XSLTTransformer.access$600(
XSLTTransformer.java:60)
        at org.orbeon.oxf.processor.transformer.xslt.XSLTTransformer$1.readImpl(
XSLTTransformer.java:193)
        at org.orbeon.oxf.processor.ProcessorImpl$6.read(ProcessorImpl.java:981)

        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Proce
ssorImpl.java:1164)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.j
ava:349)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.j
ava:354)
        at org.orbeon.oxf.processor.IdentityProcessor$1.readImpl(IdentityProcess
or.java:33)
        at org.orbeon.oxf.processor.ProcessorImpl$6.read(ProcessorImpl.java:981)

        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Proce
ssorImpl.java:1164)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.j
ava:349)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$000(Pipeli
neProcessor.java:66)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$2.run(PipelinePro
cessor.java:96)
        at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.
java:514)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$100(Pipeli
neProcessor.java:66)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.readImpl(Pipeli
neProcessor.java:94)
        at org.orbeon.oxf.processor.ProcessorImpl$6.read(ProcessorImpl.java:981)

        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Proce
ssorImpl.java:1164)
        at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor$1.re
adImpl(ConcreteChooseProcessor.java:122)
        at org.orbeon.oxf.processor.ProcessorImpl$6.read(ProcessorImpl.java:981)

        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Proce
ssorImpl.java:1164)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.j
ava:349)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$000(Pipeli
neProcessor.java:66)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$2.run(PipelinePro
cessor.java:96)
        at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.
java:514)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$100(Pipeli
neProcessor.java:66)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.readImpl(Pipeli
neProcessor.java:94)
        at org.orbeon.oxf.processor.ProcessorImpl$6.read(ProcessorImpl.java:981)

        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Proce
ssorImpl.java:1164)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.j
ava:349)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.j
ava:354)
        at org.orbeon.oxf.processor.IdentityProcessor$1.readImpl(IdentityProcess
or.java:33)
        at org.orbeon.oxf.processor.ProcessorImpl$6.read(ProcessorImpl.java:981)

        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Proce
ssorImpl.java:1164)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.j
ava:349)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$000(Pipeli
neProcessor.java:66)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$2.run(PipelinePro
cessor.java:96)
        at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.
java:514)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$100(Pipeli
neProcessor.java:66)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.readImpl(Pipeli
neProcessor.java:94)
        at org.orbeon.oxf.processor.ProcessorImpl$6.read(ProcessorImpl.java:981)

        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Proce
ssorImpl.java:1164)
        at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor$1.re
adImpl(ConcreteChooseProcessor.java:122)
        at org.orbeon.oxf.processor.ProcessorImpl$6.read(ProcessorImpl.java:981)

        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Proce
ssorImpl.java:1164)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.j
ava:349)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.j
ava:354)
        at org.orbeon.oxf.processor.IdentityProcessor$1.readImpl(IdentityProcess
or.java:33)
        at org.orbeon.oxf.processor.ProcessorImpl$6.read(ProcessorImpl.java:981)

        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Proce
ssorImpl.java:1164)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.j
ava:349)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$000(Pipeli
neProcessor.java:66)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$2.run(PipelinePro
cessor.java:96)
        at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.
java:514)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$100(Pipeli
neProcessor.java:66)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.readImpl(Pipeli
neProcessor.java:94)
        at org.orbeon.oxf.processor.ProcessorImpl$6.read(ProcessorImpl.java:981)

        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Proce
ssorImpl.java:1164)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.j
ava:349)
        at org.orbeon.oxf.processor.pipeline.TeeProcessor.access$100(TeeProcesso
r.java:36)
        at org.orbeon.oxf.processor.pipeline.TeeProcessor$1.readImpl(TeeProcesso
r.java:57)
        at org.orbeon.oxf.processor.ProcessorImpl$6.read(ProcessorImpl.java:981)

        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Proce
ssorImpl.java:1164)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.j
ava:349)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsDOM4J(ProcessorImpl
.java:404)
        at org.orbeon.oxf.processor.ProcessorImpl$4.read(ProcessorImpl.java:428)

        at org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsObject(Process
orImpl.java:470)
        at org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsDOM4J(Processo
rImpl.java:426)
        at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor.star
t(ConcreteChooseProcessor.java:185)
        at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor$1.re
adImpl(ConcreteChooseProcessor.java:120)
        at org.orbeon.oxf.processor.ProcessorImpl$6.read(ProcessorImpl.java:981)

        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Proce
ssorImpl.java:1164)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.j
ava:349)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsDOM4J(ProcessorImpl
.java:404)
        at org.orbeon.oxf.processor.ProcessorImpl$4.read(ProcessorImpl.java:428)

        at org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsObject(Process
orImpl.java:470)
        at org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsDOM4J(Processo
rImpl.java:426)
        at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor.star
t(ConcreteChooseProcessor.java:185)
        at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor$1.re
adImpl(ConcreteChooseProcessor.java:120)
        at org.orbeon.oxf.processor.ProcessorImpl$6.read(ProcessorImpl.java:981)

        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Proce
ssorImpl.java:1164)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.j
ava:349)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.j
ava:354)
        at org.orbeon.oxf.processor.IdentityProcessor$1.readImpl(IdentityProcess
or.java:33)
        at org.orbeon.oxf.processor.ProcessorImpl$6.read(ProcessorImpl.java:981)

        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Proce
ssorImpl.java:1164)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.j
ava:349)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$000(Pipeli
neProcessor.java:66)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$2.run(PipelinePro
cessor.java:96)
        at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.
java:514)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$100(Pipeli
neProcessor.java:66)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.readImpl(Pipeli
neProcessor.java:94)
        at org.orbeon.oxf.processor.ProcessorImpl$6.read(ProcessorImpl.java:981)

        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Proce
ssorImpl.java:1164)
        at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor$1.re
adImpl(ConcreteChooseProcessor.java:122)
        at org.orbeon.oxf.processor.ProcessorImpl$6.read(ProcessorImpl.java:981)

        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Proce
ssorImpl.java:1164)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.j
ava:349)
        at org.orbeon.oxf.processor.pipeline.TeeProcessor.access$100(TeeProcesso
r.java:36)
        at org.orbeon.oxf.processor.pipeline.TeeProcessor$1.readImpl(TeeProcesso
r.java:57)
        at org.orbeon.oxf.processor.ProcessorImpl$6.read(ProcessorImpl.java:981)

        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Proce
ssorImpl.java:1164)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.j
ava:349)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsDOM4J(ProcessorImpl
.java:404)
        at org.orbeon.oxf.processor.ProcessorImpl$4.read(ProcessorImpl.java:428)

        at org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsObject(Process
orImpl.java:470)
        at org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsDOM4J(Processo
rImpl.java:426)
        at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor.star
t(ConcreteChooseProcessor.java:185)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$11.run(PipelinePr
ocessor.java:652)
        at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.
java:514)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelinePro
cessor.java:649)
        at org.orbeon.oxf.processor.PageFlowControllerProcessor.start(PageFlowCo
ntrollerProcessor.java:416)
        at org.orbeon.oxf.pipeline.InitUtils.runProcessor(InitUtils.java:88)
        at org.orbeon.oxf.webapp.ProcessorService.service(ProcessorService.java:
95)
        at org.orbeon.oxf.servlet.OXFServletDelegate.service(OXFServletDelegate.
java:129)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:173)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDisp
atcher.java:696)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(Applica
tionDispatcher.java:474)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationD
ispatcher.java:409)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDis
patcher.java:312)
        at org.orbeon.oxf.servlet.ServletExternalContext$Response.sendRedirect(S
ervletExternalContext.java:478)
        at org.orbeon.oxf.processor.RedirectProcessor.start(RedirectProcessor.ja
va:68)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$11.run(PipelinePr
ocessor.java:652)
        at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.
java:514)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelinePro
cessor.java:649)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.getInput(Pipeli
neProcessor.java:140)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.readImpl(Pipeli
neProcessor.java:89)
        at org.orbeon.oxf.processor.ProcessorImpl$6.read(ProcessorImpl.java:981)

        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Proce
ssorImpl.java:1164)
        at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor$1.re
adImpl(ConcreteChooseProcessor.java:122)
        at org.orbeon.oxf.processor.ProcessorImpl$6.read(ProcessorImpl.java:981)

        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Proce
ssorImpl.java:1164)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.j
ava:349)
        at org.orbeon.oxf.processor.pipeline.TeeProcessor.access$100(TeeProcesso
r.java:36)
        at org.orbeon.oxf.processor.pipeline.TeeProcessor$1.readImpl(TeeProcesso
r.java:57)
        at org.orbeon.oxf.processor.ProcessorImpl$6.read(ProcessorImpl.java:981)

        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Proce
ssorImpl.java:1164)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.j
ava:349)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsDOM4J(ProcessorImpl
.java:404)
        at org.orbeon.oxf.processor.ProcessorImpl$4.read(ProcessorImpl.java:428)

        at org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsObject(Process
orImpl.java:470)
        at org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsDOM4J(Processo
rImpl.java:426)
        at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor.star
t(ConcreteChooseProcessor.java:185)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$11.run(PipelinePr
ocessor.java:652)
        at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.
java:514)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelinePro
cessor.java:649)
        at org.orbeon.oxf.processor.PageFlowControllerProcessor.start(PageFlowCo
ntrollerProcessor.java:416)
        at org.orbeon.oxf.pipeline.InitUtils.runProcessor(InitUtils.java:88)
        at org.orbeon.oxf.webapp.ProcessorService.service(ProcessorService.java:
95)
        at org.orbeon.oxf.servlet.OXFServletDelegate.service(OXFServletDelegate.
java:129)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:173)
        at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFi
lter.java:75)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:214)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
        at org.apache.catalina.core.StandardContextValve.invokeInternal(Standard
ContextValve.java:198)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:152)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
        at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrinc
ipalValve.java:66)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:102)
        at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Securit
yAssociationValve.java:162)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:102)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
torBase.java:540)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:102)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:137)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:118)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:102)
        at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.ja
va:444)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:102)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:109)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)

        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:16
0)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:799)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ssConnection(Http11Protocol.java:705)
        at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
:577)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:684)
        at java.lang.Thread.run(Thread.java:534)

Thanks,
Julian



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: Exception calling session EJB using Delegation Processor

julian.fawcett
In reply to this post by Erik Bruchez
Hi Erik,

You'll be pleased to hear I have resolved this problem. It was down partly to an extraordinary error on my part and partly down to what I am now sure is a problem with OPS 3.0.

The error on my part is all very embarrasing and humiliating really. I have been labouring under the false belief for several months now that I was using OPS 3.0 Beta2. It turns out I wasn't. I have been using 2.8 all along. How this came about is for me to beat myself up about, but once I realised this it became clear why I was having the problem with DelegationProcessor.

I realised something was up when I started decompiling the class files from the respective ops jar files. When I did this I could see that there was a crucial difference between the sources.

If you look at the source file for DelegationProcessor in 2.8 you will see that line 80 stored the pipeline object in a final variable called _context. Later at line 331 it was this instance from which it retrieved the jndiContext.

For some reason which I cannot understand, in the 3.0 source this _context variable has been abolished, and when it reaches line 352 (the equivalent of line 331 in the v2.8 source) it uses the local context instance instead - and this instance is doomed not to have the jndiContext stored in it.

In my local copy of the 3.0 source I have amended it to reinstate the _context instance and use that on line 352. And then it works.

This still leaves me a little puzzled. I am convinced that in its current state on your csv server there is no way the 3.0 source can work, but am astonished if no-one else has been affected by this. Are there many people out there actually using the delegation processor to call EJBs?

Regards,
Julian



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws