[jira] Commented: (TAP5-469) ResponseCompressionAnalyzer: application/json responses should be uncompressable by default
[ https://issues.apache.org/jira/browse/TAP5-469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12696993#action_12696993 ] Andy Blower commented on TAP5-469: -- I have just encountered this issue in IE6, FF3 Chrome2 on windows XP. The workaround fixes the issue as expected, but there definitely seems to be a problem here out of the box. ResponseCompressionAnalyzer: application/json responses should be uncompressable by default --- Key: TAP5-469 URL: https://issues.apache.org/jira/browse/TAP5-469 Project: Tapestry 5 Issue Type: Bug Components: tapestry-core Affects Versions: 5.1.0.0 Reporter: Paudi Moriarty GZip compressed responses with Content-Type: application/json are not handled correctly by at least Firefox or IE and should be configured as uncompressable by default When the response is received in prototype's Ajax.Request response.responseText is . -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Created: (TAP5-633) Allow page classes to have a Page suffix that is not included in the URL
Allow page classes to have a Page suffix that is not included in the URL -- Key: TAP5-633 URL: https://issues.apache.org/jira/browse/TAP5-633 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core Affects Versions: 5.1.0.2 Reporter: Paul Field Priority: Minor I have an application with a lot of read-only pages. For example, I have a page that shows a company and I would like a URI such as: /company/1234 However, if I name the page class Company then I get a naming clash with the domain object Company. What I would like to do is call the Tapestry 5 class CompanyPage - after all, that is what the class represents and it's certainly how the team refers to that thing internally and with our business (i.e. Have you seen the new company page?). So, please could the ComponentClassResolverImpl remove the suffix Page (if it exists) from the class name when it constructs the logical page name? -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Created: (TAP5-634) Google App Engine Support: disable code that creates new threads
Google App Engine Support: disable code that creates new threads Key: TAP5-634 URL: https://issues.apache.org/jira/browse/TAP5-634 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core, tapestry-ioc Affects Versions: 5.1.0.3 Reporter: Howard M. Lewis Ship Right off the bat, the restriction in GAA that no threads be created will affect a few, small sections of Tapestry. In the larger scheme of things, a tapestry-googleappengine library may require a few things: - Make the GAA services (such as UserService) injectable - Support for JDO (much like tapestry-hibernate, today) - Other, unforseen Also, depending on the license of GAA (and availabilty through Maven) may need to host such a library at Tapestry360. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Created: (TAP5-635) NPE when using a label with a radio group component
NPE when using a label with a radio group component --- Key: TAP5-635 URL: https://issues.apache.org/jira/browse/TAP5-635 Project: Tapestry 5 Issue Type: Bug Affects Versions: 5.1.0.2 Reporter: Andy Blower After three hours of detective work I've tracked this NPE to using a label with a radio group component. This works in 5.0.18, but not in 5.1.0.2. The stack trace is as follows for the example page I will attach: ERROR (RequestExceptionHandler:62 ) - Processing of request failed with uncaught exception: java.lang.NullPointerException java.lang.NullPointerException at org.apache.tapestry5.dom.AbstractMarkupModel.encodeQuoted(AbstractMarkupModel.java:94) at org.apache.tapestry5.dom.Attribute.render(Attribute.java:69) at org.apache.tapestry5.dom.Element.toMarkup(Element.java:313) at org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) at org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) at org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) at org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) at org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) at org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) at org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) at org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) at org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) at org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) at org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) at org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) at org.apache.tapestry5.dom.Document.toMarkup(Document.java:163) at org.apache.tapestry5.dom.Node.toMarkup(Node.java:80) at org.apache.tapestry5.internal.services.MarkupWriterImpl.toMarkup(MarkupWriterImpl.java:57) at org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:67) at $PageResponseRenderer_1208672dc1e.renderPageResponse($PageResponseRenderer_1208672dc1e.java) at org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:63) at org.apache.tapestry5.services.TapestryModule$33.handle(TapestryModule.java:1952) at $PageRenderRequestHandler_1208672dc1f.handle($PageRenderRequestHandler_1208672dc1f.java) at $PageRenderRequestHandler_1208672dc0b.handle($PageRenderRequestHandler_1208672dc0b.java) at org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handlePageRender(ComponentRequestHandlerTerminator.java:48) at $ComponentRequestHandler_1208672dc0f.handlePageRender($ComponentRequestHandler_1208672dc0f.java) at org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:45) at $Dispatcher_1208672dc11.dispatch($Dispatcher_1208672dc11.java) at $Dispatcher_1208672dc07.dispatch($Dispatcher_1208672dc07.java) at org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:250) at org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) at $RequestHandler_1208672dc08.service($RequestHandler_1208672dc08.java) at org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:782) at $RequestHandler_1208672dc08.service($RequestHandler_1208672dc08.java) at org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:771) at $RequestHandler_1208672dc08.service($RequestHandler_1208672dc08.java) at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85) at $RequestHandler_1208672dc08.service($RequestHandler_1208672dc08.java) at com.proquest.apps.corelib.AppCoreLibModule$4.service(AppCoreLibModule.java:209) at $RequestFilter_1208672dc04.service($RequestFilter_1208672dc04.java) at $RequestHandler_1208672dc08.service($RequestHandler_1208672dc08.java) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:81) at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:103) at $RequestHandler_1208672dc08.service($RequestHandler_1208672dc08.java) at $RequestHandler_1208672dbfe.service($RequestHandler_1208672dbfe.java) at
[jira] Updated: (TAP5-635) NPE when using a label with a radio group component
[ https://issues.apache.org/jira/browse/TAP5-635?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andy Blower updated TAP5-635: - Attachment: LabelBreakage.tml LabelBreakage.java A simple page that demonstrates the NPE problem. Comment out the label component and it works fine. NPE when using a label with a radio group component --- Key: TAP5-635 URL: https://issues.apache.org/jira/browse/TAP5-635 Project: Tapestry 5 Issue Type: Bug Affects Versions: 5.1.0.2 Reporter: Andy Blower Attachments: LabelBreakage.java, LabelBreakage.tml After three hours of detective work I've tracked this NPE to using a label with a radio group component. This works in 5.0.18, but not in 5.1.0.2. The stack trace is as follows for the example page I will attach: ERROR (RequestExceptionHandler:62 ) - Processing of request failed with uncaught exception: java.lang.NullPointerException java.lang.NullPointerException at org.apache.tapestry5.dom.AbstractMarkupModel.encodeQuoted(AbstractMarkupModel.java:94) at org.apache.tapestry5.dom.Attribute.render(Attribute.java:69) at org.apache.tapestry5.dom.Element.toMarkup(Element.java:313) at org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) at org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) at org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) at org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) at org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) at org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) at org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) at org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) at org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) at org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) at org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) at org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) at org.apache.tapestry5.dom.Document.toMarkup(Document.java:163) at org.apache.tapestry5.dom.Node.toMarkup(Node.java:80) at org.apache.tapestry5.internal.services.MarkupWriterImpl.toMarkup(MarkupWriterImpl.java:57) at org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:67) at $PageResponseRenderer_1208672dc1e.renderPageResponse($PageResponseRenderer_1208672dc1e.java) at org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:63) at org.apache.tapestry5.services.TapestryModule$33.handle(TapestryModule.java:1952) at $PageRenderRequestHandler_1208672dc1f.handle($PageRenderRequestHandler_1208672dc1f.java) at $PageRenderRequestHandler_1208672dc0b.handle($PageRenderRequestHandler_1208672dc0b.java) at org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handlePageRender(ComponentRequestHandlerTerminator.java:48) at $ComponentRequestHandler_1208672dc0f.handlePageRender($ComponentRequestHandler_1208672dc0f.java) at org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:45) at $Dispatcher_1208672dc11.dispatch($Dispatcher_1208672dc11.java) at $Dispatcher_1208672dc07.dispatch($Dispatcher_1208672dc07.java) at org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:250) at org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) at $RequestHandler_1208672dc08.service($RequestHandler_1208672dc08.java) at org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:782) at $RequestHandler_1208672dc08.service($RequestHandler_1208672dc08.java) at org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:771) at $RequestHandler_1208672dc08.service($RequestHandler_1208672dc08.java) at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85) at $RequestHandler_1208672dc08.service($RequestHandler_1208672dc08.java) at com.proquest.apps.corelib.AppCoreLibModule$4.service(AppCoreLibModule.java:209) at $RequestFilter_1208672dc04.service($RequestFilter_1208672dc04.java) at $RequestHandler_1208672dc08.service($RequestHandler_1208672dc08.java) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:81) at
[jira] Assigned: (TAP5-469) ResponseCompressionAnalyzer: application/json responses should be uncompressable by default
[ https://issues.apache.org/jira/browse/TAP5-469?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Howard M. Lewis Ship reassigned TAP5-469: - Assignee: Howard M. Lewis Ship ResponseCompressionAnalyzer: application/json responses should be uncompressable by default --- Key: TAP5-469 URL: https://issues.apache.org/jira/browse/TAP5-469 Project: Tapestry 5 Issue Type: Bug Components: tapestry-core Affects Versions: 5.1.0.0 Reporter: Paudi Moriarty Assignee: Howard M. Lewis Ship GZip compressed responses with Content-Type: application/json are not handled correctly by at least Firefox or IE and should be configured as uncompressable by default When the response is received in prototype's Ajax.Request response.responseText is . -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Created: (TAP5-636) NPE inside Attribute.write() if value is null
NPE inside Attribute.write() if value is null - Key: TAP5-636 URL: https://issues.apache.org/jira/browse/TAP5-636 Project: Tapestry 5 Issue Type: Bug Components: tapestry-core Affects Versions: 5.1.0.3 Reporter: Howard M. Lewis Ship An unexpected application exception has occurred. * java.lang.NullPointerException * org.apache.tapestry5.dom.AbstractMarkupModel.encodeQuoted(AbstractMarkupModel.java:94) * org.apache.tapestry5.dom.Attribute.render(Attribute.java:69) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:313) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Document.toMarkup(Document.java:163) * org.apache.tapestry5.dom.Node.toMarkup(Node.java:80) * org.apache.tapestry5.internal.services.MarkupWriterImpl.toMarkup(MarkupWriterImpl.java:57) * org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:67) * $PageResponseRenderer_12085541484.renderPageResponse($PageResponseRenderer_12085541484.java) The real question is: how can the value ever be null? Adding an attribute that's null, or overriding an attribute to null, should remove it from the list. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Assigned: (TAP5-636) NPE inside Attribute.write() if value is null
[ https://issues.apache.org/jira/browse/TAP5-636?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Howard M. Lewis Ship reassigned TAP5-636: - Assignee: Howard M. Lewis Ship NPE inside Attribute.write() if value is null - Key: TAP5-636 URL: https://issues.apache.org/jira/browse/TAP5-636 Project: Tapestry 5 Issue Type: Bug Components: tapestry-core Affects Versions: 5.1.0.3 Reporter: Howard M. Lewis Ship Assignee: Howard M. Lewis Ship An unexpected application exception has occurred. * java.lang.NullPointerException * org.apache.tapestry5.dom.AbstractMarkupModel.encodeQuoted(AbstractMarkupModel.java:94) * org.apache.tapestry5.dom.Attribute.render(Attribute.java:69) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:313) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Document.toMarkup(Document.java:163) * org.apache.tapestry5.dom.Node.toMarkup(Node.java:80) * org.apache.tapestry5.internal.services.MarkupWriterImpl.toMarkup(MarkupWriterImpl.java:57) * org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:67) * $PageResponseRenderer_12085541484.renderPageResponse($PageResponseRenderer_12085541484.java) The real question is: how can the value ever be null? Adding an attribute that's null, or overriding an attribute to null, should remove it from the list. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
svn commit: r763334 - in /tapestry/tapestry5/trunk/tapestry-core/src: main/java/org/apache/tapestry5/dom/AbstractMarkupModel.java main/java/org/apache/tapestry5/dom/Element.java test/java/org/apache/t
Author: hlship Date: Wed Apr 8 18:02:00 2009 New Revision: 763334 URL: http://svn.apache.org/viewvc?rev=763334view=rev Log: TAP5-636: Using Element.forceAttribute() with a null value can cause a later NPE during rendering under some circumstances Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/dom/AbstractMarkupModel.java tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/dom/Element.java tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/dom/DOMTest.java Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/dom/AbstractMarkupModel.java URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/dom/AbstractMarkupModel.java?rev=763334r1=76r2=763334view=diff == --- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/dom/AbstractMarkupModel.java (original) +++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/dom/AbstractMarkupModel.java Wed Apr 8 18:02:00 2009 @@ -14,6 +14,8 @@ package org.apache.tapestry5.dom; +import org.apache.tapestry5.ioc.internal.util.Defense; + public abstract class AbstractMarkupModel implements MarkupModel { private final boolean useApostropheForAttributes; @@ -91,6 +93,8 @@ public void encodeQuoted(String content, StringBuilder builder) { +Defense.notNull(content, content); + int length = content.length(); for (int i = 0; i length; i++) Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/dom/Element.java URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/dom/Element.java?rev=763334r1=76r2=763334view=diff == --- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/dom/Element.java (original) +++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/dom/Element.java Wed Apr 8 18:02:00 2009 @@ -157,6 +157,10 @@ cursor = cursor.nextAttribute; } +// Don't add a Attribute if the value is null. + +if (value == null) return; + firstAttribute = new Attribute(this, namespace, name, value, firstAttribute); } @@ -181,7 +185,8 @@ } /** - * Forces changes to a number of attributes. The new attributes emoverwrite/em previous values. + * Forces changes to a number of attributes. The new attributes emoverwrite/em previous values. Overriding an + * attribute's value to null will remove the attribute entirely. */ public Element forceAttributes(String... namesAndValues) { Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/dom/DOMTest.java URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/dom/DOMTest.java?rev=763334r1=76r2=763334view=diff == --- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/dom/DOMTest.java (original) +++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/dom/DOMTest.java Wed Apr 8 18:02:00 2009 @@ -18,8 +18,8 @@ import org.apache.tapestry5.ioc.internal.util.CollectionFactory; import org.testng.annotations.Test; -import java.util.List; import java.util.Collection; +import java.util.List; /** * Tests for a number of DOM node classes, including {...@link org.apache.tapestry5.dom.Element} and {...@link @@ -849,4 +849,19 @@ assertEquals(attribute.getName(), fred); assertEquals(attribute.getValue(), flintstone); } + +/** + * TAP5-636 + */ +@Test +public void force_null_for_first_attribute_is_noop() +{ +Document d = new Document(); + +Element root = d.newRootElement(root); + +root.forceAttributes(null, null); + +assertEquals(root.toString(), root/root); +} }
[jira] Updated: (TAP5-636) Using Element.forceAttribute() with a null value can cause a later NPE during rendering under some circumstances
[ https://issues.apache.org/jira/browse/TAP5-636?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Howard M. Lewis Ship updated TAP5-636: -- Summary: Using Element.forceAttribute() with a null value can cause a later NPE during rendering under some circumstances (was: NPE inside Attribute.write() if value is null) Using Element.forceAttribute() with a null value can cause a later NPE during rendering under some circumstances Key: TAP5-636 URL: https://issues.apache.org/jira/browse/TAP5-636 Project: Tapestry 5 Issue Type: Bug Components: tapestry-core Affects Versions: 5.1.0.3 Reporter: Howard M. Lewis Ship Assignee: Howard M. Lewis Ship An unexpected application exception has occurred. * java.lang.NullPointerException * org.apache.tapestry5.dom.AbstractMarkupModel.encodeQuoted(AbstractMarkupModel.java:94) * org.apache.tapestry5.dom.Attribute.render(Attribute.java:69) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:313) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Document.toMarkup(Document.java:163) * org.apache.tapestry5.dom.Node.toMarkup(Node.java:80) * org.apache.tapestry5.internal.services.MarkupWriterImpl.toMarkup(MarkupWriterImpl.java:57) * org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:67) * $PageResponseRenderer_12085541484.renderPageResponse($PageResponseRenderer_12085541484.java) The real question is: how can the value ever be null? Adding an attribute that's null, or overriding an attribute to null, should remove it from the list. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Closed: (TAP5-636) Using Element.forceAttribute() with a null value can cause a later NPE during rendering under some circumstances
[ https://issues.apache.org/jira/browse/TAP5-636?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Howard M. Lewis Ship closed TAP5-636. - Resolution: Fixed Fix Version/s: 5.1.0.3 Using Element.forceAttribute() with a null value can cause a later NPE during rendering under some circumstances Key: TAP5-636 URL: https://issues.apache.org/jira/browse/TAP5-636 Project: Tapestry 5 Issue Type: Bug Components: tapestry-core Affects Versions: 5.1.0.3 Reporter: Howard M. Lewis Ship Assignee: Howard M. Lewis Ship Fix For: 5.1.0.3 An unexpected application exception has occurred. * java.lang.NullPointerException * org.apache.tapestry5.dom.AbstractMarkupModel.encodeQuoted(AbstractMarkupModel.java:94) * org.apache.tapestry5.dom.Attribute.render(Attribute.java:69) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:313) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) * org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) * org.apache.tapestry5.dom.Document.toMarkup(Document.java:163) * org.apache.tapestry5.dom.Node.toMarkup(Node.java:80) * org.apache.tapestry5.internal.services.MarkupWriterImpl.toMarkup(MarkupWriterImpl.java:57) * org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:67) * $PageResponseRenderer_12085541484.renderPageResponse($PageResponseRenderer_12085541484.java) The real question is: how can the value ever be null? Adding an attribute that's null, or overriding an attribute to null, should remove it from the list. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (TAP5-634) Google App Engine Support: disable code that creates new threads
[ https://issues.apache.org/jira/browse/TAP5-634?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12697158#action_12697158 ] Thiago H. de Paula Figueiredo commented on TAP5-634: Don't forget that GAA also supports JPA. This is very nice, as I guess it'll be a easier transition from Hibernate. Google App Engine Support: disable code that creates new threads Key: TAP5-634 URL: https://issues.apache.org/jira/browse/TAP5-634 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core, tapestry-ioc Affects Versions: 5.1.0.3 Reporter: Howard M. Lewis Ship Right off the bat, the restriction in GAA that no threads be created will affect a few, small sections of Tapestry. In the larger scheme of things, a tapestry-googleappengine library may require a few things: - Make the GAA services (such as UserService) injectable - Support for JDO (much like tapestry-hibernate, today) - Other, unforseen Also, depending on the license of GAA (and availabilty through Maven) may need to host such a library at Tapestry360. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (TAP5-138) Add Zone parameter to Select component
[ https://issues.apache.org/jira/browse/TAP5-138?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12697160#action_12697160 ] Thiago H. de Paula Figueiredo commented on TAP5-138: I suggest the AJAX part would be better implemented as a mixin instead, a little like Autocomplete. And I agree with Peter about having something like a LinkedSelectPair component. They're would be a good suite for different situations. Add Zone parameter to Select component -- Key: TAP5-138 URL: https://issues.apache.org/jira/browse/TAP5-138 Project: Tapestry 5 Issue Type: New Feature Affects Versions: 5.0.15 Reporter: Geoff Callender Add AJAX ability to selection in a Select component to allow the classic chaining of Select components. Eg. for filtering car advertisements: 3 Select components - Brand, Make, Model. Choosing a Brand causes the Make to be enabled, showing the possible makes. Similarly, choosing a Make causes the Model to be enabled, showing the possible models. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Closed: (TAP5-635) NPE when using a label with a radio group component
[ https://issues.apache.org/jira/browse/TAP5-635?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Howard M. Lewis Ship closed TAP5-635. - Resolution: Duplicate Assignee: Howard M. Lewis Ship TAP5-636 NPE when using a label with a radio group component --- Key: TAP5-635 URL: https://issues.apache.org/jira/browse/TAP5-635 Project: Tapestry 5 Issue Type: Bug Affects Versions: 5.1.0.2 Reporter: Andy Blower Assignee: Howard M. Lewis Ship Attachments: LabelBreakage.java, LabelBreakage.tml After three hours of detective work I've tracked this NPE to using a label with a radio group component. This works in 5.0.18, but not in 5.1.0.2. The stack trace is as follows for the example page I will attach: ERROR (RequestExceptionHandler:62 ) - Processing of request failed with uncaught exception: java.lang.NullPointerException java.lang.NullPointerException at org.apache.tapestry5.dom.AbstractMarkupModel.encodeQuoted(AbstractMarkupModel.java:94) at org.apache.tapestry5.dom.Attribute.render(Attribute.java:69) at org.apache.tapestry5.dom.Element.toMarkup(Element.java:313) at org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) at org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) at org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) at org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) at org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) at org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) at org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) at org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) at org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) at org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) at org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:835) at org.apache.tapestry5.dom.Element.toMarkup(Element.java:351) at org.apache.tapestry5.dom.Document.toMarkup(Document.java:163) at org.apache.tapestry5.dom.Node.toMarkup(Node.java:80) at org.apache.tapestry5.internal.services.MarkupWriterImpl.toMarkup(MarkupWriterImpl.java:57) at org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:67) at $PageResponseRenderer_1208672dc1e.renderPageResponse($PageResponseRenderer_1208672dc1e.java) at org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:63) at org.apache.tapestry5.services.TapestryModule$33.handle(TapestryModule.java:1952) at $PageRenderRequestHandler_1208672dc1f.handle($PageRenderRequestHandler_1208672dc1f.java) at $PageRenderRequestHandler_1208672dc0b.handle($PageRenderRequestHandler_1208672dc0b.java) at org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handlePageRender(ComponentRequestHandlerTerminator.java:48) at $ComponentRequestHandler_1208672dc0f.handlePageRender($ComponentRequestHandler_1208672dc0f.java) at org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:45) at $Dispatcher_1208672dc11.dispatch($Dispatcher_1208672dc11.java) at $Dispatcher_1208672dc07.dispatch($Dispatcher_1208672dc07.java) at org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:250) at org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) at $RequestHandler_1208672dc08.service($RequestHandler_1208672dc08.java) at org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:782) at $RequestHandler_1208672dc08.service($RequestHandler_1208672dc08.java) at org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:771) at $RequestHandler_1208672dc08.service($RequestHandler_1208672dc08.java) at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85) at $RequestHandler_1208672dc08.service($RequestHandler_1208672dc08.java) at com.proquest.apps.corelib.AppCoreLibModule$4.service(AppCoreLibModule.java:209) at $RequestFilter_1208672dc04.service($RequestFilter_1208672dc04.java) at $RequestHandler_1208672dc08.service($RequestHandler_1208672dc08.java) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:81) at
[jira] Commented: (TAP5-469) ResponseCompressionAnalyzer: application/json responses should be uncompressable by default
[ https://issues.apache.org/jira/browse/TAP5-469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12697171#action_12697171 ] Howard M. Lewis Ship commented on TAP5-469: --- Ok, I'll set the default to no longer compress application/json. I have feelers out in the Prototype mailing lists and elsewhere to figure out what's going on. ResponseCompressionAnalyzer: application/json responses should be uncompressable by default --- Key: TAP5-469 URL: https://issues.apache.org/jira/browse/TAP5-469 Project: Tapestry 5 Issue Type: Bug Components: tapestry-core Affects Versions: 5.1.0.0 Reporter: Paudi Moriarty Assignee: Howard M. Lewis Ship GZip compressed responses with Content-Type: application/json are not handled correctly by at least Firefox or IE and should be configured as uncompressable by default When the response is received in prototype's Ajax.Request response.responseText is . -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
svn commit: r763377 - /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java
Author: hlship Date: Wed Apr 8 20:21:44 2009 New Revision: 763377 URL: http://svn.apache.org/viewvc?rev=763377view=rev Log: TAP5-469: ResponseCompressionAnalyzer: application/json responses should be uncompressable by default Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java?rev=763377r1=763376r2=763377view=diff == --- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java (original) +++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java Wed Apr 8 20:21:44 2009 @@ -2307,7 +2307,7 @@ /** * Contibutions are content types that do not benefit from compression. Adds the following content types: ul - * liimage/jpeg/li liimage/gif liimage/png /ul + * liimage/jpeg/li liimage/gif liimage/png liapplication/json (see https://issues.apache.org/jira/browse/TAP5-469)/ul * * @since 5.1.0.0 */ @@ -2316,6 +2316,7 @@ configuration.add(image/jpeg); configuration.add(image/gif); configuration.add(image/png); +configuration.add(application/json); } /**
[jira] Closed: (TAP5-469) ResponseCompressionAnalyzer: application/json responses should be uncompressable by default
[ https://issues.apache.org/jira/browse/TAP5-469?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Howard M. Lewis Ship closed TAP5-469. - Resolution: Fixed Fix Version/s: 5.1.0.3 I'd rather understand the problem better, but if this solves the symptoms, it will do for now. ResponseCompressionAnalyzer: application/json responses should be uncompressable by default --- Key: TAP5-469 URL: https://issues.apache.org/jira/browse/TAP5-469 Project: Tapestry 5 Issue Type: Bug Components: tapestry-core Affects Versions: 5.1.0.0 Reporter: Paudi Moriarty Assignee: Howard M. Lewis Ship Fix For: 5.1.0.3 GZip compressed responses with Content-Type: application/json are not handled correctly by at least Firefox or IE and should be configured as uncompressable by default When the response is received in prototype's Ajax.Request response.responseText is . -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Assigned: (TAP5-634) Google App Engine Support: disable code that creates new threads
[ https://issues.apache.org/jira/browse/TAP5-634?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Howard M. Lewis Ship reassigned TAP5-634: - Assignee: Howard M. Lewis Ship Google App Engine Support: disable code that creates new threads Key: TAP5-634 URL: https://issues.apache.org/jira/browse/TAP5-634 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core, tapestry-ioc Affects Versions: 5.1.0.3 Reporter: Howard M. Lewis Ship Assignee: Howard M. Lewis Ship Right off the bat, the restriction in GAA that no threads be created will affect a few, small sections of Tapestry. In the larger scheme of things, a tapestry-googleappengine library may require a few things: - Make the GAA services (such as UserService) injectable - Support for JDO (much like tapestry-hibernate, today) - Other, unforseen Also, depending on the license of GAA (and availabilty through Maven) may need to host such a library at Tapestry360. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (TAP5-634) Google App Engine Support: disable code that creates new threads
[ https://issues.apache.org/jira/browse/TAP5-634?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Howard M. Lewis Ship updated TAP5-634: -- Description: Right off the bat, the restriction in GAE that no threads be created will affect a few, small sections of Tapestry. In the larger scheme of things, a tapestry-googleappengine library may require a few things: - Make the GAA services (such as UserService) injectable - Support for JDO (much like tapestry-hibernate, today) - Other, unforseen Also, depending on the license of GAE (and availabilty through Maven) may need to host such a library at Tapestry360. was: Right off the bat, the restriction in GAA that no threads be created will affect a few, small sections of Tapestry. In the larger scheme of things, a tapestry-googleappengine library may require a few things: - Make the GAA services (such as UserService) injectable - Support for JDO (much like tapestry-hibernate, today) - Other, unforseen Also, depending on the license of GAA (and availabilty through Maven) may need to host such a library at Tapestry360. Google App Engine Support: disable code that creates new threads Key: TAP5-634 URL: https://issues.apache.org/jira/browse/TAP5-634 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core, tapestry-ioc Affects Versions: 5.1.0.3 Reporter: Howard M. Lewis Ship Assignee: Howard M. Lewis Ship Right off the bat, the restriction in GAE that no threads be created will affect a few, small sections of Tapestry. In the larger scheme of things, a tapestry-googleappengine library may require a few things: - Make the GAA services (such as UserService) injectable - Support for JDO (much like tapestry-hibernate, today) - Other, unforseen Also, depending on the license of GAE (and availabilty through Maven) may need to host such a library at Tapestry360. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (TAP5-634) Google App Engine Support: ability to disable code that creates new threads
[ https://issues.apache.org/jira/browse/TAP5-634?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Howard M. Lewis Ship updated TAP5-634: -- Description: Right off the bat, the restriction in GAE that no threads be created will affect a few, small sections of Tapestry. In the larger scheme of things, a tapestry-googleappengine library may require a few things: - Make the GAE services (such as UserService) injectable - Support for JDO (much like tapestry-hibernate, today) - Other, unforseen Also, depending on the license of GAE (and availabilty through Maven) may need to host such a library at Tapestry360. was: Right off the bat, the restriction in GAE that no threads be created will affect a few, small sections of Tapestry. In the larger scheme of things, a tapestry-googleappengine library may require a few things: - Make the GAA services (such as UserService) injectable - Support for JDO (much like tapestry-hibernate, today) - Other, unforseen Also, depending on the license of GAE (and availabilty through Maven) may need to host such a library at Tapestry360. Summary: Google App Engine Support: ability to disable code that creates new threads (was: Google App Engine Support: disable code that creates new threads) Google App Engine Support: ability to disable code that creates new threads --- Key: TAP5-634 URL: https://issues.apache.org/jira/browse/TAP5-634 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core, tapestry-ioc Affects Versions: 5.1.0.3 Reporter: Howard M. Lewis Ship Assignee: Howard M. Lewis Ship Right off the bat, the restriction in GAE that no threads be created will affect a few, small sections of Tapestry. In the larger scheme of things, a tapestry-googleappengine library may require a few things: - Make the GAE services (such as UserService) injectable - Support for JDO (much like tapestry-hibernate, today) - Other, unforseen Also, depending on the license of GAE (and availabilty through Maven) may need to host such a library at Tapestry360. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
svn commit: r763398 - in /tapestry/tapestry5/trunk/tapestry-ioc/src: main/java/org/apache/tapestry5/ main/java/org/apache/tapestry5/ioc/internal/services/ main/java/org/apache/tapestry5/ioc/services/
Author: hlship Date: Wed Apr 8 21:17:16 2009 New Revision: 763398 URL: http://svn.apache.org/viewvc?rev=763398view=rev Log: TAP5-634: Google App Engine Support: ability to disable code that creates new threads Added: tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/NonParallelExecutor.java (with props) tapestry/tapestry5/trunk/tapestry-ioc/src/site/apt/parallel.apt (with props) tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/services/NonParallelExecutorTest.java (with props) tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/services/NonParallelModule.java (with props) Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/IOCSymbols.java tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/ParallelExecutor.java tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/TapestryIOCModule.java tapestry/tapestry5/trunk/tapestry-ioc/src/site/apt/advice.apt tapestry/tapestry5/trunk/tapestry-ioc/src/site/site.xml Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/IOCSymbols.java URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/IOCSymbols.java?rev=763398r1=763397r2=763398view=diff == --- tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/IOCSymbols.java (original) +++ tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/IOCSymbols.java Wed Apr 8 21:17:16 2009 @@ -36,4 +36,13 @@ * Default is one minute (an epoch in application time). */ public static final String THREAD_POOL_KEEP_ALIVE = tapestry.thread-pool.keep-alive; + +/** + * By default, the {...@link org.apache.tapestry5.ioc.services.ParallelExecutor} service uses a thread pool. In + * environments (such as Google Application Engine) where thread creation is not allowed, this can be set to + * false, and deferred logic will, instead, execute immediately. + * + * @since 5.1.0.3 + */ +public static final String THREAD_POOL_ENABLED = tapestry.thread-pool-enabled; } Added: tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/NonParallelExecutor.java URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/NonParallelExecutor.java?rev=763398view=auto == --- tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/NonParallelExecutor.java (added) +++ tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/NonParallelExecutor.java Wed Apr 8 21:17:16 2009 @@ -0,0 +1,70 @@ +// Copyright 2009 The Apache Software Foundation +// +// Licensed under the Apache License, Version 2.0 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package org.apache.tapestry5.ioc.internal.services; + +import org.apache.tapestry5.ioc.Invokable; +import org.apache.tapestry5.ioc.services.ParallelExecutor; + +import java.util.concurrent.ExecutionException; +import java.util.concurrent.Future; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; + +/** + * Implementation of {...@link ParallelExecutor} used when {...@linkplain org.apache.tapestry5.IOCSymbols#THREAD_POOL_ENABLED + * the thread pool is disabled}. + * + * @since 5.1.0.3 + */ +public class NonParallelExecutor implements ParallelExecutor +{ +public T FutureT invoke(InvokableT invocable) +{ +final T result = invocable.invoke(); + +return new FutureT() +{ +public boolean cancel(boolean mayInterruptIfRunning) +{ +return false; +} + +public boolean isCancelled() +{ +return false; +} + +public boolean isDone() +{ +return true; +} + +public T get() throws InterruptedException, ExecutionException +{ +return result; +} + +public T get(long timeout, TimeUnit unit) throws InterruptedException,
[jira] Closed: (TAP5-634) Google App Engine Support: ability to disable code that creates new threads
[ https://issues.apache.org/jira/browse/TAP5-634?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Howard M. Lewis Ship closed TAP5-634. - Resolution: Fixed Fix Version/s: 5.1.0.3 Google App Engine Support: ability to disable code that creates new threads --- Key: TAP5-634 URL: https://issues.apache.org/jira/browse/TAP5-634 Project: Tapestry 5 Issue Type: Improvement Components: tapestry-core, tapestry-ioc Affects Versions: 5.1.0.3 Reporter: Howard M. Lewis Ship Assignee: Howard M. Lewis Ship Fix For: 5.1.0.3 Right off the bat, the restriction in GAE that no threads be created will affect a few, small sections of Tapestry. In the larger scheme of things, a tapestry-googleappengine library may require a few things: - Make the GAE services (such as UserService) injectable - Support for JDO (much like tapestry-hibernate, today) - Other, unforseen Also, depending on the license of GAE (and availabilty through Maven) may need to host such a library at Tapestry360. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
svn commit: r763433 - in /tapestry/tapestry5/trunk: ./ quickstart/ quickstart/src/main/resources/archetype-resources/ src/site/xdoc/ tapestry-annotations/ tapestry-component-report/ tapestry-core/ tap
Author: hlship Date: Wed Apr 8 22:35:42 2009 New Revision: 763433 URL: http://svn.apache.org/viewvc?rev=763433view=rev Log: Generate release 5.1.0.3 Modified: tapestry/tapestry5/trunk/pom.xml tapestry/tapestry5/trunk/quickstart/pom.xml tapestry/tapestry5/trunk/quickstart/src/main/resources/archetype-resources/pom.xml tapestry/tapestry5/trunk/src/site/xdoc/release-notes.xml tapestry/tapestry5/trunk/tapestry-annotations/pom.xml tapestry/tapestry5/trunk/tapestry-component-report/pom.xml tapestry/tapestry5/trunk/tapestry-core/pom.xml tapestry/tapestry5/trunk/tapestry-hibernate-core/pom.xml tapestry/tapestry5/trunk/tapestry-hibernate/pom.xml tapestry/tapestry5/trunk/tapestry-ioc/pom.xml tapestry/tapestry5/trunk/tapestry-spring/pom.xml tapestry/tapestry5/trunk/tapestry-test/pom.xml tapestry/tapestry5/trunk/tapestry-tutorial1/pom.xml tapestry/tapestry5/trunk/tapestry-upload/pom.xml Modified: tapestry/tapestry5/trunk/pom.xml URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/pom.xml?rev=763433r1=763432r2=763433view=diff == --- tapestry/tapestry5/trunk/pom.xml (original) +++ tapestry/tapestry5/trunk/pom.xml Wed Apr 8 22:35:42 2009 @@ -4,7 +4,7 @@ groupIdorg.apache.tapestry/groupId artifactIdtapestry-project/artifactId packagingpom/packaging -version5.1.0.3-SNAPSHOT/version +version5.1.0.3/version nameTapestry 5 Project/name descriptionMaster project for the modules of Tapestry 5./description inceptionYear2006/inceptionYear Modified: tapestry/tapestry5/trunk/quickstart/pom.xml URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/quickstart/pom.xml?rev=763433r1=763432r2=763433view=diff == --- tapestry/tapestry5/trunk/quickstart/pom.xml (original) +++ tapestry/tapestry5/trunk/quickstart/pom.xml Wed Apr 8 22:35:42 2009 @@ -14,7 +14,7 @@ parent groupIdorg.apache.tapestry/groupId artifactIdtapestry-project/artifactId -version5.1.0.3-SNAPSHOT/version +version5.1.0.3/version /parent nameTapestry 5 Quickstart Archetype/name inceptionYear2007/inceptionYear Modified: tapestry/tapestry5/trunk/quickstart/src/main/resources/archetype-resources/pom.xml URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/quickstart/src/main/resources/archetype-resources/pom.xml?rev=763433r1=763432r2=763433view=diff == --- tapestry/tapestry5/trunk/quickstart/src/main/resources/archetype-resources/pom.xml (original) +++ tapestry/tapestry5/trunk/quickstart/src/main/resources/archetype-resources/pom.xml Wed Apr 8 22:35:42 2009 @@ -133,6 +133,6 @@ /pluginRepositories properties -tapestry-release-version5.1.0.3-SNAPSHOT/tapestry-release-version +tapestry-release-version5.1.0.3/tapestry-release-version /properties /project Modified: tapestry/tapestry5/trunk/src/site/xdoc/release-notes.xml URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/src/site/xdoc/release-notes.xml?rev=763433r1=763432r2=763433view=diff == --- tapestry/tapestry5/trunk/src/site/xdoc/release-notes.xml (original) +++ tapestry/tapestry5/trunk/src/site/xdoc/release-notes.xml Wed Apr 8 22:35:42 2009 @@ -25,6 +25,95 @@ /p +h1Release Notes - Tapestry 5 - Version 5.1.0.3/h1 + +h2Bug +/h2 +ul +li[a href='https://issues.apache.org/jira/browse/TAP5-469'TAP5-469/a] - ResponseCompressionAnalyzer: +application/json responses should be uncompressable by default +/li +li[a href='https://issues.apache.org/jira/browse/TAP5-596'TAP5-596/a] - Misleading description of +allowNull parameter of Parameter annotation in javadoc +/li +li[a href='https://issues.apache.org/jira/browse/TAP5-602'TAP5-602/a] - Contributing to TypeCoercer +with service fails even with @InjectService +/li +li[a href='https://issues.apache.org/jira/browse/TAP5-603'TAP5-603/a] - BeanEditForm ordering +behaviour inconsistent with documentation +/li +li[a href='https://issues.apache.org/jira/browse/TAP5-608'TAP5-608/a] - Quickstart archetype is broken +for 5.1.0.2: missing META-INF/maven/archetype.xml +/li +li[a href='https://issues.apache.org/jira/browse/TAP5-610'TAP5-610/a] - URLs are not being fully +optimized, quot;/indexquot; is not being stripped off when it should +/li +li[a href='https://issues.apache.org/jira/browse/TAP5-615'TAP5-615/a] - Tapestry template parse should +ignore
svn commit: r763436 - /tapestry/tapestry5/tags/releases/5.1.0.3/
Author: hlship Date: Wed Apr 8 22:39:33 2009 New Revision: 763436 URL: http://svn.apache.org/viewvc?rev=763436view=rev Log: Generate release 5.1.0.3 Added: tapestry/tapestry5/tags/releases/5.1.0.3/ (props changed) - copied from r763435, tapestry/tapestry5/trunk/ Propchange: tapestry/tapestry5/tags/releases/5.1.0.3/ -- --- svn:ignore (added) +++ svn:ignore Wed Apr 8 22:39:33 2009 @@ -0,0 +1,5 @@ +bin +target +bin-test +temp-testng-customsuite.xml +*.iml *.ipr *.iws .classpath .project .settings Propchange: tapestry/tapestry5/tags/releases/5.1.0.3/ -- --- svn:mergeinfo (added) +++ svn:mergeinfo Wed Apr 8 22:39:33 2009 @@ -0,0 +1,4 @@ +/tapestry/tapestry5/branches/5.0:717929-719744,723395-728733 +/tapestry/tapestry5/branches/hlship-5.0-perf:726734-728728 +/tapestry/tapestry5/tags/releases/5.0.17:719745 +/tapestry/tapestry5/tags/releases/hlship-5.0-perf:726733
svn commit: r763437 - in /tapestry/tapestry5/trunk: ./ quickstart/ quickstart/src/main/resources/archetype-resources/ tapestry-annotations/ tapestry-component-report/ tapestry-core/ tapestry-hibernate
Author: hlship Date: Wed Apr 8 22:40:15 2009 New Revision: 763437 URL: http://svn.apache.org/viewvc?rev=763437view=rev Log: Roll version number to 5.1.0.4-SNAPSHOT Modified: tapestry/tapestry5/trunk/pom.xml tapestry/tapestry5/trunk/quickstart/pom.xml tapestry/tapestry5/trunk/quickstart/src/main/resources/archetype-resources/pom.xml tapestry/tapestry5/trunk/tapestry-annotations/pom.xml tapestry/tapestry5/trunk/tapestry-component-report/pom.xml tapestry/tapestry5/trunk/tapestry-core/pom.xml tapestry/tapestry5/trunk/tapestry-hibernate-core/pom.xml tapestry/tapestry5/trunk/tapestry-hibernate/pom.xml tapestry/tapestry5/trunk/tapestry-ioc/pom.xml tapestry/tapestry5/trunk/tapestry-spring/pom.xml tapestry/tapestry5/trunk/tapestry-test/pom.xml tapestry/tapestry5/trunk/tapestry-tutorial1/pom.xml tapestry/tapestry5/trunk/tapestry-upload/pom.xml Modified: tapestry/tapestry5/trunk/pom.xml URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/pom.xml?rev=763437r1=763436r2=763437view=diff == --- tapestry/tapestry5/trunk/pom.xml (original) +++ tapestry/tapestry5/trunk/pom.xml Wed Apr 8 22:40:15 2009 @@ -4,7 +4,7 @@ groupIdorg.apache.tapestry/groupId artifactIdtapestry-project/artifactId packagingpom/packaging -version5.1.0.3/version +version5.1.0.4-SNAPSHOT/version nameTapestry 5 Project/name descriptionMaster project for the modules of Tapestry 5./description inceptionYear2006/inceptionYear Modified: tapestry/tapestry5/trunk/quickstart/pom.xml URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/quickstart/pom.xml?rev=763437r1=763436r2=763437view=diff == --- tapestry/tapestry5/trunk/quickstart/pom.xml (original) +++ tapestry/tapestry5/trunk/quickstart/pom.xml Wed Apr 8 22:40:15 2009 @@ -14,7 +14,7 @@ parent groupIdorg.apache.tapestry/groupId artifactIdtapestry-project/artifactId -version5.1.0.3/version +version5.1.0.4-SNAPSHOT/version /parent nameTapestry 5 Quickstart Archetype/name inceptionYear2007/inceptionYear Modified: tapestry/tapestry5/trunk/quickstart/src/main/resources/archetype-resources/pom.xml URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/quickstart/src/main/resources/archetype-resources/pom.xml?rev=763437r1=763436r2=763437view=diff == --- tapestry/tapestry5/trunk/quickstart/src/main/resources/archetype-resources/pom.xml (original) +++ tapestry/tapestry5/trunk/quickstart/src/main/resources/archetype-resources/pom.xml Wed Apr 8 22:40:15 2009 @@ -133,6 +133,6 @@ /pluginRepositories properties -tapestry-release-version5.1.0.3/tapestry-release-version +tapestry-release-version5.1.0.4-SNAPSHOT/tapestry-release-version /properties /project Modified: tapestry/tapestry5/trunk/tapestry-annotations/pom.xml URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-annotations/pom.xml?rev=763437r1=763436r2=763437view=diff == --- tapestry/tapestry5/trunk/tapestry-annotations/pom.xml (original) +++ tapestry/tapestry5/trunk/tapestry-annotations/pom.xml Wed Apr 8 22:40:15 2009 @@ -9,7 +9,7 @@ parent groupIdorg.apache.tapestry/groupId artifactIdtapestry-project/artifactId -version5.1.0.3/version +version5.1.0.4-SNAPSHOT/version /parent nameTapestry Annotations/name description Modified: tapestry/tapestry5/trunk/tapestry-component-report/pom.xml URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-component-report/pom.xml?rev=763437r1=763436r2=763437view=diff == --- tapestry/tapestry5/trunk/tapestry-component-report/pom.xml (original) +++ tapestry/tapestry5/trunk/tapestry-component-report/pom.xml Wed Apr 8 22:40:15 2009 @@ -12,7 +12,7 @@ parent groupIdorg.apache.tapestry/groupId artifactIdtapestry-project/artifactId -version5.1.0.3/version +version5.1.0.4-SNAPSHOT/version /parent inceptionYear2007/inceptionYear Modified: tapestry/tapestry5/trunk/tapestry-core/pom.xml URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/pom.xml?rev=763437r1=763436r2=763437view=diff == --- tapestry/tapestry5/trunk/tapestry-core/pom.xml (original) +++ tapestry/tapestry5/trunk/tapestry-core/pom.xml Wed Apr 8 22:40:15 2009 @@ -7,7 +7,7 @@ parent groupIdorg.apache.tapestry/groupId artifactIdtapestry-project/artifactId -version5.1.0.3/version +version5.1.0.4-SNAPSHOT/version /parent