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

Reply via email to