qwertyxyzzy / matlabcontrol

Automatically exported from code.google.com/p/matlabcontrol
0 stars 0 forks source link

big matrix cause MatlabInvocationException #18

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What version of matlabcontrol are you using?
(Release versions: 4.1.0, 4.0.0, 3.1.0, 3.0.1, 3.0.0, or 2.0.0)
4.1.0

What version of MATLAB are you using?
MATLAB_R2013a

What operating system are you using?
Mac

Are you using matlabcontrol from inside MATLAB or outside MATLAB?
outside

What steps will reproduce the problem?
1.create matrix in Java
2.pass matrix to matlab
3.when the matrix is of size more than 3000*2000, it causes the following 
exception:
//////////////////
Exception in thread "main" matlabcontrol.MatlabInvocationException: Object 
attempting to be sent cannot be transferred between Java Virtual Machines
    at matlabcontrol.MatlabInvocationException$Reason.asException(MatlabInvocationException.java:62)
    at matlabcontrol.RemoteMatlabProxy.invoke(RemoteMatlabProxy.java:190)
    at matlabcontrol.RemoteMatlabProxy.invokeAndWait(RemoteMatlabProxy.java:309)
    at matlabcontrol.extensions.MatlabTypeConverter.setNumericArray(MatlabTypeConverter.java:128)
    at lib.DocumentVector.getRevMilestoneVector(DocumentVector.java:63)
    at lib.SemancticCovergence.main(SemancticCovergence.java:89)
Caused by: java.rmi.MarshalException: error marshalling arguments; nested 
exception is: 
    java.net.SocketException: Broken pipe
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:138)
    at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:178)
    at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:132)
    at matlabcontrol.$Proxy9.invokeAndWait(Unknown Source)
    at matlabcontrol.RemoteMatlabProxy$8.invoke(RemoteMatlabProxy.java:314)
    at matlabcontrol.RemoteMatlabProxy.invoke(RemoteMatlabProxy.java:182)
    ... 4 more
Caused by: java.net.SocketException: Broken pipe
    at java.net.SocketOutputStream.socketWrite0(Native Method)
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
    at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
    at java.io.BufferedOutputStream.write(BufferedOutputStream.java:109)
    at java.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1860)
    at java.io.ObjectOutputStream$BlockDataOutputStream.writeByte(ObjectOutputStream.java:1898)
    at java.io.ObjectOutputStream.writeFatalException(ObjectOutputStream.java:1559)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:334)
    at sun.rmi.server.UnicastRef.marshalValue(UnicastRef.java:274)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:133)
    ... 9 more
//////////////////////
What did you expect to happen? What happened instead?
I expected to get some sub matrix and get the median array of the sub matrix. 
For matrix of smaller size, it works fine. 

If there was a stack trace, please copy it here.

Please provide any additional information below.

Original issue reported on code.google.com by dhj0...@googlemail.com on 17 Mar 2014 at 6:44