Hi Easy,

I guess the problem has been fixed in the 7.8 snapshot. Could you please give it a try and report back?

Best,
Christian

Am 18.12.2013 20:04 schrieb "easy" <lin_xd@126.com>:
Hi,all,
I have a web service as fellow :

declare
  %output:method("xml")
  %output:omit-xml-declaration("no")
  %output:media-type("application/xml")
  %updating
  %rest:path("/add_ehr_doc")
  %rest:POST("{$body}")
  %rest:header-param("pid","{$pid}")
  %rest:header-param("doc_id","{$doc_id}")
  %rest:header-param("op","{$op}","APND")
 function ehr:add_ehr_doc(
   $body ,$pid as xs:string,$doc_id as xs:string,$op as xs:string
 )
  {
    (:let $state:=db:open($ehr:dbname):)
    (:let $path:=if(string-length($pid)>=15 and string-length($pid)<=18) then
        substring($pid,1,6)||'/'||substring($pid,7,8)||'/'||substring($pid,15)||
      else
        $pid:)
    let $fp:=substring($pid,1,6)||'/'||substring($pid,7,8)||'/'||substring($pid,15)||'.xml'
    return
    if (db:exists($ehr:dbname,$fp)) then
       (
         insert node ($body//*:DataSet) into (doc($ehr:dbname||"/"||$fp)//*:BasicDataset),db:output(<msg>
ppend</Ack><Url>{$fp}</Url></msg>)          )
   else
     (    db:add($ehr:dbname, $body,$fp),db:output(<msg><Ack>201 new add</Ack><Url>{$fp}</Url></msg>)
       )
 };


then there is a process call the service continuously. some times, will occur this error.

10:00:10.663    10.8.252.93:40461       admin   REQUEST [POST] http://10.8.252.91:8984/add_ehr_doc
10:00:10.669    10.8.252.93:40461       admin   500     Unexpected error: Improper use? Potential bug? Your feedbac
k is welcome: Contact: basex-talk@mailman.uni-konstanz.de Version: BaseX 7.7.2 Java: Sun Microsystems Inc., 1.6.0_2
4 OS: Linux, amd64 Stack Trace: java.lang.IllegalMonitorStateException: Thread already holds one or more locks. at
org.basex.core.DBLocking.acquire(DBLocking.java:106) at org.basex.core.Context.register(Context.java:239) at org.ba
sex.http.restxq.RestXqResponse.create(RestXqResponse.java:69) at org.basex.http.restxq.RestXqModule.process(RestXqM
odule.java:108) at org.basex.http.restxq.RestXqFunction.process(RestXqFunction.java:100) at org.basex.http.restxq.R
estXqServlet.run(RestXqServlet.java:31) at org.basex.http.BaseXServlet.service(BaseXServlet.java:58) at javax.servl
et.http.HttpServlet.service(HttpServlet.java:848) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.j
ava:684) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:457) at org.eclipse.jetty.server.
handler.ScopedHand...   5.36 ms




_______________________________________________
BaseX-Talk mailing list
BaseX-Talk@mailman.uni-konstanz.de
https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk