From 0e48557b48348ab3f8a46e4179943c0eee8e58d2 Mon Sep 17 00:00:00 2001 From: zzz Date: Mon, 22 Sep 2014 13:22:35 +0000 Subject: [PATCH] * SSU: Fix 100% CPU after socket failure * UPnP: Catch reported error on FreeBSD --- history.txt | 4 ++++ .../src/net/i2p/router/RouterVersion.java | 2 +- .../i2p/router/transport/udp/UDPReceiver.java | 2 ++ .../cybergarage/xml/parser/JaxpParser.java | 24 ++++++++++--------- 4 files changed, 20 insertions(+), 12 deletions(-) diff --git a/history.txt b/history.txt index 9529cb5d3..faf89626a 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,7 @@ +2014-09-22 zzz + * SSU: Fix 100% CPU after socket failure + * UPnP: Catch reported error on FreeBSD + * 2014-09-20 0.9.15 released 2014-09-17 kytv diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index a411b0099..87e5bffca 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -18,7 +18,7 @@ public class RouterVersion { /** deprecated */ public final static String ID = "Monotone"; public final static String VERSION = CoreVersion.VERSION; - public final static long BUILD = 0; + public final static long BUILD = 1; /** for example "-test" */ public final static String EXTRA = ""; diff --git a/router/java/src/net/i2p/router/transport/udp/UDPReceiver.java b/router/java/src/net/i2p/router/transport/udp/UDPReceiver.java index 65a7a81cb..26b90a89f 100644 --- a/router/java/src/net/i2p/router/transport/udp/UDPReceiver.java +++ b/router/java/src/net/i2p/router/transport/udp/UDPReceiver.java @@ -281,6 +281,8 @@ class UDPReceiver { _log.warn("Error receiving", ioe); //} packet.release(); + // TODO count consecutive errors, give up after too many? + try { Thread.sleep(100); } catch (InterruptedException ie) {} } } if (_log.shouldLog(Log.DEBUG)) diff --git a/router/java/src/org/cybergarage/xml/parser/JaxpParser.java b/router/java/src/org/cybergarage/xml/parser/JaxpParser.java index 1d6e97f6a..add012f95 100644 --- a/router/java/src/org/cybergarage/xml/parser/JaxpParser.java +++ b/router/java/src/org/cybergarage/xml/parser/JaxpParser.java @@ -125,17 +125,19 @@ public class JaxpParser extends Parser factory.setNamespaceAware(true); factory.setExpandEntityReferences(false); try { - factory.setFeature("http://xml.org/sax/features/external-general-entities", false); - } catch (ParserConfigurationException pce) {} - try { - factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false); - } catch (ParserConfigurationException pce) {} - try { - factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true); - } catch (ParserConfigurationException pce) {} - try { - factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); - } catch (ParserConfigurationException pce) {} + try { + factory.setFeature("http://xml.org/sax/features/external-general-entities", false); + } catch (ParserConfigurationException pce) {} + try { + factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false); + } catch (ParserConfigurationException pce) {} + try { + factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true); + } catch (ParserConfigurationException pce) {} + try { + factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); + } catch (ParserConfigurationException pce) {} + } catch (AbstractMethodError ame) {} // FreeBSD DocumentBuilder builder = factory.newDocumentBuilder(); builder.setEntityResolver(new BlankingResolver()); InputSource inSrc = new InputSource(new NullFilterInputStream(inStream));