private boolean loadLOBDataFromDB(){
  m_items=new ArrayList<MAttachmentEntry>();
  byte[] data=getBinaryData();
  if (data == null)   return true;
  log.fine("ZipSize=" + data.length);
  if (data.length == 0)   return true;
  if (!ZIP.equals(getTitle())) {
    m_items.add(new MAttachmentEntry(getTitle(),data,1));
    return true;
  }
  try {
    ByteArrayInputStream in=new ByteArrayInputStream(data);
    ZipInputStream zip=new ZipInputStream(in);
    ZipEntry entry=zip.getNextEntry();
    while (entry != null) {
      String name=entry.getName();
      ByteArrayOutputStream out=new ByteArrayOutputStream();
      byte[] buffer=new byte[2048];
      int length=zip.read(buffer);
      while (length != -1) {
        out.write(buffer,0,length);
        length=zip.read(buffer);
      }
      byte[] dataEntry=out.toByteArray();
      log.fine(name + " - size=" + dataEntry.length+ " - zip="+ entry.getCompressedSize()+ "("+ entry.getSize()+ ") "+ (entry.getCompressedSize() * 100 / entry.getSize())+ "%");
      m_items.add(new MAttachmentEntry(name,dataEntry,m_items.size() + 1));
      entry=zip.getNextEntry();
    }
  }
 catch (  Exception e) {
    log.log(Level.SEVERE,"loadLOBData",e);
    m_items=null;
    return false;
  }
  return true;
}

private boolean loadLOBDataFromDB ( ) { m_items = new ArrayList < MAttachmentEntry > ( ) ; byte [ ] data = getBinaryData ( ) ; if ( data == null ) return true ; log . fine ( "ZipSize=" + data . length ) ; if ( data . length == 0 ) return true ; if ( ! ZIP . equals ( getTitle ( ) ) ) { m_items . add ( new MAttachmentEntry ( getTitle ( ) , data , 1 ) ) ; return true ; } try { ByteArrayInputStream in = new ByteArrayInputStream ( data ) ; ZipInputStream zip = new ZipInputStream ( in ) ; ZipEntry entry = zip . getNextEntry ( ) ; while ( entry != null ) { String name = entry . getName ( ) ; ByteArrayOutputStream out = new ByteArrayOutputStream ( ) ; byte [ ] buffer = new byte [ 2048 ] ; int length = zip . read ( buffer ) ; while ( length != - 1 ) { out . write ( buffer , 0 , length ) ; length = zip . read ( buffer ) ; } byte [ ] dataEntry = out . toByteArray ( ) ; log . fine ( name + " - size=" + dataEntry . length + " - zip=" + entry . getCompressedSize ( ) + "(" + entry . getSize ( ) + ") " + ( entry . getCompressedSize ( ) * 100 / entry . getSize ( ) ) + "%" ) ; m_items . add ( new MAttachmentEntry ( name , dataEntry , m_items . size ( ) + 1 ) ) ; entry = zip . getNextEntry ( ) ; } } catch ( Exception e ) { log . log ( Level . SEVERE , "loadLOBData" , e ) ; m_items = null ; return false ; } return true ; }
load data from database
