Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Licensed to the Apache Software Foundation (ASF) under one
   * or more contributor license agreements.  See the NOTICE file
   * distributed with this work for additional information
   * regarding copyright ownership.  The ASF licenses this file
   * to you under the Apache License, Version 2.0 (the
   * "License"); you may not use this file except in compliance
   * with the License.  You may obtain a copy of the License at
   *
  * http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  * KIND, either express or implied.  See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
 package org.apache.flume.channel.file;
 
 import java.io.File;
 
 
 
   private static final Logger LOG = LoggerFactory
   private EventQueueBackingStoreFactory() {}
   static EventQueueBackingStore get(File checkpointFileint capacity,
       String namethrows Exception {
     return get(checkpointFilecapacitynametrue);
   }
 
   static EventQueueBackingStore get(File checkpointFileint capacity,
       String nameboolean upgradethrows Exception {
     return get(checkpointFilenullcapacitynameupgradefalsefalse);
   }
   static EventQueueBackingStore get(File checkpointFile,
       File backupCheckpointDirint capacity,String name,
       boolean upgradeboolean shouldBackupboolean compressBackup)
       throws Exception {
     File metaDataFile = Serialization.getMetaDataFile(checkpointFile);
     RandomAccessFile checkpointFileHandle = null;
     try {
       boolean checkpointExists = checkpointFile.exists();
       boolean metaDataExists = metaDataFile.exists();
       if(metaDataExists) {
         // if we have a metadata file but no checkpoint file, we have a problem
         // delete everything in the checkpoint directory and force
         // a full replay.
         if(!checkpointExists || checkpointFile.length() == 0) {
           .warn("MetaData file for checkpoint "
                   + " exists but checkpoint does not. Checkpoint = " + checkpointFile
                   + ", metaDataFile = " + metaDataFile);
           throw new BadCheckpointException(
                   "The last checkpoint was not completed correctly, " +
                       "since Checkpoint file does not exist while metadata " +
                       "file does.");
         }
       }
       // brand new, use v3
       if(!checkpointExists) {
         if(!checkpointFile.createNewFile()) {
           throw new IOException("Cannot create " + checkpointFile);
         }
         return new EventQueueBackingStoreFileV3(checkpointFile,
             capacitynamebackupCheckpointDirshouldBackupcompressBackup);
       }
       // v3 due to meta file, version will be checked by backing store
       if(metaDataExists) {
         return new EventQueueBackingStoreFileV3(checkpointFilecapacity,
           namebackupCheckpointDirshouldBackupcompressBackup);
       }
       checkpointFileHandle = new RandomAccessFile(checkpointFile"r");
       int version = (int)checkpointFileHandle.readLong();
       if(. == version) {
         if(upgrade) {
           return upgrade(checkpointFilecapacitynamebackupCheckpointDir,
             shouldBackupcompressBackup);
         }
         return new EventQueueBackingStoreFileV2(checkpointFilecapacityname);
       }
       .error("Found version " + Integer.toHexString(version) + " in " +
           checkpointFile);
       throw new BadCheckpointException("Checkpoint file exists with " +
               . + " but no metadata file found.");
     } finally {
       if(checkpointFileHandle != null) {
         try {
           checkpointFileHandle.close();
         } catch(IOException e) {
           .warn("Unable to close " + checkpointFilee);
         }
       }
    }
  }
  private static EventQueueBackingStore upgrade(File checkpointFile,
    int capacityString nameFile backupCheckpointDir,
    boolean shouldBackupboolean compressBackup)
          throws Exception {
    .info("Attempting upgrade of " + checkpointFile + " for " + name);
    EventQueueBackingStoreFileV2 backingStoreV2 =
        new EventQueueBackingStoreFileV2(checkpointFilecapacityname);
    String backupName = checkpointFile.getName() + "-backup-"
        + System.currentTimeMillis();
    Files.copy(checkpointFile,
        new File(checkpointFile.getParentFile(), backupName));
    File metaDataFile = Serialization.getMetaDataFile(checkpointFile);
    EventQueueBackingStoreFileV3.upgrade(backingStoreV2checkpointFile,
        metaDataFile);
    return new EventQueueBackingStoreFileV3(checkpointFilecapacityname,
      backupCheckpointDirshouldBackupcompressBackup);
  }
New to GrepCode? Check out our FAQ X