On Tue, Mar 2, 2010 at 08:05, Robert Eichinger <robert.eichinger...@googlemail.com> wrote: > i included the thread dump of glassfish below. Unfortunately its a bit > long, but I hope it helps. It happens with all files larger than ca. > 50 kb, the app then blocks forever. I tested the same configuration > with jackrabbit 1.6 and files up to 15 mb size and it worked fine.
The interesting parts are below. There are two local RMI connections writing a binary passed from the jcr-rmi client into a (temporary) file. But both are running. So either the RMI connection is very slow, or the disk I/O is slow. Or the jcr-rmi SerializableBinary implementation has a bug when serializing/deserializing larger objects (> 50kb as you say), but someone else should take a look at it. Regards, Alex > "RMI TCP Connection(10)-127.0.1.1" daemon prio=10 > tid=0x00000000419ee800 nid=0xb6d runnable [0x00007fa0addd6000] > java.lang.Thread.State: RUNNABLE > at java.io.FileOutputStream.writeBytes(Native Method) > at java.io.FileOutputStream.write(FileOutputStream.java:260) > at > org.apache.jackrabbit.rmi.value.SerializableBinary.readObject(SerializableBinary.java:185) > - locked <0x00007fa0dafa95f0> (a > org.apache.jackrabbit.rmi.value.SerializableBinary) > at sun.reflect.GeneratedMethodAccessor68.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974) > at > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849) > at > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) > at > java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) > at > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) > at > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) > at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) > at sun.rmi.server.UnicastRef.unmarshalValue(UnicastRef.java:306) > at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:290) > at sun.rmi.transport.Transport$1.run(Transport.java:159) > at java.security.AccessController.doPrivileged(Native Method) > at sun.rmi.transport.Transport.serviceCall(Transport.java:155) > at > sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535) > at > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790) > at > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > at java.lang.Thread.run(Thread.java:619) > "RMI TCP Connection(8)-127.0.1.1" daemon prio=10 > tid=0x00000000420e8800 nid=0xad8 runnable [0x00007fa0aede4000] > java.lang.Thread.State: RUNNABLE > at java.io.FileOutputStream.writeBytes(Native Method) > at java.io.FileOutputStream.write(FileOutputStream.java:260) > at > org.apache.jackrabbit.rmi.value.SerializableBinary.readObject(SerializableBinary.java:185) > - locked <0x00007fa0dafec2f0> (a > org.apache.jackrabbit.rmi.value.SerializableBinary) > at sun.reflect.GeneratedMethodAccessor68.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974) > at > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849) > at > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) > at > java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) > at > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) > at > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) > at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) > at sun.rmi.server.UnicastRef.unmarshalValue(UnicastRef.java:306) > at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:290) > at sun.rmi.transport.Transport$1.run(Transport.java:159) > at java.security.AccessController.doPrivileged(Native Method) > at sun.rmi.transport.Transport.serviceCall(Transport.java:155) > at > sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535) > at > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790) > at > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > at java.lang.Thread.run(Thread.java:619) -- Alexander Klimetschek alexander.klimetsc...@day.com