jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robert Eichinger <robert.eichinger...@googlemail.com>
Subject Re: Program blocks on setProperty() in Jackrabbit-webapp-2.0.0
Date Mon, 01 Mar 2010 16:42:43 GMT
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.mueller@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.re@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
>>
>

Mime
View raw message