Cannot convert string "" to a double

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

Cannot convert string "" to a double

Gerrit Germis-2
Hi all,

I have attached a small test-case that shows the problem we're currently
having trying to mark selected lines. We can not change the customers
XML file that's passed to us (represented by the
instance('blah')/data/loop/x), so we decided to add a new tag list of
all lines at the top of the instance (represented by
instance('blah')/selectedlines/line). Everything works ok, until we want
to bind the checkbox (using xforms:select) to the "selectedlines/line"
lines from within an xforms:repeat loop on "data/loop/x". We get the
message:

Cannot convert string "" to a double

The stack trace looks like:

2007-11-22 18:34:16,750 ERROR ProcessorService  - Exception at
ValidationException: Cannot convert string "" to a double
        at
org.orbeon.saxon.value.DoubleValue.<init>(DoubleValue.java:37)
        at
org.orbeon.saxon.value.StringValue.convertStringToBuiltInType(StringValu
e.java:124)
        at
org.orbeon.saxon.value.StringValue.convertPrimitive(StringValue.java:98)
        at
org.orbeon.saxon.value.UntypedAtomicValue.convertPrimitive(UntypedAtomic
Value.java:61)
        at
org.orbeon.saxon.value.AtomicValue.convert(AtomicValue.java:103)
        at
org.orbeon.saxon.expr.GeneralComparison.compare(GeneralComparison.java:5
52)
        at
org.orbeon.saxon.expr.GeneralComparison.effectiveBooleanValue(GeneralCom
parison.java:490)
        at
org.orbeon.saxon.expr.FilterIterator$NonNumeric.matches(FilterIterator.j
ava:172)
        at
org.orbeon.saxon.expr.FilterIterator.getNextMatchingItem(FilterIterator.
java:69)
        at
org.orbeon.saxon.expr.FilterIterator.next(FilterIterator.java:49)
        at
org.orbeon.saxon.expr.ContextMappingIterator.next(ContextMappingIterator
.java:46)
        at
org.orbeon.saxon.value.SequenceExtent.<init>(SequenceExtent.java:105)
        at
org.orbeon.oxf.util.PooledXPathExpression.evaluateKeepNodeInfo(PooledXPa
thExpression.java:95)
        at org.orbeon.oxf.util.XPathCache.evaluate(XPathCache.java:82)
        at
org.orbeon.oxf.xforms.XFormsControls.pushBinding(XFormsControls.java:586
)
        at
org.orbeon.oxf.xforms.XFormsControls.pushBinding(XFormsControls.java:485
)
        at
org.orbeon.oxf.xforms.XFormsControls.pushBinding(XFormsControls.java:440
)
        at
org.orbeon.oxf.xforms.XFormsControls.handleControls(XFormsControls.java:
1302)
        at
org.orbeon.oxf.xforms.XFormsControls.handleControls(XFormsControls.java:
1257)
        at
org.orbeon.oxf.xforms.XFormsControls.visitAllControlsHandleRepeat(XForms
Controls.java:1221)
        at
org.orbeon.oxf.xforms.XFormsControls.buildControlsState(XFormsControls.j
ava:844)
        at
org.orbeon.oxf.xforms.XFormsControls.rebuildCurrentControlsState(XFormsC
ontrols.java:1128)
        at
org.orbeon.oxf.xforms.action.actions.XFormsInsertAction.execute(XFormsIn
sertAction.java:340)
        at
org.orbeon.oxf.xforms.action.XFormsActionInterpreter.runAction(XFormsAct
ionInterpreter.java:122)
        at
org.orbeon.oxf.xforms.action.actions.XFormsActionAction.execute(XFormsAc
tionAction.java:32)
        at
org.orbeon.oxf.xforms.action.XFormsActionInterpreter.runAction(XFormsAct
ionInterpreter.java:122)
        at
org.orbeon.oxf.xforms.XFormsContainingDocument.runAction(XFormsContainin
gDocument.java:1015)
        at
org.orbeon.oxf.xforms.event.XFormsEventHandlerImpl.handleEvent(XFormsEve
ntHandlerImpl.java:153)
        at
org.orbeon.oxf.xforms.XFormsContainingDocument.dispatchEvent(XFormsConta
iningDocument.java:943)
        at
org.orbeon.oxf.xforms.XFormsContainingDocument.executeExternalEvent(XFor
msContainingDocument.java:791)
        at
