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.
- it might be easier to merge this into the tag replacer callback, have it 
written just before </html>
- ParsedTag.getAttributesAsMap : should be more robust
- TagReplacerCallback : shouldn't this be an interface?
- TagReplacerCallback.processTag : use the relative URI resolution code from 
GenericReadFilterCallback


7d390d53e691237f2c2aa5e1fc45ba6b4f6eb243
- logwriteback : potential for abuse by e.g. malicious websites? Can we 
authenticate it?
- can't we figure out the actual font size and render once rather than 
rendering into a buffer and then shrinking or expanding it?

614cd1ee326f02467bf37d9bd216fb334f1d1818
- ImageElement.dispose() : is it safe to run() here, w.r.t. infinite recursion 
etc? should we schedule a job instead?

4313301cd6885833f361e65aba7036d79b0e5c47
- ImageCreatorToadlet last modified handling: huh?! there is only one image?!
- where is disableContentEscaping called exactly? check that it is safe to do 
so e.g. we escape urls, content etc.
- in fact, we should use addChild("%", <content>) ... why is a separate 
mechanism needed?

6e4a31b83cc3596ac2c27a684a66c52792751475
- application/xml+xhtml ??? any other html types?

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 handler at 
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 handler at 
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.

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)

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.

Please let me know when these various issues are fixed! Thanks.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 835 bytes
Desc: This is a digitally signed message part.
URL: 
<https://emu.freenetproject.org/pipermail/devl/attachments/20090801/583aaf7f/attachment.pgp>

Reply via email to