private void readHeader() { // byte[12] tzdata_version -- "tzdata2012f\0" // int index_offset // int data_offset // int zonetab_offset BufferIterator it = mappedFile.bigEndianIterator(); byte[] tzdata_version = new byte[12]; it.readByteArray(tzdata_version, 0, tzdata_version.length); String magic = new String(tzdata_version, 0, 6, StandardCharsets.US_ASCII); if (!magic.equals("tzdata") || tzdata_version[11] != 0) { throw new RuntimeException("bad tzdata magic: " + Arrays.toString(tzdata_version)); } version = new String(tzdata_version, 6, 5, StandardCharsets.US_ASCII); int index_offset = it.readInt(); int data_offset = it.readInt(); int zonetab_offset = it.readInt(); readIndex(it, index_offset, data_offset); readZoneTab(it, zonetab_offset, (int) mappedFile.size() - zonetab_offset); }
private void readHeader() { // byte[12] tzdata_version -- "tzdata2012f\0" // int index_offset // int data_offset // int zonetab_offset BufferIterator it = mappedFile.bigEndianIterator(); byte[] tzdata_version = new byte[12]; it.readByteArray(tzdata_version, 0, tzdata_version.length); String magic = new String(tzdata_version, 0, 6, StandardCharsets.US_ASCII); if (!magic.equals("tzdata") || tzdata_version[11] != 0) { throw new RuntimeException("bad tzdata magic: " + Arrays.toString(tzdata_version)); } version = new String(tzdata_version, 6, 5, StandardCharsets.US_ASCII); int index_offset = it.readInt(); int data_offset = it.readInt(); int zonetab_offset = it.readInt(); readIndex(it, index_offset, data_offset); readZoneTab(it, zonetab_offset, (int) mappedFile.size() - zonetab_offset); }
private void readHeader() { // byte[12] tzdata_version -- "tzdata2012f\0" // int index_offset // int data_offset // int zonetab_offset BufferIterator it = mappedFile.bigEndianIterator(); byte[] tzdata_version = new byte[12]; it.readByteArray(tzdata_version, 0, tzdata_version.length); String magic = new String(tzdata_version, 0, 6, StandardCharsets.US_ASCII); if (!magic.equals("tzdata") || tzdata_version[11] != 0) { throw new RuntimeException("bad tzdata magic: " + Arrays.toString(tzdata_version)); } version = new String(tzdata_version, 6, 5, StandardCharsets.US_ASCII); int index_offset = it.readInt(); int data_offset = it.readInt(); int zonetab_offset = it.readInt(); readIndex(it, index_offset, data_offset); readZoneTab(it, zonetab_offset, (int) mappedFile.size() - zonetab_offset); }
private void readHeader() { // byte[12] tzdata_version -- "tzdata2012f\0" // int index_offset // int data_offset // int zonetab_offset BufferIterator it = mappedFile.bigEndianIterator(); byte[] tzdata_version = new byte[12]; it.readByteArray(tzdata_version, 0, tzdata_version.length); String magic = new String(tzdata_version, 0, 6, StandardCharsets.US_ASCII); if (!magic.equals("tzdata") || tzdata_version[11] != 0) { throw new RuntimeException("bad tzdata magic: " + Arrays.toString(tzdata_version)); } version = new String(tzdata_version, 6, 5, StandardCharsets.US_ASCII); int index_offset = it.readInt(); int data_offset = it.readInt(); int zonetab_offset = it.readInt(); readIndex(it, index_offset, data_offset); readZoneTab(it, zonetab_offset, (int) mappedFile.size() - zonetab_offset); }
private void readHeader() { // byte[12] tzdata_version -- "tzdata2012f\0" // int index_offset // int data_offset // int zonetab_offset BufferIterator it = mappedFile.bigEndianIterator(); byte[] tzdata_version = new byte[12]; it.readByteArray(tzdata_version, 0, tzdata_version.length); String magic = new String(tzdata_version, 0, 6, StandardCharsets.US_ASCII); if (!magic.equals("tzdata") || tzdata_version[11] != 0) { throw new RuntimeException("bad tzdata magic: " + Arrays.toString(tzdata_version)); } version = new String(tzdata_version, 6, 5, StandardCharsets.US_ASCII); int index_offset = it.readInt(); int data_offset = it.readInt(); int zonetab_offset = it.readInt(); readIndex(it, index_offset, data_offset); readZoneTab(it, zonetab_offset, (int) mappedFile.size() - zonetab_offset); }
private void readHeader() { // byte[12] tzdata_version -- "tzdata2012f\0" // int index_offset // int data_offset // int zonetab_offset BufferIterator it = mappedFile.bigEndianIterator(); byte[] tzdata_version = new byte[12]; it.readByteArray(tzdata_version, 0, tzdata_version.length); String magic = new String(tzdata_version, 0, 6, StandardCharsets.US_ASCII); if (!magic.equals("tzdata") || tzdata_version[11] != 0) { throw new RuntimeException("bad tzdata magic: " + Arrays.toString(tzdata_version)); } version = new String(tzdata_version, 6, 5, StandardCharsets.US_ASCII); int index_offset = it.readInt(); int data_offset = it.readInt(); int zonetab_offset = it.readInt(); readIndex(it, index_offset, data_offset); readZoneTab(it, zonetab_offset, (int) mappedFile.size() - zonetab_offset); }
private boolean loadData(String path) { try { mappedFile = MemoryMappedFile.mmapRO(path); } catch (ErrnoException errnoException) { return false; } try { readHeader(); return true; } catch (Exception ex) { // Something's wrong with the file. // Log the problem and return false so we try the next choice. System.logE("tzdata file \"" + path + "\" was present but invalid!", ex); return false; } }
private boolean loadData(String path) { try { mappedFile = MemoryMappedFile.mmapRO(path); } catch (ErrnoException errnoException) { return false; } try { readHeader(); return true; } catch (Exception ex) { // Something's wrong with the file. // Log the problem and return false so we try the next choice. System.logE("tzdata file \"" + path + "\" was present but invalid!", ex); return false; } }
private boolean loadData(String path) { try { mappedFile = MemoryMappedFile.mmapRO(path); } catch (ErrnoException errnoException) { return false; } try { readHeader(); return true; } catch (Exception ex) { // Something's wrong with the file. // Log the problem and return false so we try the next choice. System.logE("tzdata file \"" + path + "\" was present but invalid!", ex); return false; } }
public TzDataAndroid(String... paths) { for (String path : paths) { if (loadData(path)) { return; } } // We didn't find any usable tzdata on disk, so let's just hard-code knowledge of "GMT". // This is actually implemented in TimeZone itself, so if this is the only time zone // we report, we won't be asked any more questions. System.logE("Couldn't find any tzdata!"); version = "missing"; zoneTab = "# Emergency fallback data.\n"; ids = new String[] { "GMT" }; byteOffsets = rawUtcOffsets = new int[1]; }
public TzDataAndroid(String... paths) { for (String path : paths) { if (loadData(path)) { return; } } // We didn't find any usable tzdata on disk, so let's just hard-code knowledge of "GMT". // This is actually implemented in TimeZone itself, so if this is the only time zone // we report, we won't be asked any more questions. System.logE("Couldn't find any tzdata!"); version = "missing"; zoneTab = "# Emergency fallback data.\n"; ids = new String[] { "GMT" }; byteOffsets = rawUtcOffsets = new int[1]; }
private boolean loadData(String path) { try { mappedFile = MemoryMappedFile.mmapRO(path); } catch (ErrnoException errnoException) { return false; } try { readHeader(); return true; } catch (Exception ex) { // Something's wrong with the file. // Log the problem and return false so we try the next choice. System.logE("tzdata file \"" + path + "\" was present but invalid!", ex); return false; } }
private boolean loadData(String path) { try { mappedFile = MemoryMappedFile.mmapRO(path); } catch (ErrnoException errnoException) { return false; } try { readHeader(); return true; } catch (Exception ex) { // Something's wrong with the file. // Log the problem and return false so we try the next choice. System.logE("tzdata file \"" + path + "\" was present but invalid!", ex); return false; } }
public TzDataAndroid(String... paths) { for (String path : paths) { if (loadData(path)) { return; } } // We didn't find any usable tzdata on disk, so let's just hard-code knowledge of "GMT". // This is actually implemented in TimeZone itself, so if this is the only time zone // we report, we won't be asked any more questions. System.logE("Couldn't find any tzdata!"); version = "missing"; zoneTab = "# Emergency fallback data.\n"; ids = new String[] { "GMT" }; byteOffsets = rawUtcOffsets = new int[1]; }
private void readHeader() { // byte[12] tzdata_version -- "tzdata2012f\0" // int index_offset // int data_offset // int zonetab_offset BufferIterator it = mappedFile.bigEndianIterator(); byte[] tzdata_version = new byte[12]; it.readByteArray(tzdata_version, 0, tzdata_version.length); String magic = new String(tzdata_version, 0, 6, StandardCharsets.US_ASCII); if (!magic.equals("tzdata") || tzdata_version[11] != 0) { throw new RuntimeException("bad tzdata magic: " + Arrays.toString(tzdata_version)); } version = new String(tzdata_version, 6, 5, StandardCharsets.US_ASCII); int index_offset = it.readInt(); int data_offset = it.readInt(); int zonetab_offset = it.readInt(); readIndex(it, index_offset, data_offset); readZoneTab(it, zonetab_offset, (int) mappedFile.size() - zonetab_offset); }
public TzDataAndroid(String... paths) { for (String path : paths) { if (loadData(path)) { return; } } // We didn't find any usable tzdata on disk, so let's just hard-code knowledge of "GMT". // This is actually implemented in TimeZone itself, so if this is the only time zone // we report, we won't be asked any more questions. System.logE("Couldn't find any tzdata!"); version = "missing"; zoneTab = "# Emergency fallback data.\n"; ids = new String[] { "GMT" }; byteOffsets = rawUtcOffsets = new int[1]; }
public TzDataAndroid(String... paths) { for (String path : paths) { if (loadData(path)) { return; } } // We didn't find any usable tzdata on disk, so let's just hard-code knowledge of "GMT". // This is actually implemented in TimeZone itself, so if this is the only time zone // we report, we won't be asked any more questions. System.logE("Couldn't find any tzdata!"); version = "missing"; zoneTab = "# Emergency fallback data.\n"; ids = new String[] { "GMT" }; byteOffsets = rawUtcOffsets = new int[1]; }
private boolean loadData(String path) { try { mappedFile = MemoryMappedFile.mmapRO(path); } catch (ErrnoException errnoException) { return false; } try { readHeader(); return true; } catch (Exception ex) { // Something's wrong with the file. // Log the problem and return false so we try the next choice. System.logE("tzdata file \"" + path + "\" was present but invalid!", ex); return false; } }
public TzDataAndroid(String... paths) { for (String path : paths) { if (loadData(path)) { return; } } // We didn't find any usable tzdata on disk, so let's just hard-code knowledge of "GMT". // This is actually implemented in TimeZone itself, so if this is the only time zone // we report, we won't be asked any more questions. System.logE("Couldn't find any tzdata!"); version = "missing"; zoneTab = "# Emergency fallback data.\n"; ids = new String[] { "GMT" }; byteOffsets = rawUtcOffsets = new int[1]; }
public TzDataAndroid(String... paths) { for (String path : paths) { if (loadData(path)) { return; } } // We didn't find any usable tzdata on disk, so let's just hard-code knowledge of "GMT". // This is actually implemented in TimeZone itself, so if this is the only time zone // we report, we won't be asked any more questions. System.logE("Couldn't find any tzdata!"); version = "missing"; zoneTab = "# Emergency fallback data.\n"; ids = new String[] { "GMT" }; byteOffsets = rawUtcOffsets = new int[1]; }