+ private Optional<Integer> parseProtocolVersion(SimpleXML soneXml) {
+ String soneProtocolVersion = soneXml.getValue("protocol-version", null);
+ if (soneProtocolVersion == null) {
+ logger.log(Level.INFO, "No protocol version found, assuming 0.");
+ return absent();
+ }
+ return fromNullable(Ints.tryParse(soneProtocolVersion));
+ }
+
+ private Optional<SimpleXML> parseXml(Sone originalSone, Document document) {
+ try {
+ return fromNullable(SimpleXML.fromDocument(document));
+ } catch (NullPointerException npe1) {
+ /* for some reason, invalid XML can cause NPEs. */
+ return absent();
+ }
+ }
+