You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by mt...@apache.org on 2009/04/14 19:53:44 UTC

svn commit: r764903 - /commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/DirectByteBuffer.java

Author: mturk
Date: Tue Apr 14 17:53:43 2009
New Revision: 764903

URL: http://svn.apache.org/viewvc?rev=764903&view=rev
Log:
Add some more docs

Modified:
    commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/DirectByteBuffer.java

Modified: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/DirectByteBuffer.java
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/DirectByteBuffer.java?rev=764903&r1=764902&r2=764903&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/DirectByteBuffer.java (original)
+++ commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/DirectByteBuffer.java Tue Apr 14 17:53:43 2009
@@ -20,10 +20,14 @@
 
 /** DirectByteBuffer
  * <br/>
- * <b>Warning</b>: Using this class impropery may crash the running JVM.
+ * <b>Warning</b> Using this class impropery may crash the running JVM.
  * Any method call after free method was called might write or read from
  * the memory location that has been already allocated for
  * something else.
+ * <br />
+ * Using this class methods on ByteBuffers that were not created by
+ * DirectByteBuffer.allocate methods will almost certainly crash the
+ * running JVM.
  * @author Mladen Turk
  */
 public final class DirectByteBuffer {
@@ -51,6 +55,9 @@
      * Allocate a new ByteBuffer from memory
      * @param size The amount of memory to allocate
      * @return The ByteBuffer with allocated memory
+     *
+     * @throws OutOfMemoryError if memory cannot be allocated from the system.
+     * @throws IllegalArgumentException if <code>size</code> is invalid.
      */
     public static ByteBuffer allocate(int size)
         throws OutOfMemoryError, IllegalArgumentException
@@ -62,6 +69,9 @@
      * Allocate a new ByteBuffer from memory and set all of the memory to 0
      * @param size Length in bytes of each element.
      * @return The ByteBuffer with allocated memory
+     *
+     * @throws OutOfMemoryError if memory cannot be allocated from the system.
+     * @throws IllegalArgumentException if <code>size</code> is invalid.
      */
     public static ByteBuffer allocateAndInitToZero(int size)
         throws OutOfMemoryError, IllegalArgumentException
@@ -77,6 +87,10 @@
      * @param offset Offset from the memory to use
      * @param size The amount of memory to use
      * @return The ByteBuffer with attached memory
+     *
+     * @throws NullPointerException if <code>mem</code> is zero
+     * @throws IllegalArgumentException if <code>offest</code> or
+     *         <code>size</code> are invalid.
      */
     public static ByteBuffer allocate(long mem, int offset, int size)
         throws NullPointerException, IllegalArgumentException
@@ -86,22 +100,28 @@
 
     /**
      * Allocate a new ByteBuffer from already allocated ByteBuffer.
-     * @param b The ByteBuffer whos memory to use
+     * @param buf The ByteBuffer whos memory to use
      * @param offset Offset from the memory to use
      * @param size The amount of memory to use
      * @return The ByteBuffer with attached memory
+     *
+     * @throws NullPointerException if <code>buf</code> is null
+     * @throws IllegalArgumentException if <code>offest</code> or
+     *         <code>size</code> are invalid.
      */
-    public static ByteBuffer allocate(ByteBuffer b, int offset, int size)
+    public static ByteBuffer allocate(ByteBuffer buf, int offset, int size)
         throws NullPointerException, IllegalArgumentException
     {
-        return attach(address(b), offset, size);
+        return attach(address(buf), offset, size);
     }
 
     /**
      * Deallocates or frees a memory block used by ByteBuffer
-     * <br /><b>Warning :</b> Call this method only on ByteBuffers
-     * that were created by calling allocate.
+     * <br /><b>Warning</b> Call this method only on ByteBuffers
+     * that were created by DirectByteBuffer.allocate methods.
      * @param buf Previously allocated ByteBuffer to be freed.
+     *
+     * @throws NullPointerException if <code>buf</code> is null
      */
     public static native void free(ByteBuffer buf)
         throws NullPointerException;
@@ -123,6 +143,11 @@
      * @param b The ByteBuffer to use
      * @param c The character to set
      * @param count Number of characters
+     *
+     * @throws NullPointerException if source is null
+     * @throws IllegalArgumentException if <code>count</code> is less then <code>1</code>
+     * @throws IOIndexOutOfBoundsException if copying would cause access of
+     *         data outside ByteBuffer bounds.
      */
     public static native void set(ByteBuffer b, int c, int count)
         throws NullPointerException, IllegalArgumentException,
@@ -133,6 +158,11 @@
      * @param src The source ByteBuffer.
      * @param dst The destination ByteBuffer.
      * @param length The number of bytes to be copied.
+     *
+     * @throws NullPointerException if source or destination is null
+     * @throws IllegalArgumentException if length invalid
+     * @throws IOIndexOutOfBoundsException if copying would cause access of
+     *         data outside ByteBuffer bounds.
      */
     public static void copy(ByteBuffer src, ByteBuffer dst, int length)
         throws NullPointerException, IllegalArgumentException,
@@ -148,6 +178,11 @@
      * @param dst The destination ByteBuffer.
      * @param dstPos Starting position in the source ByteBuffer.
      * @param length The number of bytes to be copied.
+     *
+     * @throws NullPointerException if source or destination is null
+     * @throws IllegalArgumentException if length invalid
+     * @throws IOIndexOutOfBoundsException if copying would cause access of
+     *         data outside ByteBuffer bounds.
      */
     public static void copy(ByteBuffer src, int srcPos, ByteBuffer dst,
                             int dstPos, int length)