tapestry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Howard M. Lewis Ship (JIRA)" <j...@apache.org>
Subject [jira] Created: (TAP5-765) Includes JavaScript libraries are not properly uniqued within an Ajax partial update response
Date Tue, 07 Jul 2009 00:31:14 GMT
Includes JavaScript libraries are not properly uniqued within an Ajax partial update response
---------------------------------------------------------------------------------------------

                 Key: TAP5-765
                 URL: https://issues.apache.org/jira/browse/TAP5-765
             Project: Tapestry 5
          Issue Type: Bug
          Components: tapestry-core
    Affects Versions: 5.1.0.5
            Reporter: Howard M. Lewis Ship


Noticed this while working on a lab; a component that is repeatedly rendered will result in
a long series of duplicated scripts being included in the response. The code that ensures
that a given JS file is included only once is broken in some way.


{"scripts":["/assets/ctx/ajax-1.0-SNAPSHOT/js/editkeywords.js","/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox

/modalbox.js","/assets/scriptaculous/5.1.0.5/builder.js","/assets/ctx/ajax-1.0-SNAPSHOT/js/editkeywords

.js","/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox.js","/assets/scriptaculous/5.1.0.5/builder.js"

,"/assets/ctx/ajax-1.0-SNAPSHOT/js/editkeywords.js","/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox

.js","/assets/scriptaculous/5.1.0.5/builder.js","/assets/ctx/ajax-1.0-SNAPSHOT/js/editkeywords.js","

/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox.js","/assets/scriptaculous/5.1.0.5/builder.js","/assets

/ctx/ajax-1.0-SNAPSHOT/js/editkeywords.js","/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox.js","

/assets/scriptaculous/5.1.0.5/builder.js","/assets/ctx/ajax-1.0-SNAPSHOT/js/editkeywords.js","/assets

/ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox.js","/assets/scriptaculous/5.1.0.5/builder.js","/assets/ctx

/ajax-1.0-SNAPSHOT/js/editkeywords.js","/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox.js","/assets

/scriptaculous/5.1.0.5/builder.js","/assets/ctx/ajax-1.0-SNAPSHOT/js/editkeywords.js","/assets/ctx/ajax-1

.0-SNAPSHOT/js/modalbox/modalbox.js","/assets/scriptaculous/5.1.0.5/builder.js","/assets/ctx/ajax-1.0-SNAPSHOT

/js/editkeywords.js","/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox.js","/assets/scriptaculous/5

.1.0.5/builder.js","/assets/ctx/ajax-1.0-SNAPSHOT/js/editkeywords.js","/assets/ctx/ajax-1.0-SNAPSHOT

/js/modalbox/modalbox.js","/assets/scriptaculous/5.1.0.5/builder.js"],"script":"Tapestry.init({\"editKeywords

\":[[\"edit-122529b387e\",\"keywords-122529b387e\"],[\"edit-122529b387e_0\",\"keywords-122529b387e_0

\"],[\"edit-122529b387e_1\",\"keywords-122529b387e_1\"],[\"edit-122529b387e_2\",\"keywords-122529b387e_2

\"],[\"edit-122529b387e_3\",\"keywords-122529b387e_3\"],[\"edit-122529b387e_4\",\"keywords-122529b387e_4

\"],[\"edit-122529b387e_5\",\"keywords-122529b387e_5\"],[\"edit-122529b387e_6\",\"keywords-122529b387e_6

\"],[\"edit-122529b387e_7\",\"keywords-122529b387e_7\"],[\"edit-122529b387e_8\",\"keywords-122529b387e_8

\"]]});\n","stylesheets":[{"href":"/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox.css"},{"href":"

/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox.css"},{"href":"/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox

/modalbox.css"},{"href":"/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox.css"},{"href":"/assets/ctx

/ajax-1.0-SNAPSHOT/js/modalbox/modalbox.css"},{"href":"/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox

.css"},{"href":"/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox.css"},{"href":"/assets/ctx/ajax-1

.0-SNAPSHOT/js/modalbox/modalbox.css"},{"href":"/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox.css"

},{"href":"/assets/ctx/ajax-1.0-SNAPSHOT/js/modalbox/modalbox.css"}],"content":"<div><h2>Recent
Postings

<\/h2><div class='post'><h3>We are now using the Autocomplete mixin<\/h3><p
class='meta'>\nPosted by

\n<a href='/blogger/hlship'>\nhlship\n<\/a>\non\nJul 2, 2009 1:42:33 PM\n- \n<a
href='/post/podium/we_are_now_using_the_autocomplete_mixin'

>\nFULL LISTING\n<\/a>\n- \nno\ncomments\n<\/p><\/div><div id='keywords-122529b387e'
class='keywords'

><span class='keyword'><a href='/blog/keyword/podium/yui'>yui\n<\/a><\/span><span
class='keyword'><a

 href='/blog/keyword/podium/screencast'>screencast\n<\/a><\/span><span class='keyword'><a
href='/blog

/keyword/podium/success'>success\n<\/a><\/span><a id='edit-122529b387e'
title='Click to edit keywords'

 href='/blog/index.outputposting.edit/16?t:ac=podium'><img alt='Edit Keywords' src='/assets/ctx/ajax-1

.0-SNAPSHOT/images/pencil.png'/><\/a><\/div><br style='clear: both;'/><div
class='entry'>Also, the new

 YUI-based rich text area.&nbsp; Turns out FCKEditor was behaving poorly.&nbsp;&nbsp;&nbsp;<\/div><div

 class='post'><h3>Still setting up for the screen capture<\/h3><p class='meta'>\nPosted
by\n<a href='

/blogger/hlship'>\nhlship\n<\/a>\non\nJul 2, 2009 1:34:35 PM\n- \n<a href='/post/podium/still_setting_up_for_the_screen_capture'

>\nFULL LISTING\n<\/a>\n- \nno\ncomments\n<\/p><\/div><div id='keywords-122529b387e_0'
class='keywords'

><span class='keyword'><a href='/blog/keyword/podium/yui'>yui\n<\/a><\/span><span
class='keyword'><a

 href='/blog/keyword/podium/success'>success\n<\/a><\/span><a id='edit-122529b387e_0'
title='Click to

 edit keywords' href='/blog/index.outputposting.edit/15?t:ac=podium'><img alt='Edit
Keywords' src='/assets

/ctx/ajax-1.0-SNAPSHOT/images/pencil.png'/><\/a><\/div><br style='clear:
both;'/><div class='entry'>Still

 setting up for the screen capture. <em>YUI Editor<\/em> is looking quite nice.
It's slightly different

 from FCKEditor in that it doesn't implcitly surround the content provided in a &lt;p&gt;
element.<\

/div><div class='post'><h3>Now using YUI<\/h3><p class='meta'>\nPosted
by\n<a href='/blogger/hlship'

>\nhlship\n<\/a>\non\nJul 2, 2009 10:55:33 AM\n- \n<a href='/post/podium/now_using_yui'>\nFULL
LISTING

\n<\/a>\n- \nno\ncomments\n<\/p><\/div><div id='keywords-122529b387e_1'
class='keywords'><span class='keyword'

><a href='/blog/keyword/podium/yui'>yui\n<\/a><\/span><span class='keyword'><a
href='/blog/keyword/podium

/success'>success\n<\/a><\/span><a id='edit-122529b387e_1' title='Click
to edit keywords' href='/blog

/index.outputposting.edit/14?t:ac=podium'><img alt='Edit Keywords' src='/assets/ctx/ajax-1.0-SNAPSHOT

/images/pencil.png'/><\/a><\/div><br style='clear: both;'/><div class='entry'>Abandoned
<strong>FCKEditor

?<\/strong> for <strong>YUI Editor<\/strong>.<\/div><div class='post'><h3>Worked!<\/h3><p
class='meta'

>\nPosted by\n<a href='/blogger/hlship'>\nhlship\n<\/a>\non\nJul 1, 2009 4:08:41
PM\n- \n<a href='/post

/podium/worked'>\nFULL LISTING\n<\/a>\n- \nno\ncomments\n<\/p><\/div><div
id='keywords-122529b387e_2'

 class='keywords'><span class='keyword'><a href='/blog/keyword/podium/success'>success\n<\/a><\/span

><span class='keyword'><a href='/blog/keyword/podium/ajax'>ajax\n<\/a><\/span><a
id='edit-122529b387e_2'

 title='Click to edit keywords' href='/blog/index.outputposting.edit/13?t:ac=podium'><img
alt='Edit Keywords'

 src='/assets/ctx/ajax-1.0-SNAPSHOT/images/pencil.png'/><\/a><\/div><br
style='clear: both;'/><div class

='entry'><p>Check in the database and the data looks to have gone in fine.<\/p><\/div><div
class='post'

><h3>First experiment with keywords<\/h3><p class='meta'>\nPosted by\n<a
href='/blogger/hlship'>\nhlship

\n<\/a>\non\nJul 1, 2009 4:08:00 PM\n- \n<a href='/post/podium/first_experiment_with_keywords'>\nFULL

 LISTING\n<\/a>\n- \nno\ncomments\n<\/p><\/div><div id='keywords-122529b387e_3'
class='keywords'><span

 class='keyword'><a href='/blog/keyword/podium/keywords'>keywords\n<\/a><\/span><span
class='keyword'

><a href='/blog/keyword/podium/ajax'>ajax\n<\/a><\/span><span class='keyword'><a
href='/blog/keyword

/podium/labs'>labs\n<\/a><\/span><a id='edit-122529b387e_3' title='Click
to edit keywords' href='/blog

/index.outputposting.edit/12?t:ac=podium'><img alt='Edit Keywords' src='/assets/ctx/ajax-1.0-SNAPSHOT

/images/pencil.png'/><\/a><\/div><br style='clear: both;'/><div class='entry'><p>This
is the first attempt

 to store keywords in the database. I've implemented a KeywordDAO service and am collecting
the keywords

 (as text) on page BlogIndex.<\/p><\/div><div class='post'><h3>Setting
up the Grid lab<\/h3><p class

='meta'>\nPosted by\n<a href='/blogger/hlship'>\nhlship\n<\/a>\non\nAug 28,
2008 3:13:43 PM\n- \n<a href

='/post/podium/setting_up_the_grid_lab'>\nFULL LISTING\n<\/a>\n- \n1\ncomments\n<\/p><\/div><div
id='keywords-122529b387e_4'

 class='keywords'><a id='edit-122529b387e_4' title='Click to edit keywords' href='/blog/index.outputposting

.edit/11?t:ac=podium'><img alt='Edit Keywords' src='/assets/ctx/ajax-1.0-SNAPSHOT/images/pencil.png'

/><\/a><\/div><br style='clear: both;'/><div class='entry'><p>Starting
to set up a new lab nominally

 about the <strong>Grid<\/strong> component, but will touch on a bunch of other
areas as well.<\/p><

\/div><div class='post'><h3>Debugging a problem with posting<\/h3><p
class='meta'>\nPosted by\n<a href

='/blogger/hlship'>\nhlship\n<\/a>\non\nJul 9, 2008 7:13:52 PM\n- \n<a href='/post/podium/debugging_a_problem_with_posting'

>\nFULL LISTING\n<\/a>\n- \nno\ncomments\n<\/p><\/div><div id='keywords-122529b387e_5'
class='keywords'

><a id='edit-122529b387e_5' title='Click to edit keywords' href='/blog/index.outputposting.edit/10?t

:ac=podium'><img alt='Edit Keywords' src='/assets/ctx/ajax-1.0-SNAPSHOT/images/pencil.png'/><\/a><\/div

><br style='clear: both;'/><div class='entry'><p>Now that I've completed
the mungTitle() code in BlogIndex

, I'm getting a <em>NullPointerException<\/em>.<\/p><\/div><div
class='post'><h3>Session 3 : Components

<\/h3><p class='meta'>\nPosted by\n<a href='/blogger/hlship'>\nhlship\n<\/a>\non\nJul
7, 2008 4:26:43

 PM\n- \n<a href='/post/podium/session_3_components'>\nFULL LISTING\n<\/a>\n-
\nno\ncomments\n<\/p><\/div

><div id='keywords-122529b387e_6' class='keywords'><a id='edit-122529b387e_6'
title='Click to edit keywords'

 href='/blog/index.outputposting.edit/8?t:ac=podium'><img alt='Edit Keywords' src='/assets/ctx/ajax-1

.0-SNAPSHOT/images/pencil.png'/><\/a><\/div><br style='clear: both;'/><div
class='entry'><p>In this session

, we'll be learning about components: how to create them, how they work, and how they communicate
with

 the outside world.<\/p><\/div><div class='post'><h3>Clear the browser
history<\/h3><p class='meta'>

\nPosted by\n<a href='/blogger/hlship'>\nhlship\n<\/a>\non\nJul 7, 2008 11:08:44
AM\n- \n<a href='/post

/podium/clear_the_browser_history'>\nFULL LISTING\n<\/a>\n- \nno\ncomments\n<\/p><\/div><div
id='keywords-122529b387e_7'

 class='keywords'><a id='edit-122529b387e_7' title='Click to edit keywords' href='/blog/index.outputposting

.edit/7?t:ac=podium'><img alt='Edit Keywords' src='/assets/ctx/ajax-1.0-SNAPSHOT/images/pencil.png'/

><\/a><\/div><br style='clear: both;'/><div class='entry'><p>Note
to self: in the future, remember to

 clear browser history before doing a screencast.&nbsp; It's too easy to accidentally
jump to an unwanted

 site just because you've visited it recently.<\/p>\r\n<p>Creating sessions and
screencasts is <em>so

<\/em> full of unwanted surprises!<\/p>\r\n<p>&nbsp;<\/p><\/div><div
class='post'><h3>Picking up the

 pace<\/h3><p class='meta'>\nPosted by\n<a href='/blogger/hlship'>\nhlship\n<\/a>\non\nJul
4, 2008 11

:11:54 AM\n- \n<a href='/post/podium/picking_up_the_pace'>\nFULL LISTING\n<\/a>\n-
\nno\ncomments\n<\/p

><\/div><div id='keywords-122529b387e_8' class='keywords'><a id='edit-122529b387e_8'
title='Click to

 edit keywords' href='/blog/index.outputposting.edit/6?t:ac=podium'><img alt='Edit Keywords'
src='/assets

/ctx/ajax-1.0-SNAPSHOT/images/pencil.png'/><\/a><\/div><br style='clear:
both;'/><div class='entry'>

<p>By the end of session #2, we'll have covered using PageLink, BeanEditForm and Grid
along with a number

 of the Tapestry annotations.<\/p><\/div><\/div>"}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message