From a6b4b1b91586507c1f2de4a58cb36a9b1101e8c6 Mon Sep 17 00:00:00 2001 From: Keghani Kouzoujian Date: Wed, 7 Oct 2015 17:40:01 +0200 Subject: [PATCH] Make robust SingleFileMetadataSourceImpl and make it consistent with MultiFileMetadataSourceImpl. --- java/libphonenumber/pom.xml | 2 + .../i18n/phonenumbers/MetadataSource.java | 2 +- .../MultiFileMetadataSourceImpl.java | 3 +- .../SingleFileMetadataSourceImpl.java | 112 +++++++++++++----- .../MultiFileMetadataSourceImplTest.java | 16 ++- .../SingleFileMetadataSourceImplTest.java | 40 +++++++ .../phonenumbers/TestMetadataTestCase.java | 2 +- ...ild-1.0-SNAPSHOT-jar-with-dependencies.jar | Bin 495655 -> 496830 bytes 8 files changed, 134 insertions(+), 43 deletions(-) create mode 100644 java/libphonenumber/test/com/google/i18n/phonenumbers/SingleFileMetadataSourceImplTest.java diff --git a/java/libphonenumber/pom.xml b/java/libphonenumber/pom.xml index 9992f6454..4ff8497d0 100644 --- a/java/libphonenumber/pom.xml +++ b/java/libphonenumber/pom.xml @@ -36,6 +36,8 @@ **/SingleFileMetadataSourceImpl.class **/SingleFileMetadataSourceImpl.java + **/SingleFileMetadataSourceImplTest.class + **/SingleFileMetadataSourceImplTest.java **/SingleFilePhoneNumberMetadataProto **/SingleFilePhoneNumberMetadataProtoForTesting diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/MetadataSource.java b/java/libphonenumber/src/com/google/i18n/phonenumbers/MetadataSource.java index bedd570f3..d0ec50dfe 100644 --- a/java/libphonenumber/src/com/google/i18n/phonenumbers/MetadataSource.java +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/MetadataSource.java @@ -19,7 +19,7 @@ package com.google.i18n.phonenumbers; import com.google.i18n.phonenumbers.Phonemetadata.PhoneMetadata; /** - * A source for phone metadata from resources. + * A source for phone metadata for all regions. */ interface MetadataSource { /** diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/MultiFileMetadataSourceImpl.java b/java/libphonenumber/src/com/google/i18n/phonenumbers/MultiFileMetadataSourceImpl.java index 22a08c06f..09114add4 100644 --- a/java/libphonenumber/src/com/google/i18n/phonenumbers/MultiFileMetadataSourceImpl.java +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/MultiFileMetadataSourceImpl.java @@ -129,8 +129,7 @@ final class MultiFileMetadataSourceImpl implements MetadataSource { /** * Loads the metadata protocol buffer from the given stream and closes the stream afterwards. Any - * exceptions that occur while reading the stream are propagated (though exceptions that occur - * when the stream is closed will be ignored). + * exceptions that occur while reading or closing the stream are ignored. * * @param source the non-null stream from which metadata is to be read. * @return the loaded metadata protocol buffer. diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/SingleFileMetadataSourceImpl.java b/java/libphonenumber/src/com/google/i18n/phonenumbers/SingleFileMetadataSourceImpl.java index 289c708ae..82297153c 100644 --- a/java/libphonenumber/src/com/google/i18n/phonenumbers/SingleFileMetadataSourceImpl.java +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/SingleFileMetadataSourceImpl.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2015 The Libphonenumber Authors + * + * Licensed 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 com.google.i18n.phonenumbers; import com.google.i18n.phonenumbers.Phonemetadata.PhoneMetadata; @@ -7,23 +23,21 @@ import java.io.IOException; import java.io.InputStream; import java.io.ObjectInputStream; import java.util.Collections; -import java.util.EnumMap; import java.util.HashMap; -import java.util.Iterator; +import java.util.List; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; /** - * Implementation of {@link MetadataSource} that reads from a resource file - * during initialization. + * Implementation of {@link MetadataSource} that reads from a single resource file. */ -public final class SingleFileMetadataSourceImpl implements MetadataSource { +final class SingleFileMetadataSourceImpl implements MetadataSource { private static final Logger logger = Logger.getLogger(SingleFileMetadataSourceImpl.class.getName()); - private static final String META_DATA_FILE = + private static final String META_DATA_FILE_NAME = "/com/google/i18n/phonenumbers/data/SingleFilePhoneNumberMetadataProto"; // A mapping from a region code to the PhoneMetadata for that region. @@ -40,57 +54,95 @@ public final class SingleFileMetadataSourceImpl implements MetadataSource { private final Map countryCodeToNonGeographicalMetadataMap = Collections.synchronizedMap(new HashMap()); + // The metadata file from which region data is loaded. + private final String fileName; + + // The metadata loader used to inject alternative metadata sources. + private final MetadataLoader metadataLoader; + + // It is assumed that metadataLoader is not null. + public SingleFileMetadataSourceImpl(String fileName, MetadataLoader metadataLoader) { + this.fileName = fileName; + this.metadataLoader = metadataLoader; + } + // It is assumed that metadataLoader is not null. public SingleFileMetadataSourceImpl(MetadataLoader metadataLoader) { - InputStream input = metadataLoader.loadMetadata(META_DATA_FILE); - if (input == null) { - throw new IllegalStateException( - "no metadata available for PhoneNumberUtil: " + META_DATA_FILE); - } - PhoneMetadataCollection metadataCollection = loadMetadataAndCloseInput(input); - for (PhoneMetadata metadata : metadataCollection.getMetadataList()) { - String regionCode = metadata.getId(); - int countryCallingCode = metadata.getCountryCode(); - if (PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY.equals(regionCode)) { - countryCodeToNonGeographicalMetadataMap.put(countryCallingCode, metadata); - } else { - regionToMetadataMap.put(regionCode, metadata); - } - } + this(META_DATA_FILE_NAME, metadataLoader); } @Override public PhoneMetadata getMetadataForRegion(String regionCode) { + synchronized (regionToMetadataMap) { + if (!regionToMetadataMap.containsKey(regionCode)) { + // The regionCode here will be valid and won't be '001', so we don't need to worry about + // what to pass in for the country calling code. + loadMetadataFromFile(); + } + } return regionToMetadataMap.get(regionCode); } @Override public PhoneMetadata getMetadataForNonGeographicalRegion(int countryCallingCode) { + synchronized (countryCodeToNonGeographicalMetadataMap) { + if (!countryCodeToNonGeographicalMetadataMap.containsKey(countryCallingCode)) { + loadMetadataFromFile(); + } + } return countryCodeToNonGeographicalMetadataMap.get(countryCallingCode); } + // @VisibleForTesting + void loadMetadataFromFile() { + InputStream source = metadataLoader.loadMetadata(fileName); + if (source == null) { + logger.log(Level.SEVERE, "missing metadata: " + fileName); + throw new IllegalStateException("missing metadata: " + fileName); + } + ObjectInputStream in = null; + try { + in = new ObjectInputStream(source); + PhoneMetadataCollection metadataCollection = loadMetadataAndCloseInput(in); + List metadataList = metadataCollection.getMetadataList(); + if (metadataList.isEmpty()) { + logger.log(Level.SEVERE, "empty metadata: " + fileName); + throw new IllegalStateException("empty metadata: " + fileName); + } + for (PhoneMetadata metadata : metadataList) { + String regionCode = metadata.getId(); + int countryCallingCode = metadata.getCountryCode(); + boolean isNonGeoRegion = PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY.equals(regionCode); + if (isNonGeoRegion) { + countryCodeToNonGeographicalMetadataMap.put(countryCallingCode, metadata); + } else { + regionToMetadataMap.put(regionCode, metadata); + } + } + } catch (IOException e) { + logger.log(Level.SEVERE, "cannot load/parse metadata: " + fileName, e); + throw new RuntimeException("cannot load/parse metadata: " + fileName, e); + } + } + /** * Loads the metadata protocol buffer from the given stream and closes the stream afterwards. Any - * exceptions that occur while reading the stream are propagated (though exceptions that occur - * when the stream is closed will be ignored). + * exceptions that occur while reading or closing the stream are ignored. * * @param source the non-null stream from which metadata is to be read. * @return the loaded metadata protocol buffer. */ - private static PhoneMetadataCollection loadMetadataAndCloseInput(InputStream source) { + private static PhoneMetadataCollection loadMetadataAndCloseInput(ObjectInputStream source) { PhoneMetadataCollection metadataCollection = new PhoneMetadataCollection(); try { - // Read in metadata for each region. - ObjectInputStream in = new ObjectInputStream(source); - metadataCollection.readExternal(in); - return metadataCollection; + metadataCollection.readExternal(source); } catch (IOException e) { - logger.log(Level.WARNING, e.toString()); + logger.log(Level.WARNING, "error reading input (ignored)", e); } finally { try { source.close(); } catch (IOException e) { - logger.log(Level.WARNING, e.toString()); + logger.log(Level.WARNING, "error closing input stream (ignored)", e); } } return metadataCollection; diff --git a/java/libphonenumber/test/com/google/i18n/phonenumbers/MultiFileMetadataSourceImplTest.java b/java/libphonenumber/test/com/google/i18n/phonenumbers/MultiFileMetadataSourceImplTest.java index ea45c3920..c1c531910 100644 --- a/java/libphonenumber/test/com/google/i18n/phonenumbers/MultiFileMetadataSourceImplTest.java +++ b/java/libphonenumber/test/com/google/i18n/phonenumbers/MultiFileMetadataSourceImplTest.java @@ -16,19 +16,17 @@ package com.google.i18n.phonenumbers; +import junit.framework.TestCase; + /** * Unit tests for MultiFileMetadataSourceImpl.java. */ -public class MultiFileMetadataSourceImplTest extends TestMetadataTestCase { - - private final MultiFileMetadataSourceImpl multiFileMetadataSource; - - public MultiFileMetadataSourceImplTest() { - multiFileMetadataSource = new MultiFileMetadataSourceImpl( - "no/such/file", PhoneNumberUtil.DEFAULT_METADATA_LOADER); - } +public class MultiFileMetadataSourceImplTest extends TestCase { + public MultiFileMetadataSourceImplTest() {} public void testMissingMetadataFileThrowsRuntimeException() { + MultiFileMetadataSourceImpl multiFileMetadataSource = new MultiFileMetadataSourceImpl( + "no/such/file", PhoneNumberUtil.DEFAULT_METADATA_LOADER); // In normal usage we should never get a state where we are asking to load metadata that doesn't // exist. However if the library is packaged incorrectly in the jar, this could happen and the // best we can do is make sure the exception has the file name in it. @@ -36,7 +34,7 @@ public class MultiFileMetadataSourceImplTest extends TestMetadataTestCase { multiFileMetadataSource.loadMetadataFromFile("XX", -1); fail("expected exception"); } catch (RuntimeException e) { - assertTrue("Unexpected error: " + e, e.toString().contains("no/such/file_XX")); + assertTrue("Unexpected error: " + e, e.getMessage().contains("no/such/file_XX")); } try { multiFileMetadataSource.loadMetadataFromFile( diff --git a/java/libphonenumber/test/com/google/i18n/phonenumbers/SingleFileMetadataSourceImplTest.java b/java/libphonenumber/test/com/google/i18n/phonenumbers/SingleFileMetadataSourceImplTest.java new file mode 100644 index 000000000..5b7f13036 --- /dev/null +++ b/java/libphonenumber/test/com/google/i18n/phonenumbers/SingleFileMetadataSourceImplTest.java @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2015 The Libphonenumber Authors + * + * Licensed 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 com.google.i18n.phonenumbers; + +import junit.framework.TestCase; + +/** + * Unit tests for SingleFileMetadataSourceImpl.java. + */ +public class SingleFileMetadataSourceImplTest extends TestCase { + public SingleFileMetadataSourceImplTest() {} + + public void testMissingMetadataFileThrowsRuntimeException() { + SingleFileMetadataSourceImpl singleFileMetadataSource = new SingleFileMetadataSourceImpl( + "no/such/file", PhoneNumberUtil.DEFAULT_METADATA_LOADER); + // In normal usage we should never get a state where we are asking to load metadata that doesn't + // exist. However if the library is packaged incorrectly in the jar, this could happen and the + // best we can do is make sure the exception has the file name in it. + try { + singleFileMetadataSource.loadMetadataFromFile(); + fail("expected exception"); + } catch (RuntimeException e) { + assertTrue("Unexpected error: " + e, e.getMessage().contains("no/such/file")); + } + } +} diff --git a/java/libphonenumber/test/com/google/i18n/phonenumbers/TestMetadataTestCase.java b/java/libphonenumber/test/com/google/i18n/phonenumbers/TestMetadataTestCase.java index 99def5ae2..ca9014d44 100644 --- a/java/libphonenumber/test/com/google/i18n/phonenumbers/TestMetadataTestCase.java +++ b/java/libphonenumber/test/com/google/i18n/phonenumbers/TestMetadataTestCase.java @@ -27,7 +27,7 @@ import junit.framework.TestCase; * @author Shaopeng Jia */ public class TestMetadataTestCase extends TestCase { - protected static final String TEST_META_DATA_FILE_PREFIX = + private static final String TEST_META_DATA_FILE_PREFIX = "/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting"; protected final PhoneNumberUtil phoneUtil; diff --git a/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar b/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar index d4effa09390ec6064ee892194143db2c46df43a5..b0fe6761a98d526b0b9440137d1e86cecc6ad1a0 100644 GIT binary patch delta 38310 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 r}<9Kof!2?=&?_ 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