git://git.nikiroo.be
/
nikiroo-utils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Version 3.1.2: Server/ServerBridge bugfix
[nikiroo-utils.git]
/
src
/
be
/
nikiroo
/
utils
/
serial
/
Importer.java
diff --git
a/src/be/nikiroo/utils/serial/Importer.java
b/src/be/nikiroo/utils/serial/Importer.java
index a159ddedf4763859aefe8fc51ac82479d567ce0f..8fba42d7e78e112ddc85b017904ec21510abfe5a 100644
(file)
--- a/
src/be/nikiroo/utils/serial/Importer.java
+++ b/
src/be/nikiroo/utils/serial/Importer.java
@@
-56,27
+56,33
@@
public class Importer {
* because it is not compatible with this code
* @throws ClassNotFoundException
* if a class described in the serialised data cannot be found
* because it is not compatible with this code
* @throws ClassNotFoundException
* if a class described in the serialised data cannot be found
+ * @throws IOException
+ * if the content cannot be read (for instance, corrupt data)
*/
public Importer read(String data) throws NoSuchFieldException,
*/
public Importer read(String data) throws NoSuchFieldException,
- NoSuchMethodException, ClassNotFoundException {
+ NoSuchMethodException, ClassNotFoundException
, IOException
{
+ Scanner scan = new Scanner(data);
try {
try {
- Scanner scan = new Scanner(data);
scan.useDelimiter("\n");
while (scan.hasNext()) {
String line = scan.next();
if (line.startsWith("ZIP:")) {
scan.useDelimiter("\n");
while (scan.hasNext()) {
String line = scan.next();
if (line.startsWith("ZIP:")) {
- line = StringUtils.unzip64(line.substring("ZIP:".length()));
+ try {
+ line = StringUtils.unzip64(line.substring("ZIP:"
+ .length()));
+ } catch (IOException e) {
+ throw new IOException(
+ "Internal error when decoding ZIP content: input may be corrupt");
+ }
read(line);
} else {
processLine(line);
}
}
read(line);
} else {
processLine(line);
}
}
+ } finally {
scan.close();
scan.close();
- } catch (IOException e) {
- throw new NoSuchMethodException(
- "Internal error when decoding ZIP content: input may be corrupt");
}
return this;
}
return this;
@@
-99,9
+105,11
@@
public class Importer {
* because it is not compatible with this code
* @throws ClassNotFoundException
* if a class described in the serialised data cannot be found
* because it is not compatible with this code
* @throws ClassNotFoundException
* if a class described in the serialised data cannot be found
+ * @throws IOException
+ * if the content cannot be read (for instance, corrupt data)
*/
private boolean processLine(String line) throws NoSuchFieldException,
*/
private boolean processLine(String line) throws NoSuchFieldException,
- NoSuchMethodException, ClassNotFoundException {
+ NoSuchMethodException, ClassNotFoundException
, IOException
{
// Defer to latest child if any
if (child != null) {
if (child.processLine(line)) {
// Defer to latest child if any
if (child != null) {
if (child.processLine(line)) {