org.orbeon.oxf.xforms.processor.XFormsServer.executeExternalEventPrepare
IfNecessary(XFormsServer.java:283)
        at
org.orbeon.oxf.xforms.processor.XFormsServer.doIt(XFormsServer.java:223)
        at
org.orbeon.oxf.xforms.processor.XFormsServer.access$000(XFormsServer.jav
a:47)
        at
org.orbeon.oxf.xforms.processor.XFormsServer$1.readImpl(XFormsServer.jav
a:73)
        at
org.orbeon.oxf.processor.ProcessorImpl$7.read(ProcessorImpl.java:1030)
        at
org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$ConcreteProce
ssorFilter$ForwarderProcessorOutput.read(ProcessorImpl.java:984)
        at
org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java
:348)
        at
org.orbeon.oxf.processor.validation.MSVValidationProcessor.access$700(MS
VValidationProcessor.java:44)
        at
org.orbeon.oxf.processor.validation.MSVValidationProcessor$5.readImpl(MS
VValidationProcessor.java:219)
        at
org.orbeon.oxf.processor.ProcessorImpl$7.read(ProcessorImpl.java:1030)
        at
org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Processo
rImpl.java:1213)
        at
org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$ConcreteProce
ssorFilter.read(ProcessorImpl.java:1008)
        at
org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Processo
rImpl.java:1213)
        at
org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java
:348)
        at
org.orbeon.oxf.processor.serializer.legacy.XMLSerializer.readInput(XMLSe
rializer.java:58)
        at
org.orbeon.oxf.processor.serializer.HttpTextSerializer.readInput(HttpTex
tSerializer.java:54)
        at
org.orbeon.oxf.processor.serializer.HttpSerializerBase$1.read(HttpSerial
izerBase.java:151)
        at
org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsObject(ProcessorI
mpl.java:488)
        at
org.orbeon.oxf.processor.serializer.HttpSerializerBase.start(HttpSeriali
zerBase.java:142)
        at
org.orbeon.oxf.processor.pipeline.PipelineProcessor$11.run(PipelineProce
ssor.java:652)
        at
org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.jav
a:554)
        at
org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProces
sor.java:649)
        at
org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor.start(C
oncreteChooseProcessor.java:229)
        at
org.orbeon.oxf.processor.pipeline.PipelineProcessor$11.run(PipelineProce
ssor.java:652)
        at
org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.jav
a:554)
        at
org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProces
sor.java:649)
        at
org.orbeon.oxf.pipeline.InitUtils.runProcessor(InitUtils.java:95)
        at
org.orbeon.oxf.webapp.ProcessorService.service(ProcessorService.java:96)
        at
org.orbeon.oxf.servlet.OPSServletDelegate.service(OPSServletDelegate.jav
a:148)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.orbeon.oxf.servlet.OPSServlet.service(OPSServlet.java:75)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:269)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:188)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:210)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:174)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:127)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:117)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:108)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
51)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:87
0)
        at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.proc
essConnection(Http11BaseProtocol.java:665)
        at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
.java:528)
        at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollow
erWorkerThread.java:81)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:685)
        at java.lang.Thread.run(Thread.java:595)



Any help would be greatly appreciated.
Thanks in advance

Sincerely,
Gerrit


--
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
OW2 mailing lists service home page: http://www.ow2.org/wws

test.xhtml (4K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Cannot convert string "" to a double

Erik Bruchez
Administrator
This occurs because there must be a cast to a double somewhere ;-) Can  
you reproduce this in a short XHTML+XForms file that runs in the  
sandbox?

-Erik

On Nov 22, 2007, at 9:39 AM, Gerrit Germis wrote:

