From 93beeb251013b6911d444627d902a4ed30f1dd4b Mon Sep 17 00:00:00 2001 From: Rolf Veen Date: Thu, 3 Jan 2013 12:25:24 +0100 Subject: [PATCH] Filter null or zero length events --- ogdl.jar | Bin 95050 -> 95076 bytes ogdl.jardesc | 8 ++++---- src/ogdl/Graph.java | 4 ++++ src/ogdl/OgdlBinaryEmitter.java | 10 ++++++++++ src/ogdl/support/EventHandlerGraph.java | 3 +++ src/ogdl/template/Servlets.java | 3 ++- 6 files changed, 23 insertions(+), 5 deletions(-) diff --git a/ogdl.jar b/ogdl.jar index 95db34b4286e3db3d58ba0513d2660990467e783..44beab909231011236de9258415b6a2546c6f622 100644 GIT binary patch delta 16565 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 delta 16618 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 z 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
M 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 W6!c$Hp?$wx-j9_ISiZk3u>S`gF@XvI diff --git a/ogdl.jardesc b/ogdl.jardesc index f85274c..696fe78 100644 --- a/ogdl.jardesc +++ b/ogdl.jardesc @@ -1,7 +1,7 @@ - + - - + + @@ -11,6 +11,6 @@ - + diff --git a/src/ogdl/Graph.java b/src/ogdl/Graph.java index 914d44a..c397b2d 100644 --- a/src/ogdl/Graph.java +++ b/src/ogdl/Graph.java @@ -49,6 +49,10 @@ public class Graph implements IGraph public static final String _OBJ = Types.OBJECT; public Graph() { + /* Warning: _NULL cannot be a zero length string unless EventHandlerGraph.event() is + * modified. Events with null length are currently ignored, and also not written to + * OGDL binary (see OgdlBinarryEmitter). + */ this.name = _NULL; } diff --git a/src/ogdl/OgdlBinaryEmitter.java b/src/ogdl/OgdlBinaryEmitter.java index 72fa335..a3c250c 100644 --- a/src/ogdl/OgdlBinaryEmitter.java +++ b/src/ogdl/OgdlBinaryEmitter.java @@ -27,6 +27,9 @@ public static void write(IGraph g, OutputStream out) throws IOException final byte[] h = { 1, 'G', 0 }; out_write(bout,h); + /* This filtering of _NULL should not be necessary, but + * currently is needed at the reception side. + */ if (! g.getName().equals(Graph._NULL)) _writeBinary(0,g,bout); else @@ -47,6 +50,9 @@ public static byte[] write(IGraph g) throws IOException final byte[] h = { 1, 'G', 0 }; out_write(bout,h); + /* This filtering of _NULL should not be necessary, but + * currently is needed at the reception side. + */ if (! g.getName().equals(Graph._NULL)) _writeBinary(0,g,bout); else @@ -80,6 +86,10 @@ private static void _writeBinary(int lev, IGraph g, OutputStream out) throws IOE private static void writeTextNode (int level, String s, OutputStream out) throws IOException { + /* Empty or null strings will not make it */ + if (s==null || s.length()==0) + return; + // write level multiByteInteger(level+1,out); // write text diff --git a/src/ogdl/support/EventHandlerGraph.java b/src/ogdl/support/EventHandlerGraph.java index 22d5358..08bc1cc 100644 --- a/src/ogdl/support/EventHandlerGraph.java +++ b/src/ogdl/support/EventHandlerGraph.java @@ -51,6 +51,9 @@ public void clear() public void event(String s) { + //if (s == null || s.length() == 0) + //return; + //System.out.println("event: "+s); if (level>200) { System.out.println("EventHandlerGraph: ! level=200 at "+s); diff --git a/src/ogdl/template/Servlets.java b/src/ogdl/template/Servlets.java index 1fe8fbf..de81cf7 100644 --- a/src/ogdl/template/Servlets.java +++ b/src/ogdl/template/Servlets.java @@ -20,7 +20,7 @@ import org.apache.commons.fileupload.servlet.*; import org.apache.commons.fileupload.disk.*; -import com.sun.org.apache.xalan.internal.xsltc.runtime.Hashtable; +//import com.sun.org.apache.xalan.internal.xsltc.runtime.Hashtable; import java.util.TreeMap; import java.util.Set; @@ -128,6 +128,7 @@ else if (uri.endsWith(RELOAD_URL)) /* Jetty and Apache don't return anything with getRemoteUser */ String u = req.getRemoteUser(); + if (u == null) { /* try authentication header */ u = req.getHeader("authorization");