Hi, below I have included the thread dump of the application.
Thanks, Robert. 2010-03-01 17:30:23 Full thread dump Java HotSpot(TM) 64-Bit Server VM (14.1-b02 mixed mode): "Attach Listener" daemon prio=10 tid=0x0000000040d28000 nid=0x12e9 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "GC Daemon" daemon prio=10 tid=0x0000000040ea3000 nid=0x1286 in Object.wait() [0x00007ffaf7bde000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00007ffafe820a50> (a sun.misc.GC$LatencyLock) at sun.misc.GC$Daemon.run(GC.java:100) - locked <0x00007ffafe820a50> (a sun.misc.GC$LatencyLock) "RMI RenewClean-[127.0.1.1:47844]" daemon prio=10 tid=0x0000000040e9e800 nid=0x1285 in Object.wait() [0x00007ffaf7cdf000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00007ffafe804c98> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) - locked <0x00007ffafe804c98> (a java.lang.ref.ReferenceQueue$Lock) at sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:516) at java.lang.Thread.run(Thread.java:619) "RMI Scheduler(0)" daemon prio=10 tid=0x00000000409c9800 nid=0x1284 waiting on condition [0x00007ffaf7de0000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x00007ffafe804ff0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925) at java.util.concurrent.DelayQueue.take(DelayQueue.java:160) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:583) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:576) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619) "Low Memory Detector" daemon prio=10 tid=0x00000000409e2800 nid=0x1281 runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE "CompilerThread1" daemon prio=10 tid=0x00000000409df800 nid=0x1280 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "CompilerThread0" daemon prio=10 tid=0x00000000409db800 nid=0x127f waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "Signal Dispatcher" daemon prio=10 tid=0x00000000409d9800 nid=0x127e runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE "Finalizer" daemon prio=10 tid=0x00000000409b6000 nid=0x127c in Object.wait() [0x00007ffaf89c6000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00007ffafe820eb8> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) - locked <0x00007ffafe820eb8> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) "Reference Handler" daemon prio=10 tid=0x00000000409b4000 nid=0x127b in Object.wait() [0x00007ffaf8ac7000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00007ffafe820b40> (a java.lang.ref.Reference$Lock) at java.lang.Object.wait(Object.java:485) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116) - locked <0x00007ffafe820b40> (a java.lang.ref.Reference$Lock) "main" prio=10 tid=0x0000000040955800 nid=0x1276 runnable [0x00007ffb40756000] java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) at java.io.BufferedInputStream.read(BufferedInputStream.java:237) - locked <0x00007ffb27d13438> (a java.io.BufferedInputStream) at java.io.DataInputStream.readByte(DataInputStream.java:248) at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:195) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142) at org.apache.jackrabbit.rmi.server.ServerNode_Stub.setProperty(Unknown Source) at org.apache.jackrabbit.rmi.client.ClientNode.setProperty(ClientNode.java:129) at org.apache.jackrabbit.rmi.client.ClientNode.setProperty(ClientNode.java:236) at de.it2m.tel.mediaproxy.ext.data.AdvertDAO.saveAdvert(AdvertDAO.java:87) at de.it2m.tel.mediaproxy.ext.App.main(App.java:26) "VM Thread" prio=10 tid=0x00000000409ad000 nid=0x127a runnable "GC task thread#0 (ParallelGC)" prio=10 tid=0x000000004095f800 nid=0x1277 runnable "GC task thread#1 (ParallelGC)" prio=10 tid=0x0000000040961000 nid=0x1279 runnable "VM Periodic Task Thread" prio=10 tid=0x00000000409e5000 nid=0x1282 waiting on condition JNI global references: 672 2010/3/1 Thomas Müller <thomas.muel...@day.com>: > Hi, > > Could you create a full thread dump and post it? To create one, press > Ctrl+Pause (Windows) or use jsp -l / jstack <pid> / kill -QUIT <pid> > > Regards, > Thomas > > > On Mon, Mar 1, 2010 at 3:52 PM, Robert Eichinger > <robert.eichinger...@googlemail.com> wrote: >> Hi, >> >> I recently started developing an application that has to keep track of >> a large amount of images. I started using Jackrabbit 2.0.0 (webapp) >> and I am using PostgreSQL as Database backend. The repository is being >> accessed via jackrabbit-rmi. For small images (<50 kb) the whole >> system works fine, but when I want to put bigger images into the >> repository, the call to Node.setProperty() does not return and the >> whole application hangs. A small extract of my source code: >> >> Node imageNode = aidNode.addNode(id,"nt:file"); >> Node addInfoNode = imageNode.addNode("jcr:content","nt:resource"); >> addInfoNode.setProperty("jcr:mimeType", mimeType); >> lastModified.setTimeInMillis(file.lastModified()); >> addInfoNode.setProperty("jcr:lastModified", lastModified); >> Binary binImage = vf.createBinary(fis); >> addInfoNode.setProperty("jcr:data",binaryImage); >> session.save(); >> >> I tried different ways of solving the problem with jackrabbit 2.0.0 >> but none of them succeeded (MySQL as backend, FS as backend, using >> deprecated method Node.setProperty(String name, InputStream)). Then I >> tried jackrabbit 1.6 and it works perfectly for small and large >> images. >> >> My questions now are: >> Did I configure something wrong? >> Did I forget to add a mixin that is required by jackrabbit 2.0.0 or JCR 2.0? >> Is my way the correct way to store binary data in jackrabbit? >> >> Thanks in advance, >> Robert >> >