> Hi all,
>
> I have attached a small test-case that shows the problem we're  
> currently
> having trying to mark selected lines. We can not change the customers
> XML file that's passed to us (represented by the
> instance('blah')/data/loop/x), so we decided to add a new tag list of
> all lines at the top of the instance (represented by
> instance('blah')/selectedlines/line). Everything works ok, until we  
> want
> to bind the checkbox (using xforms:select) to the "selectedlines/line"
> lines from within an xforms:repeat loop on "data/loop/x". We get the
> message:
>
> Cannot convert string "" to a double
>
> The stack trace looks like:
>
> 2007-11-22 18:34:16,750 ERROR ProcessorService  - Exception at
> ValidationException: Cannot convert string "" to a double
> at
> org.orbeon.saxon.value.DoubleValue.<init>(DoubleValue.java:37)
> at
> org
> .orbeon.saxon.value.StringValue.convertStringToBuiltInType(StringValu
> e.java:124)
> at
> org.orbeon.saxon.value.StringValue.convertPrimitive(StringValue.java:
> 98)
> at
> org
> .orbeon.saxon.value.UntypedAtomicValue.convertPrimitive(UntypedAtomic
> Value.java:61)
> at
> org.orbeon.saxon.value.AtomicValue.convert(AtomicValue.java:103)
> at
> org
> .orbeon.saxon.expr.GeneralComparison.compare(GeneralComparison.java:5
> 52)
> at
> org
> .orbeon.saxon.expr.GeneralComparison.effectiveBooleanValue(GeneralCom
> parison.java:490)
> at
> org.orbeon.saxon.expr.FilterIterator
> $NonNumeric.matches(FilterIterator.j
> ava:172)
> at
> org
> .orbeon.saxon.expr.FilterIterator.getNextMatchingItem(FilterIterator.
> java:69)
> at
> org.orbeon.saxon.expr.FilterIterator.next(FilterIterator.java:49)
> at
> org
> .orbeon.saxon.expr.ContextMappingIterator.next(ContextMappingIterator
> .java:46)
> at
> org.orbeon.saxon.value.SequenceExtent.<init>(SequenceExtent.java:105)
> at
> org
> .orbeon.oxf.util.PooledXPathExpression.evaluateKeepNodeInfo(PooledXPa
> thExpression.java:95)
> at org.orbeon.oxf.util.XPathCache.evaluate(XPathCache.java:82)
> at
> org.orbeon.oxf.xforms.XFormsControls.pushBinding(XFormsControls.java:
> 586
> )
> at
> org.orbeon.oxf.xforms.XFormsControls.pushBinding(XFormsControls.java:
> 485
> )
> at
> org.orbeon.oxf.xforms.XFormsControls.pushBinding(XFormsControls.java:
> 440
> )
> at
> org
> .orbeon.oxf.xforms.XFormsControls.handleControls(XFormsControls.java:
> 1302)
> at
> org
> .orbeon.oxf.xforms.XFormsControls.handleControls(XFormsControls.java:
> 1257)
> at
> org
> .orbeon.oxf.xforms.XFormsControls.visitAllControlsHandleRepeat(XForms
> Controls.java:1221)
> at
> org
> .orbeon.oxf.xforms.XFormsControls.buildControlsState(XFormsControls.j
> ava:844)
> at
> org
> .orbeon.oxf.xforms.XFormsControls.rebuildCurrentControlsState(XFormsC
> ontrols.java:1128)
> at
> org
> .orbeon.oxf.xforms.action.actions.XFormsInsertAction.execute(XFormsIn
> sertAction.java:340)
> at
> org
> .orbeon.oxf.xforms.action.XFormsActionInterpreter.runAction(XFormsAct
> ionInterpreter.java:122)
> at
> org
> .orbeon.oxf.xforms.action.actions.XFormsActionAction.execute(XFormsAc
> tionAction.java:32)
> at
> org
> .orbeon.oxf.xforms.action.XFormsActionInterpreter.runAction(XFormsAct
> ionInterpreter.java:122)
> at
> org
> .orbeon.oxf.xforms.XFormsContainingDocument.runAction(XFormsContainin
> gDocument.java:1015)
> at
> org
> .orbeon.oxf.xforms.event.XFormsEventHandlerImpl.handleEvent(XFormsEve
> ntHandlerImpl.java:153)
> at
> org
> .orbeon.oxf.xforms.XFormsContainingDocument.dispatchEvent(XFormsConta
> iningDocument.java:943)
> at
> org
> .orbeon.oxf.xforms.XFormsContainingDocument.executeExternalEvent(XFor
> msContainingDocument.java:791)
> at
> org
> .orbeon.oxf.xforms.processor.XFormsServer.executeExternalEventPrepare
> IfNecessary(XFormsServer.java:283)
> at
> org.orbeon.oxf.xforms.processor.XFormsServer.doIt(XFormsServer.java:
> 223)
> at
> org.orbeon.oxf.xforms.processor.XFormsServer.access
> $000(XFormsServer.jav
> a:47)
> at
> org.orbeon.oxf.xforms.processor.XFormsServer
> $1.readImpl(XFormsServer.jav
> a:73)
> at
> org.orbeon.oxf.processor.ProcessorImpl$7.read(ProcessorImpl.java:1030)
> at
> org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl
> $ConcreteProce
> ssorFilter$ForwarderProcessorOutput.read(ProcessorImpl.java:984)
> at
> org
> .orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java
> :348)
> at
> org.orbeon.oxf.processor.validation.MSVValidationProcessor.access
> $700(MS
> VValidationProcessor.java:44)
> at
> org.orbeon.oxf.processor.validation.MSVValidationProcessor
> $5.readImpl(MS
> VValidationProcessor.java:219)
> at
> org.orbeon.oxf.processor.ProcessorImpl$7.read(ProcessorImpl.java:1030)
> at
> org.orbeon.oxf.processor.ProcessorImpl
> $ProcessorOutputImpl.read(Processo
> rImpl.java:1213)
> at
> org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl
> $ConcreteProce
> ssorFilter.read(ProcessorImpl.java:1008)
> at
> org.orbeon.oxf.processor.ProcessorImpl
> $ProcessorOutputImpl.read(Processo
> rImpl.java:1213)
> at
> org
> .orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java
> :348)
> at
> org
> .orbeon.oxf.processor.serializer.legacy.XMLSerializer.readInput(XMLSe
> rializer.java:58)
> at
> org
> .orbeon.oxf.processor.serializer.HttpTextSerializer.readInput(HttpTex
> tSerializer.java:54)
> at
> org.orbeon.oxf.processor.serializer.HttpSerializerBase
> $1.read(HttpSerial
> izerBase.java:151)
> at
> org
> .orbeon.oxf.processor.ProcessorImpl.readCacheInputAsObject(ProcessorI
> mpl.java:488)
> at
> org
> .orbeon.oxf.processor.serializer.HttpSerializerBase.start(HttpSeriali
> zerBase.java:142)
> at
> org.orbeon.oxf.processor.pipeline.PipelineProcessor
> $11.run(PipelineProce
> ssor.java:652)
> at
> org
> .orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.jav
> a:554)
> at
> org
> .orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProces
> sor.java:649)
> at
> org
> .orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor.start(C
> oncreteChooseProcessor.java:229)
> at
> org.orbeon.oxf.processor.pipeline.PipelineProcessor
> $11.run(PipelineProce
> ssor.java:652)
> at
> org
> .orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.jav
> a:554)
> at
> org
> .orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProces
> sor.java:649)
> at
> org.orbeon.oxf.pipeline.InitUtils.runProcessor(InitUtils.java:95)
> at
> org.orbeon.oxf.webapp.ProcessorService.service(ProcessorService.java:
> 96)
> at
> org
> .orbeon.oxf.servlet.OPSServletDelegate.service(OPSServletDelegate.jav
> a:148)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> at org.orbeon.oxf.servlet.OPSServlet.service(OPSServlet.java:75)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> at
> org
> .apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
> tionFilterChain.java:269)
> at
> org
> .apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
> erChain.java:188)
> at
> org
> .apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
> e.java:210)
> at
> org
> .apache.catalina.core.StandardContextValve.invoke(StandardContextValv
> e.java:174)
> at
> org
> .apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
> :127)
> at
> org
> .apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
> :117)
> at
> org
> .apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
> java:108)
> at
> org
> .apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
> 51)
> at
> org
> .apache.coyote.http11.Http11Processor.process(Http11Processor.java:87
> 0)
> at
> org.apache.coyote.http11.Http11BaseProtocol
> $Http11ConnectionHandler.proc
> essConnection(Http11BaseProtocol.java:665)
> at
> org
> .apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
> .java:528)
> at
> org
> .apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollow
> erWorkerThread.java:81)
> at
> org.apache.tomcat.util.threads.ThreadPool
> $ControlRunnable.run(ThreadPool
> .java:685)
> at java.lang.Thread.run(Thread.java:595)
>
>
>
> Any help would be greatly appreciated.
> Thanks in advance
>
> Sincerely,
> Gerrit
> <test.xhtml>
> --
> 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
> OW2 mailing lists service home page: http://www.ow2.org/wws
--
Orbeon Forms - Web Forms for the Enterprise Done the Right Way
http://www.orbeon.com/



--
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
OW2 mailing lists service home page: http://www.ow2.org/wws