Thank you for the review. The alerts pushing is just started, it isn't considered working.
On Sat, Aug 1, 2009 at 5:52 PM, Matthew Toseland<[email protected]> wrote: > On Saturday 01 August 2009 16:41:49 Matthew Toseland wrote: >> I'm not going to summarise your changes in detail, basically this is inline >> images and pushing the useralerts. >> >> SPECIFIC COMMITS: >> 7a08229da7d564c2832c867e126830ec7c7b36c9 >> - doing it the right way, good >> - appending the script at the end is okay but it must be in the right >> charset. Yes, it needs. It is utf-8 always, isn't it? >> - it might be easier to merge this into the tag replacer callback, have it >> written just before </html> Maybe, but this was earlier and it works for me in all situations. Firefox considers it valid html, so I think it is good the place it is. >> - ParsedTag.getAttributesAsMap : should be more robust How so? It parses all attributes, what circumstance it fails or does the wrong thing? >> - TagReplacerCallback : shouldn't this be an interface? Agreed, written to the todo list. >> - TagReplacerCallback.processTag : use the relative URI resolution code from >> GenericReadFilterCallback You mean the processURI(String u, String overrideType, boolean noRelative, boolean inline) method? it wasn't working as I've expected(maybe the lack of comments caused that I misinterpreted it's use), and couldn't make it to return an absolute URI. Thats why I check the URI with it, and then absolutize it in another method, that does just that. >> >> >> 7d390d53e691237f2c2aa5e1fc45ba6b4f6eb243 >> - logwriteback : potential for abuse by e.g. malicious websites? Can we >> authenticate it? I don't think it can be abused(how so? javascript is disabled for freesites), but it should be turned off for most ppl. I think the best way to handle this is that it is only enabled with MINOR loglevel, so if ppl want to log, they will log client side stuff too, but if not, then they won't. Will it be ok? >> - can't we figure out the actual font size and render once rather than >> rendering into a buffer and then shrinking or expanding it? It should work, although it has centering issues too, so it needs some tweaking in the near future. Will try to lower the overhead. >> >> 614cd1ee326f02467bf37d9bd216fb334f1d1818 >> - ImageElement.dispose() : is it safe to run() here, w.r.t. infinite >> recursion etc? should we schedule a job instead? Infinite recursion can't happen, because the FProxyFetch...-s haven't got any callback method to ImageElement left when the listener deregisters. I will try if it works as a job as expected. Also added to the todo list. >> >> 4313301cd6885833f361e65aba7036d79b0e5c47 >> - ImageCreatorToadlet last modified handling: huh?! there is only one image?! Yes, only one image for a given text and dimensions(don't forget that it gets the text and width,height as query params). Added client-side caching drastically improved the experienced performance. >> - where is disableContentEscaping called exactly? check that it is safe to >> do so e.g. we escape urls, content etc. When I was trying various methods to make image pushing, it was needed. It is orphaned since then, safe to remove. Added to the todo list. >> - in fact, we should use addChild("%", <content>) ... why is a separate >> mechanism needed? >> >> 6e4a31b83cc3596ac2c27a684a66c52792751475 >> - application/xml+xhtml ??? any other html types? It should be connectet to the ContentFilter's html mimetype registration. In the todo list. >> >> TESTING RESULTS: >> Pushing cancelled message while waiting for the node to start up. I didn't >> think there was any pushing on this page? >> >> Deadlock: >> >> INFO | jvm 1 | 2009/08/01 16:32:32 | Java stack information for the >> threads listed above: >> INFO | jvm 1 | 2009/08/01 16:32:32 | >> =================================================== >> INFO | jvm 1 | 2009/08/01 16:32:32 | "HTTP socket >> hand...@2032530416(143)": >> INFO | jvm 1 | 2009/08/01 16:32:32 | at >> freenet.clients.http.updateableelements.PushDataManager.keepAliveReceived(PushDataManager.java:175) >> INFO | jvm 1 | 2009/08/01 16:32:32 | - waiting to lock >> <0x00007f2464a7d9e0> (a >> freenet.clients.http.updateableelements.PushDataManager) >> INFO | jvm 1 | 2009/08/01 16:32:32 | at >> freenet.clients.http.PushKeepaliveToadlet.handleGet(PushKeepaliveToadlet.java:31) >> INFO | jvm 1 | 2009/08/01 16:32:32 | at >> freenet.clients.http.ToadletContextImpl.handle(ToadletContextImpl.java:380) >> INFO | jvm 1 | 2009/08/01 16:32:32 | at >> freenet.clients.http.SimpleToadletServer$SocketHandler.run(SimpleToadletServer.java:732) >> INFO | jvm 1 | 2009/08/01 16:32:32 | at >> freenet.support.PooledExecutor$MyThread.run(PooledExecutor.java:224) >> INFO | jvm 1 | 2009/08/01 16:32:32 | "HTTP socket >> hand...@826873157(27)": >> INFO | jvm 1 | 2009/08/01 16:32:32 | at >> freenet.node.useralerts.UserAlertManager.getAlerts(UserAlertManager.java:172) >> INFO | jvm 1 | 2009/08/01 16:32:32 | - waiting to lock >> <0x00007f2464776a78> (a java.util.TreeSet) >> INFO | jvm 1 | 2009/08/01 16:32:32 | at >> freenet.clients.http.updateableelements.ShortAlertElement.updateState(ShortAlertElement.java:63) >> INFO | jvm 1 | 2009/08/01 16:32:32 | at >> freenet.clients.http.updateableelements.PushDataManager.getRenderedElement(PushDataManager.java:120) >> INFO | jvm 1 | 2009/08/01 16:32:32 | - locked >> <0x00007f2464a7d9e0> (a >> freenet.clients.http.updateableelements.PushDataManager) >> INFO | jvm 1 | 2009/08/01 16:32:32 | at >> freenet.clients.http.PushDataToadlet.handleGet(PushDataToadlet.java:38) >> INFO | jvm 1 | 2009/08/01 16:32:32 | at >> freenet.clients.http.ToadletContextImpl.handle(ToadletContextImpl.java:380) >> INFO | jvm 1 | 2009/08/01 16:32:32 | at >> freenet.clients.http.SimpleToadletServer$SocketHandler.run(SimpleToadletServer.java:732) >> INFO | jvm 1 | 2009/08/01 16:32:32 | at >> freenet.support.PooledExecutor$MyThread.run(PooledExecutor.java:224) >> INFO | jvm 1 | 2009/08/01 16:32:32 | "WrapperListener_start_runner": >> INFO | jvm 1 | 2009/08/01 16:32:32 | at >> freenet.clients.http.updateableelements.PushDataManager.updateElement(PushDataManager.java:53) >> INFO | jvm 1 | 2009/08/01 16:32:32 | - waiting to lock >> <0x00007f2464a7d9e0> (a >> freenet.clients.http.updateableelements.PushDataManager) >> INFO | jvm 1 | 2009/08/01 16:32:32 | at >> freenet.clients.http.updateableelements.ShortAlertElement$1.alertsChanged(ShortAlertElement.java:32) >> INFO | jvm 1 | 2009/08/01 16:32:32 | at >> freenet.node.useralerts.UserAlertManager.notifyListeners(UserAlertManager.java:93) >> INFO | jvm 1 | 2009/08/01 16:32:32 | at >> freenet.node.useralerts.UserAlertManager.register(UserAlertManager.java:54) >> INFO | jvm 1 | 2009/08/01 16:32:32 | - locked >> <0x00007f2464776a78> (a java.util.TreeSet) >> INFO | jvm 1 | 2009/08/01 16:32:32 | at >> freenet.node.DarknetPeerNode.handleFproxyN2NTM(DarknetPeerNode.java:1448) >> INFO | jvm 1 | 2009/08/01 16:32:32 | at >> freenet.node.Node.handleFproxyNodeToNodeTextMessageSimpleFieldSet(Node.java:4856) >> INFO | jvm 1 | 2009/08/01 16:32:32 | at >> freenet.node.Node.handleNodeToNodeTextMessageSimpleFieldSet(Node.java:4847) >> INFO | jvm 1 | 2009/08/01 16:32:32 | at >> freenet.node.DarknetPeerNode.parseExtraPeerData(DarknetPeerNode.java:473) >> INFO | jvm 1 | 2009/08/01 16:32:32 | at >> freenet.node.DarknetPeerNode.readExtraPeerDataFile(DarknetPeerNode.java:452) >> INFO | jvm 1 | 2009/08/01 16:32:32 | at >> freenet.node.DarknetPeerNode.readExtraPeerData(DarknetPeerNode.java:378) >> INFO | jvm 1 | 2009/08/01 16:32:32 | at >> freenet.node.PeerManager.readExtraPeerData(PeerManager.java:1282) >> INFO | jvm 1 | 2009/08/01 16:32:32 | at >> freenet.node.Node.start(Node.java:3508) >> INFO | jvm 1 | 2009/08/01 16:32:32 | at >> freenet.node.NodeStarter.start(NodeStarter.java:159) >> INFO | jvm 1 | 2009/08/01 16:32:32 | at >> org.tanukisoftware.wrapper.WrapperManager$11.run(WrapperManager.java:2979) >> INFO | jvm 1 | 2009/08/01 16:32:32 | >> INFO | jvm 1 | 2009/08/01 16:32:32 | Found 1 deadlock. Will look at this >> >> Also, NPEs in wrapper.log: >> >> INFO | jvm 1 | 2009/08/01 16:35:55 | java.lang.NullPointerException >> INFO | jvm 1 | 2009/08/01 16:35:55 | at >> freenet.node.fcp.ClientGet.onFailure(ClientGet.java:608) >> INFO | jvm 1 | 2009/08/01 16:35:55 | at >> freenet.node.fcp.ClientGet.start(ClientGet.java:337) >> INFO | jvm 1 | 2009/08/01 16:35:55 | at >> freenet.node.fcp.FCPConnectionHandler.startClientGet(FCPConnectionHandler.java:342) >> INFO | jvm 1 | 2009/08/01 16:35:55 | at >> freenet.node.fcp.ClientGetMessage.run(ClientGetMessage.java:228) >> INFO | jvm 1 | 2009/08/01 16:35:55 | at >> freenet.node.fcp.FCPConnectionInputHandler.realRun(FCPConnectionInputHandler.java:140) >> INFO | jvm 1 | 2009/08/01 16:35:55 | at >> freenet.node.fcp.FCPConnectionInputHandler.run(FCPConnectionInputHandler.java:49) >> INFO | jvm 1 | 2009/08/01 16:35:55 | at >> freenet.support.PooledExecutor$MyThread.run(PooledExecutor.java:224) >> INFO | jvm 1 | 2009/08/01 16:36:05 | java.lang.NullPointerException >> INFO | jvm 1 | 2009/08/01 16:36:05 | at >> freenet.node.fcp.ClientGet.onFailure(ClientGet.java:608) >> INFO | jvm 1 | 2009/08/01 16:36:05 | at >> freenet.node.fcp.ClientGet.start(ClientGet.java:337) >> INFO | jvm 1 | 2009/08/01 16:36:05 | at >> freenet.node.fcp.FCPConnectionHandler.startClientGet(FCPConnectionHandler.java:342) >> INFO | jvm 1 | 2009/08/01 16:36:05 | at >> freenet.node.fcp.ClientGetMessage.run(ClientGetMessage.java:228) >> INFO | jvm 1 | 2009/08/01 16:36:05 | at >> freenet.node.fcp.FCPConnectionInputHandler.realRun(FCPConnectionInputHandler.java:140) >> INFO | jvm 1 | 2009/08/01 16:36:05 | at >> freenet.node.fcp.FCPConnectionInputHandler.run(FCPConnectionInputHandler.java:49) >> INFO | jvm 1 | 2009/08/01 16:36:05 | at >> freenet.support.PooledExecutor$MyThread.run(PooledExecutor.java:224) Yes, the fetch cancells for various reasons. It should fallback to the original mechanism then. >> >> Also, after restarting, I get a pushing cancelled message while on the >> progress bar page prior to loading the activelink index. I get >> FetchException's for new URIs logged to wrapper.log, and the load doesn't >> make any progress in 2 minutes plus even with shift+reload. The deadlock is >> not visible. Will try to reproduce it myself. >> >> Please let me know when these various issues are fixed! Thanks. >> > ec06eb0deddb93937594892ba99a2096da7c1266 > - MessageManager.onUpdate - what does this do? anchor=null => dismissed? There are 2 types of alerts on the Manager: one type is from the server side, and one from the client side. The server side events have an anchor, that identifies them, the client sides don't have it. Server side messages should be deleted and readded when change occurs to them, client side messages shouldn't. > _______________________________________________ Devl mailing list [email protected] http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl
