You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2013/11/07 21:33:05 UTC
svn commit: r1539801 -
/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/Lang.java
Author: ggregory
Date: Thu Nov 7 20:33:05 2013
New Revision: 1539801
URL: http://svn.apache.org/r1539801
Log:
Make sure the scanner is always closed.
Modified:
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/Lang.java
Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/Lang.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/Lang.java?rev=1539801&r1=1539800&r2=1539801&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/Lang.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/language/bm/Lang.java Thu Nov 7 20:33:05 2013
@@ -135,47 +135,51 @@ public class Lang {
}
final Scanner scanner = new Scanner(lRulesIS, ResourceConstants.ENCODING);
- boolean inExtendedComment = false;
- while (scanner.hasNextLine()) {
- final String rawLine = scanner.nextLine();
- String line = rawLine;
- if (inExtendedComment) {
- // check for closing comment marker, otherwise discard doc comment line
- if (line.endsWith(ResourceConstants.EXT_CMT_END)) {
- inExtendedComment = false;
- }
- } else {
- if (line.startsWith(ResourceConstants.EXT_CMT_START)) {
- inExtendedComment = true;
- } else {
- // discard comments
- final int cmtI = line.indexOf(ResourceConstants.CMT);
- if (cmtI >= 0) {
- line = line.substring(0, cmtI);
- }
-
- // trim leading-trailing whitespace
- line = line.trim();
-
- if (line.length() == 0) {
- continue; // empty lines can be safely skipped
+ try {
+ boolean inExtendedComment = false;
+ while (scanner.hasNextLine()) {
+ final String rawLine = scanner.nextLine();
+ String line = rawLine;
+ if (inExtendedComment) {
+ // check for closing comment marker, otherwise discard doc comment line
+ if (line.endsWith(ResourceConstants.EXT_CMT_END)) {
+ inExtendedComment = false;
}
+ } else {
+ if (line.startsWith(ResourceConstants.EXT_CMT_START)) {
+ inExtendedComment = true;
+ } else {
+ // discard comments
+ final int cmtI = line.indexOf(ResourceConstants.CMT);
+ if (cmtI >= 0) {
+ line = line.substring(0, cmtI);
+ }
+
+ // trim leading-trailing whitespace
+ line = line.trim();
+
+ if (line.length() == 0) {
+ continue; // empty lines can be safely skipped
+ }
+
+ // split it up
+ final String[] parts = line.split("\\s+");
+
+ if (parts.length != 3) {
+ throw new IllegalArgumentException("Malformed line '" + rawLine
+ + "' in language resource '" + languageRulesResourceName + "'");
+ }
+
+ final Pattern pattern = Pattern.compile(parts[0]);
+ final String[] langs = parts[1].split("\\+");
+ final boolean accept = parts[2].equals("true");
- // split it up
- final String[] parts = line.split("\\s+");
-
- if (parts.length != 3) {
- throw new IllegalArgumentException("Malformed line '" + rawLine + "' in language resource '" +
- languageRulesResourceName + "'");
+ rules.add(new LangRule(pattern, new HashSet<String>(Arrays.asList(langs)), accept));
}
-
- final Pattern pattern = Pattern.compile(parts[0]);
- final String[] langs = parts[1].split("\\+");
- final boolean accept = parts[2].equals("true");
-
- rules.add(new LangRule(pattern, new HashSet<String>(Arrays.asList(langs)), accept));
}
}
+ } finally {
+ scanner.close();
}
return new Lang(rules, languages);
}