Changeset dd400bb for core


Ignore:
Timestamp:
Dec 22, 2016 2:13:39 PM (4 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
ffcd2d4
Parents:
63a2a6d
Message:

Update: Fix JVM crash and i2p.jar corruption when updating from -1

File:
1 edited

Legend:

Unmodified
Added
Removed
  • core/java/src/net/i2p/util/FileUtil.java

    r63a2a6d rdd400bb  
    9999
    100100    /**
     101      * Warning - do not call any new classes from here, or
     102      * update will crash the JVM.
     103      *
    101104      * @param logLevel Log.WARN, etc.
    102105      * @return true if it was copied successfully
     
    107110        ZipFile zip = null;
    108111        try {
     112            final byte buf[] = new byte[8192];
    109113            zip = new ZipFile(zipfile);
    110114            Enumeration<? extends ZipEntry> entries = zip.entries();
     
    154158                        } else {
    155159                            fos = new FileOutputStream(target);
    156                             DataHelper.copy(in, fos);
     160                            // We do NOT use DataHelper.copy() because it loads new classes
     161                            // and causes the update to crash.
     162                            //DataHelper.copy(in, fos);
     163                            int read;
     164                            while ((read = in.read(buf)) != -1) {
     165                                   fos.write(buf, 0, read);
     166                            }   
    157167                            if (logLevel <= Log.INFO)
    158168                                System.err.println("INFO: File [" + entry.getName() + "] extracted");
Note: See TracChangeset for help on using the changeset viewer.