Hi,
       When I add a statement and then delete a different statement within
   a single transaction begin/end block, Tomcat is complaining about a
   dangling thread. Here is what I  am doing:
    1. Tx begin
    2. Add a statement
    3. If add succeeded, Tx.success()
    4. Delete a statement
    5. If delete failed, Tx.failure()
    6. In the finally block of the try statement, I call Tx.finish(),
       shutdown the store, etc.

   I have a workaround by creating 2 separate transactions (one for the
   add and the other for the delete) and managing them independently with
   associated status codes, which works fine. However, what I would really
   like is to be able to do multiple DB modifying operations within a
   single transaction block.
   Assuming this is doable, would be nice to have a Tx.state() method that
   returns whether Tx.success() or Tx.failure() was last called.
   Thanks
   madhu
   Tomcat log:
   Apr 13, 2010 9:51:27 PM org.apache.catalina.loader.WebappClassLoader
   clearThreadLocalMap
   SEVERE: A web application created a ThreadLocal with key of type [null]
   (value [null]) and a value of type [org.neo4j.index.Isolation] (value
   [SAME_TX]) but failed to remove it when the web application was
   stopped. To prevent a memory leak, the ThreadLocal has been forcibly
   removed.
   Apr 13, 2010 9:51:27 PM org.apache.catalina.loader.WebappClassLoader
   clearReferencesThreadLocals
   WARNING: Failed to clear ThreadLocal references
   java.lang.reflect.InvocationTargetException
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at
   sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja
   va:39)
           at
   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso
   rImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:597)
           at
   org.apache.catalina.loader.WebappClassLoader.clearThreadLocalMap(Webapp
   ClassLoader.java:2102)
           at
   org.apache.catalina.loader.WebappClassLoader.clearReferencesThreadLocal
   s(WebappClassLoader.java:2027)
           at
   org.apache.catalina.loader.WebappClassLoader.clearReferences(WebappClas
   sLoader.java:1710)
           at
   org.apache.catalina.loader.WebappClassLoader.stop(WebappClassLoader.jav
   a:1622)
           at
   org.apache.catalina.loader.WebappLoader.stop(WebappLoader.java:710)
           at
   org.apache.catalina.core.StandardContext.stop(StandardContext.java:4649
   )
           at
   org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:9
   24)
           at
   org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1
   174)
           at
   org.apache.catalina.startup.HostConfig.check(HostConfig.java:1342)
           at
   org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:3
   03)
           at
   org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleS
   upport.java:119)
           at
   org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.
   java:1337)
           at
   org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.pro
   cessChildren(ContainerBase.java:1601)
           at
   org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.pro
   cessChildren(ContainerBase.java:1610)
           at
   org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run
   (ContainerBase.java:1590)
           at java.lang.Thread.run(Thread.java:637)
   Caused by: java.lang.NullPointerException
           at java.lang.ThreadLocal.access$400(ThreadLocal.java:53)
           at
   java.lang.ThreadLocal$ThreadLocalMap.remove(ThreadLocal.java:436)
           ... 20 more
_______________________________________________
Neo mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to