Sachin,

That is correct. The indexing happens during the transaction commit, not during 
XQuery processing, so your try/catch block cannot catch the error. Your best 
bet is to fix the problem directly (by not inserting invalid numbers in fields 
that are indexed as xs:float, including not adding empty string contents or 
empty elements that are indexed as xs:float.

Yours,
Damon

From: [email protected] 
[mailto:[email protected]] On Behalf Of sachin gill
Sent: Wednesday, December 14, 2011 4:02 AM
To: General MarkLogic Developer Discussion
Subject: Re: [MarkLogic Dev General] CORB processing continuation query.

HI ,
   Srry for replying so late.
     I m still not able to catch this xquery exception in my CORB module.The 
errors are not catchable.I m try to catch  it as  mentioned below:

my sample try block :
 let $err := try {
 au:put($new-request,())
} catch ($err) { xdmp:log($err) }


  com.marklogic.xcc.exceptions.XQueryException: XDMP-RANGEINDEX: Range index 
error:
float 
fn:doc("/root/assets/173-cfa-study-session-17/173-cfa-study-session-17.xml")/asset/*:metadata/*:price:
 XDMP-CAST: (err:FORG0001) Invalid cast: xs:untypedAtomic("") cast as xs:float
in /assets/corb-pipeline.xqy
at 
com.marklogic.xcc.impl.handlers.ServerExceptionHandler.handleResponse(ServerExceptionHandler.java:30)
at 
com.marklogic.xcc.impl.handlers.EvalRequestController.serverDialog(EvalRequestController.java:72)
at 
com.marklogic.xcc.impl.handlers.AbstractRequestController.runRequest(AbstractRequestController.java:76)
at com.marklogic.xcc.impl.SessionImpl.submitRequest(SessionImpl.java:261)
at com.marklogic.developer.corb.Transform.call(Transform.java:68)
at com.marklogic.developer.corb.Transform.call(Transform.java:1)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Any help will be highly appreciated.

thanks,
Sachin

On Tue, Nov 29, 2011 at 8:58 AM, Damon Feldman 
<[email protected]<mailto:[email protected]>> wrote:
Sachin,

Perhaps this was already mentioned, but your error isn't due to corrupt XML, 
exactly, but is because you have a float range index on the <price>, and your 
CoRB script adds an empty <price/> element. Empty values coerce to valid 
strings, but not valid floats.

If you change your transform, you may find CoRB runs without error, or at least 
that all errors are caught by a try/catch.

Yours,
Damon

________________________________
From: 
[email protected]<mailto:[email protected]>
 
[[email protected]<mailto:[email protected]>]
 On Behalf Of sachin gill 
[[email protected]<mailto:[email protected]>]
Sent: Monday, November 28, 2011 10:30 AM

To: General MarkLogic Developer Discussion
Subject: Re: [MarkLogic Dev General] CORB processing continuation query.


  Yeah Michael ,
    I  realized it after replying.
  When I  try to parse a corrupt XML it throws below exception and shuts down 
CORB.

  com.marklogic.xcc.exceptions.XQueryException: XDMP-RANGEINDEX: Range index 
error:
float 
fn:doc("/root/assets/173-cfa-study-session-17/173-cfa-study-session-17.xml")/asset/*:metadata/*:price:
 XDMP-CAST: (err:FORG0001) Invalid cast: xs:untypedAtomic("") cast as xs:float
in /assets/corb-pipeline.xqy
at 
com.marklogic.xcc.impl.handlers.ServerExceptionHandler.handleResponse(ServerExceptionHandler.java:30)
at 
com.marklogic.xcc.impl.handlers.EvalRequestController.serverDialog(EvalRequestController.java:72)
at 
com.marklogic.xcc.impl.handlers.AbstractRequestController.runRequest(AbstractRequestController.java:76)
at com.marklogic.xcc.impl.SessionImpl.submitRequest(SessionImpl.java:261)
at com.marklogic.developer.corb.Transform.call(Transform.java:68)
at com.marklogic.developer.corb.Transform.call(Transform.java:1)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Nov 28, 2011 2:28:14 AM com.marklogic.developer.corb.Manager stop


I have one more query, does CORB also have time out issue over network, as we 
are facing abrupt stopping of CORB  too when our fetched url are too large.


Thanks
Sachin

On Mon, Nov 28, 2011 at 8:49 PM, Michael Blakeley 
<[email protected]<mailto:[email protected]>> wrote:
I think John was suggesting an XQuery try-catch expression, not a Java one.

But you are more likely to get helpful suggestions if you post a full example 
of the exception you are trying to avoid. Corb throws some fatal exceptions of 
its own, when it cannot reasonably continue. It also re-throws various 
MarkLogic and XQuery exceptions. Seeing the exception that you are hitting 
would help.

-- Mike

On 28 Nov 2011, at 07:11 , sachin gill wrote:

> HI John,
>        thanx for the suggestion but I'm using CORB jar (so that if any 
> version version upgrade happen we don;t need to do lot of customisation) 
> rather than its code , so can't handle it inside CORB code .
>
> Thanks
> Sachin
>
> On Mon, Nov 28, 2011 at 6:50 PM, John Zhong 
> <[email protected]<mailto:[email protected]>> wrote:
> First idea is that you can use try/catch. For example:
>
> try {
>    (: your business code here :)
> } catch($e) {
>    (: your code to handle exception :)
> }
>
> John
>
> On Mon, Nov 28, 2011 at 6:41 PM, sachin gill 
> <[email protected]<mailto:[email protected]>> wrote:
> Hi ,
>    We are  facing bulk processing issue with CORB .We are using it to process 
> a large set of  XML's , it works fine till it doesn't get any issues or 
> exception.Once it finds any exception it stops,And we need to start from 
> scratch again.
>
> How can i ignore such exception while processing and continue for other xmls .
>
> Thanks
> Sachin
>
>
> _______________________________________________
> General mailing list
> [email protected]<mailto:[email protected]>
> http://developer.marklogic.com/mailman/listinfo/general
>
>
>
> _______________________________________________
> General mailing list
> [email protected]<mailto:[email protected]>
> http://developer.marklogic.com/mailman/listinfo/general
>
>
> _______________________________________________
> General mailing list
> [email protected]<mailto:[email protected]>
> http://developer.marklogic.com/mailman/listinfo/general

_______________________________________________
General mailing list
[email protected]<mailto:[email protected]>
http://developer.marklogic.com/mailman/listinfo/general


_______________________________________________
General mailing list
[email protected]<mailto:[email protected]>
http://developer.marklogic.com/mailman/listinfo/general

_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to