public byte[] toBytes() {

		this.allIndex += this.index;

		item.setLimit(this.index);
		byte[] result = new byte[this.allIndex];
		if (null != otherItem) {
			otherItem.add(item);
			item = null;
			for (int i = 0; i < otherItem.size(); i++) {
				ByteArrayItem temp = otherItem.get(i);
				int limit = temp.getLimit();
				if (limit > 0) {
					System.arraycopy(temp.getArray(), 0, result, temp.getBaIndex(), limit);
				}
				temp.recycle();
			}
			otherItem.clear();
			otherItem = null;
		} else {
			byte[] buffer = item.getArray();
			System.arraycopy(buffer, 0, result, 0, this.allIndex);
			item.recycle();
			item = null;
		}
		return result;
	}
public byte [ ] toBytes ( ) { this . allIndex += this . index ; item . setLimit ( this . index ) ; byte [ ] result = new byte [ this . allIndex ] ; if ( null != otherItem ) { otherItem . add ( item ) ; item = null ; for ( int i = 0 ; i < otherItem . size ( ) ; i ++ ) { ByteArrayItem temp = otherItem . get ( i ) ; int limit = temp . getLimit ( ) ; if ( limit > 0 ) { System . arraycopy ( temp . getArray ( ) , 0 , result , temp . getBaIndex ( ) , limit ) ; } temp . recycle ( ) ; } otherItem . clear ( ) ; otherItem = null ; } else { byte [ ] buffer = item . getArray ( ) ; System . arraycopy ( buffer , 0 , result , 0 , this . allIndex ) ; item . recycle ( ) ; item = null ; } return result ; }
}