From: bdemsky Date: Mon, 5 Nov 2007 08:49:01 +0000 (+0000) Subject: check more i/o code in X-Git-Tag: preEdgeChange~394 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=be27abab259135eca1ba9d4c75bcc66d1c9f3cc1;p=IRC.git check more i/o code in --- diff --git a/Robust/src/ClassLibrary/BufferedInputStream.java b/Robust/src/ClassLibrary/BufferedInputStream.java index 4eff370b..e56aa586 100644 --- a/Robust/src/ClassLibrary/BufferedInputStream.java +++ b/Robust/src/ClassLibrary/BufferedInputStream.java @@ -10,4 +10,8 @@ public class BufferedInputStream extends InputStream { public int read(byte[] b) { return in.read(b); } + + public void close() { + in.close(); + } } diff --git a/Robust/src/ClassLibrary/FileOutputStream.java b/Robust/src/ClassLibrary/FileOutputStream.java index cbb46499..22babeaa 100644 --- a/Robust/src/ClassLibrary/FileOutputStream.java +++ b/Robust/src/ClassLibrary/FileOutputStream.java @@ -43,6 +43,10 @@ public class FileOutputStream extends OutputStream { nativeWrite(fd, b, 0, b.length); } + public void write(byte[] b, int index, int len) { + nativeWrite(fd, b, index, len); + } + public void flush() { nativeFlush(fd); } diff --git a/Robust/src/ClassLibrary/InputStream.java b/Robust/src/ClassLibrary/InputStream.java index 136729f9..e3027049 100644 --- a/Robust/src/ClassLibrary/InputStream.java +++ b/Robust/src/ClassLibrary/InputStream.java @@ -1,9 +1,12 @@ public class InputStream { public int read() { + System.printString("called unimplemented read\n"); } public int read(byte[] b) { + System.printString("called unimplemented read(byte[]b)\n"); } public void close() { + System.printString("Called unimplemented close()\n"); } } diff --git a/Robust/src/ClassLibrary/Object.java b/Robust/src/ClassLibrary/Object.java index 92971f66..e968e17b 100644 --- a/Robust/src/ClassLibrary/Object.java +++ b/Robust/src/ClassLibrary/Object.java @@ -19,7 +19,7 @@ public class Object { public native int getType(); public String toString() { - return String.valueOf(this); + return "Object"+hashCode(); } public boolean equals(Object o) { diff --git a/Robust/src/ClassLibrary/ObjectJava.java b/Robust/src/ClassLibrary/ObjectJava.java index 0ef8f296..59a62f4a 100644 --- a/Robust/src/ClassLibrary/ObjectJava.java +++ b/Robust/src/ClassLibrary/ObjectJava.java @@ -22,7 +22,7 @@ public class Object { public native int MonitorExit(); public String toString() { - return String.valueOf(this); + return "Object"+hashCode(); } public boolean equals(Object o) { diff --git a/Robust/src/ClassLibrary/ObjectJavaDSM.java b/Robust/src/ClassLibrary/ObjectJavaDSM.java index ff66f176..c0e9fc42 100644 --- a/Robust/src/ClassLibrary/ObjectJavaDSM.java +++ b/Robust/src/ClassLibrary/ObjectJavaDSM.java @@ -19,7 +19,7 @@ public class Object { public native int getType(); public String toString() { - return String.valueOf(this); + return "Object"+hashCode(); } public boolean equals(Object o) { diff --git a/Robust/src/ClassLibrary/ObjectJavaNT.java b/Robust/src/ClassLibrary/ObjectJavaNT.java index 7443bdb1..2d768eb6 100644 --- a/Robust/src/ClassLibrary/ObjectJavaNT.java +++ b/Robust/src/ClassLibrary/ObjectJavaNT.java @@ -17,7 +17,7 @@ public class Object { public native int getType(); public String toString() { - return String.valueOf(this); + return "Object"+hashCode(); } public boolean equals(Object o) { diff --git a/Robust/src/ClassLibrary/OutputStream.java b/Robust/src/ClassLibrary/OutputStream.java index 22fadd19..eab22f24 100644 --- a/Robust/src/ClassLibrary/OutputStream.java +++ b/Robust/src/ClassLibrary/OutputStream.java @@ -3,17 +3,21 @@ public class OutputStream { } public void write(int ch) { + System.printString("Called unimplemented write(int)\n"); } public void write(byte[] b) { + System.printString("Called unimplemented write(byte[])\n"); } public void write(byte[] b, int off, int len) { + System.printString("Called unimplemented write(byte[],int,int)\n"); } public void flush() { } public void close() { + System.printString("Called unimplemented close()\n"); } } diff --git a/Robust/src/ClassLibrary/OutputStreamWriter.java b/Robust/src/ClassLibrary/OutputStreamWriter.java index b1afd6e9..480b78a7 100644 --- a/Robust/src/ClassLibrary/OutputStreamWriter.java +++ b/Robust/src/ClassLibrary/OutputStreamWriter.java @@ -4,7 +4,11 @@ public class OutputStreamWriter extends Writer { this.fos=fos; } - - + public void write(String s) { + fos.write(s.getBytes()); + } + public void flush() { + fos.flush(); + } } diff --git a/Robust/src/ClassLibrary/Socket.java b/Robust/src/ClassLibrary/Socket.java index aa9d1145..c8b796e3 100644 --- a/Robust/src/ClassLibrary/Socket.java +++ b/Robust/src/ClassLibrary/Socket.java @@ -7,13 +7,17 @@ public class Socket { public Socket() { sin=new SocketInputStream(this); - + sout=new SocketOutputStream(this); } public InputStream getInputStream() { return sin; } + public OutputSream getOutputStream() { + return sout; + } + public Socket(String host, int port) { InetAddress address=InetAddress.getByName(host); fd=nativeBind(address.getAddress(), port); @@ -37,11 +41,15 @@ public class Socket { return nativeRead(b); } public void write(byte[] b) { - nativeWrite(b); + nativeWrite(b, 0, b.length); + } + + public void write(byte[] b, int offset, int leng) { + nativeWrite(b, offset, len); } private native int nativeRead(byte[] b); - private native void nativeWrite(byte[] b); + private native void nativeWrite(byte[] b, int offset, int len); private native void nativeClose(); public void close() { diff --git a/Robust/src/ClassLibrary/SocketInputStream.java b/Robust/src/ClassLibrary/SocketInputStream.java index b63bfcd8..be7b58c3 100644 --- a/Robust/src/ClassLibrary/SocketInputStream.java +++ b/Robust/src/ClassLibrary/SocketInputStream.java @@ -9,6 +9,14 @@ public class SocketInputStream extends InputStream { int len=s.read(x); if (len==0) return -1; - else return x[1]; + else return x[0]; + } + + public int read(byte[] b) { + return s.read(b); + } + + public void close() { + s.close(); } } diff --git a/Robust/src/ClassLibrary/SocketJava.java b/Robust/src/ClassLibrary/SocketJava.java index a24a7fe3..c2b85418 100644 --- a/Robust/src/ClassLibrary/SocketJava.java +++ b/Robust/src/ClassLibrary/SocketJava.java @@ -21,11 +21,15 @@ public class Socket { InetAddress address=InetAddress.getByName(host); fd=nativeBind(address.getAddress(), port); nativeConnect(fd, address.getAddress(), port); + sin=new SocketInputStream(this); + sout=new SocketOutputStream(this); } public Socket(InetAddress address, int port) { fd=nativeBind(address.getAddress(), port); nativeConnect(fd, address.getAddress(), port); + sin=new SocketInputStream(this); + sout=new SocketOutputStream(this); } public static native int nativeBind(byte[] address, int port); @@ -40,11 +44,15 @@ public class Socket { return nativeRead(b); } public void write(byte[] b) { - nativeWrite(b); + nativeWrite(b, 0, b.length); + } + + public void write(byte[] b, int offset, int len) { + nativeWrite(b, offset, len); } private native int nativeRead(byte[] b); - private native void nativeWrite(byte[] b); + private native void nativeWrite(byte[] b, int offset, int len); private native void nativeClose(); public void close() { diff --git a/Robust/src/ClassLibrary/SocketOutputStream.java b/Robust/src/ClassLibrary/SocketOutputStream.java index 6e4167da..4e2a7a69 100644 --- a/Robust/src/ClassLibrary/SocketOutputStream.java +++ b/Robust/src/ClassLibrary/SocketOutputStream.java @@ -4,5 +4,21 @@ public class SocketOutputStream extends OutputStream { this.s=s; } + public void write(byte[]b) { + s.write(b); + } + + public void write(int ch) { + byte[] b=new byte[1]; + b[0]=(byte)ch; + s.write(b); + } + public void write(byte[] b, int offset, int len) { + s.write(b, offset, len); + } + + public void close() { + s.close(); + } } diff --git a/Robust/src/ClassLibrary/String.java b/Robust/src/ClassLibrary/String.java index 4ad4b7c9..17452586 100644 --- a/Robust/src/ClassLibrary/String.java +++ b/Robust/src/ClassLibrary/String.java @@ -56,6 +56,7 @@ public class String { String str=new String(); if (beginIndex>this.count||endIndex>this.count||beginIndex>endIndex) { // FIXME + System.printString("Index error: "+this+" "+beginIndex+" "+endIndex+"\n"); } str.value=this.value; str.count=endIndex-beginIndex; @@ -152,7 +153,7 @@ public class String { if (k>fromIndex) k=fromIndex; for(;k>=0;k--) { - if (regionMatches(fromIndex, str, 0, str.count)) + if (regionMatches(k, str, 0, str.count)) return k; } return -1; diff --git a/Robust/src/ClassLibrary/Writer.java b/Robust/src/ClassLibrary/Writer.java index e0959e55..c1728a2c 100644 --- a/Robust/src/ClassLibrary/Writer.java +++ b/Robust/src/ClassLibrary/Writer.java @@ -1,5 +1,6 @@ public class Writer { public void write(String s) { + System.printString("Unimplemented write(String) in Writer\n"); } public void write(String s, int off, int len) { @@ -7,8 +8,10 @@ public class Writer { } public void flush() { - } + System.printString("Unimplemented flush in Writer\n"); + } public void close() { + System.printString("Unimplemented close in Writer\n"); } } diff --git a/Robust/src/Runtime/socket.c b/Robust/src/Runtime/socket.c index d1ddf28a..69e7c12d 100644 --- a/Robust/src/Runtime/socket.c +++ b/Robust/src/Runtime/socket.c @@ -281,10 +281,9 @@ int CALL02(___ServerSocket______nativeaccept____L___Socket___,struct ___ServerSo return newfd; } -void CALL02(___Socket______nativeWrite_____AR_B, struct ___Socket___ * ___this___, struct ArrayObject * ___b___) { +void CALL24(___Socket______nativeWrite_____AR_B_I_I, int offset, int length, struct ___Socket___ * ___this___, struct ArrayObject * ___b___, int offset, int length) { int fd=VAR(___this___)->___fd___; - int length=VAR(___b___)->___length___; - char * charstr=((char *)& VAR(___b___)->___length___)+sizeof(int); + char * charstr=((char *)& VAR(___b___)->___length___)+sizeof(int)+offset; while(1) { int bytewritten=write(fd, charstr, length); if (bytewritten==-1&&errno==EAGAIN)