[jira] [Commented] (TAP5-2008) Serialized object data stored on the client should be HMAC signed and validated
[ https://issues.apache.org/jira/browse/TAP5-2008?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16710032#comment-16710032 ] Mahendran commented on TAP5-2008: - Yes you are right. We cannot directly plugin the code in 4.x. But the security issue fixed is required for Tapestry 4.0.2. Instead of upgrading to latest version will solve the problem, applying patch in legacy version required only minimal changes I hope. > Serialized object data stored on the client should be HMAC signed and > validated > --- > > Key: TAP5-2008 > URL: https://issues.apache.org/jira/browse/TAP5-2008 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-core >Affects Versions: 5.3.5, 5.4 >Reporter: Howard M. Lewis Ship >Assignee: Howard M. Lewis Ship >Priority: Major > Labels: fixed-in-5.4-js-rewrite, security > Fix For: 5.3.6, 5.4 > > > Tapestry encodes serialized objects into Base64 encoded strings that are > stored on the client; primarily, this is for form submissions, to encode the > set of operations needed to process the form when it is submitted. > However, Tapestry does not use any form of validation to ensure that the > encoded data has not been tampered with. It is relatively easy to create a > DOS attack by exploiting this. > Tapestry should use some form of HMAC (hash-based message authentication) to > ensure that the contents of such data are valid; the signing and validation > should occur after writing GZipped content, and before GZip decoding (it is > very easy to provide a small gzipped payload that expands to an enormous > size, for example; this is one form of DOS). -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (TAP5-2008) Serialized object data stored on the client should be HMAC signed and validated
[ https://issues.apache.org/jira/browse/TAP5-2008?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16709990#comment-16709990 ] Thiago H. de Paula Figueiredo commented on TAP5-2008: - Hello, [~tdsmahen...@gmail.com]! Tapestry 4 and Tapestry 5 have completely different codebases, so you cannot apply these changes to Tapestry 4.0.2. > Serialized object data stored on the client should be HMAC signed and > validated > --- > > Key: TAP5-2008 > URL: https://issues.apache.org/jira/browse/TAP5-2008 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-core >Affects Versions: 5.3.5, 5.4 >Reporter: Howard M. Lewis Ship >Assignee: Howard M. Lewis Ship >Priority: Major > Labels: fixed-in-5.4-js-rewrite, security > Fix For: 5.3.6, 5.4 > > > Tapestry encodes serialized objects into Base64 encoded strings that are > stored on the client; primarily, this is for form submissions, to encode the > set of operations needed to process the form when it is submitted. > However, Tapestry does not use any form of validation to ensure that the > encoded data has not been tampered with. It is relatively easy to create a > DOS attack by exploiting this. > Tapestry should use some form of HMAC (hash-based message authentication) to > ensure that the contents of such data are valid; the signing and validation > should occur after writing GZipped content, and before GZip decoding (it is > very easy to provide a small gzipped payload that expands to an enormous > size, for example; this is one form of DOS). -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (TAP5-2008) Serialized object data stored on the client should be HMAC signed and validated
[ https://issues.apache.org/jira/browse/TAP5-2008?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16710092#comment-16710092 ] Thiago H. de Paula Figueiredo commented on TAP5-2008: - A patch cannot be successfully applied to a different codebase than the one it was created. Also, as far as I remember, Tapestry 4 doesn't serialize objects and put them in forms, so the problem itself doesn't apply to Tapestry 4 either. > Serialized object data stored on the client should be HMAC signed and > validated > --- > > Key: TAP5-2008 > URL: https://issues.apache.org/jira/browse/TAP5-2008 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-core >Affects Versions: 5.3.5, 5.4 >Reporter: Howard M. Lewis Ship >Assignee: Howard M. Lewis Ship >Priority: Major > Labels: fixed-in-5.4-js-rewrite, security > Fix For: 5.3.6, 5.4 > > > Tapestry encodes serialized objects into Base64 encoded strings that are > stored on the client; primarily, this is for form submissions, to encode the > set of operations needed to process the form when it is submitted. > However, Tapestry does not use any form of validation to ensure that the > encoded data has not been tampered with. It is relatively easy to create a > DOS attack by exploiting this. > Tapestry should use some form of HMAC (hash-based message authentication) to > ensure that the contents of such data are valid; the signing and validation > should occur after writing GZipped content, and before GZip decoding (it is > very easy to provide a small gzipped payload that expands to an enormous > size, for example; this is one form of DOS). -- This message was sent by Atlassian JIRA (v7.6.3#76005)
tapestry-5 git commit: TAP5-2588: JPA patches provided by Dmitris Zenios
Repository: tapestry-5 Updated Branches: refs/heads/master 820d7d087 -> 3c28f94a4 TAP5-2588: JPA patches provided by Dmitris Zenios Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/3c28f94a Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/3c28f94a Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/3c28f94a Branch: refs/heads/master Commit: 3c28f94a4814f3294ff4e8179109c72ffa7f0722 Parents: 820d7d0 Author: Thiago H. de Paula Figueiredo Authored: Wed Dec 5 21:47:17 2018 -0200 Committer: Thiago H. de Paula Figueiredo Committed: Wed Dec 5 21:47:17 2018 -0200 -- .../ioc/internal/AnnotationAccessImpl.java | 27 ++- .../internal/services/AspectDecoratorImpl.java | 2 +- .../internal/jpa/CommitAfterWorker.java | 21 +-- .../jpa/EntityTransactionManagerImpl.java | 26 +-- .../internal/jpa/JpaAdvisorProvider.java| 9 + .../internal/jpa/JpaAdvisorProviderImpl.java| 20 +++ .../internal/jpa/JpaInternalUtils.java | 9 +- .../internal/jpa/JpaTransactionAdvisorImpl.java | 25 +-- ...ContextSpecificEntityTransactionManager.java | 14 +- .../apache/tapestry5/jpa/modules/JpaModule.java | 13 +- tapestry-jpa/src/test/conf/testng.xml | 70 .../jpa/JpaTransactionAdvisorImplTest.java | 163 +-- .../org/example/app5/services/AppModule.java| 1 + tapestry-runner/build.gradle| 1 + .../org/apache/tapestry5/test/TomcatRunner.java | 23 ++- 15 files changed, 244 insertions(+), 180 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/3c28f94a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AnnotationAccessImpl.java -- diff --git a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AnnotationAccessImpl.java b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AnnotationAccessImpl.java index b088cb9..f8c6155 100644 --- a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AnnotationAccessImpl.java +++ b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AnnotationAccessImpl.java @@ -14,34 +14,45 @@ package org.apache.tapestry5.ioc.internal; +import org.apache.tapestry5.func.F; +import org.apache.tapestry5.func.Flow; +import org.apache.tapestry5.func.Mapper; import org.apache.tapestry5.ioc.AnnotationAccess; import org.apache.tapestry5.ioc.AnnotationProvider; +import org.apache.tapestry5.ioc.internal.services.AnnotationProviderChain; import org.apache.tapestry5.ioc.internal.util.InternalUtils; +import java.lang.reflect.Method; + /** - * Standard AnnotationAccess for a specific type. + * Standard AnnotationAccess for an array of classes * * @since 5.3 */ public class AnnotationAccessImpl implements AnnotationAccess { -private final Class type; +private final Class[] classes; -public AnnotationAccessImpl(Class type) +public AnnotationAccessImpl(Class ...types) { -this.type = type; +this.classes = types; } @Override public AnnotationProvider getClassAnnotationProvider() { -return InternalUtils.toAnnotationProvider(type); +return AnnotationProviderChain.create(F.flow(classes).removeNulls().map(InternalUtils.CLASS_TO_AP_MAPPER).toList()); } @Override -public AnnotationProvider getMethodAnnotationProvider(String methodName, Class... parameterTypes) -{ -return InternalUtils.toAnnotationProvider(InternalUtils.findMethod(type, methodName, parameterTypes)); +public AnnotationProvider getMethodAnnotationProvider(String methodName, Class... parameterTypes) { +Flow searchClasses = F.flow(classes).removeNulls(); +return AnnotationProviderChain.create(searchClasses.map(new Mapper() { +@Override +public Method map(Class element) { +return InternalUtils.findMethod(element, methodName, parameterTypes); +} +}).map(InternalUtils.METHOD_TO_AP_MAPPER).toList()); } } http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/3c28f94a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/AspectDecoratorImpl.java -- diff --git a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/AspectDecoratorImpl.java b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/AspectDecoratorImpl.java index 18aa888..f37770e 100644 --- a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/AspectDecoratorImpl.java +++ b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/AspectDecoratorImpl.java @@ -39,7
[jira] [Commented] (TAP5-2588) Does not work with Java 9
[ https://issues.apache.org/jira/browse/TAP5-2588?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16710783#comment-16710783 ] Andrew Fowler commented on TAP5-2588: - Some good news: I was wrong that the "old Doclet API" has been removed. It's deprecated in JDK 9 and [marked for removal in JDK 11|https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8194651] but still present, so there's more time to migrate {{tapestry-javadoc}} to the new API after a Java 11 release. > Does not work with Java 9 > - > > Key: TAP5-2588 > URL: https://issues.apache.org/jira/browse/TAP5-2588 > Project: Tapestry 5 > Issue Type: Bug > Components: plastic >Affects Versions: 5.4.3 >Reporter: Jochen Kemnade >Assignee: Bob Harner >Priority: Critical > Attachments: > 0001-TAP5-2588-Upgrade-ASM-6.x-7.0.1-for-Java-11-support.patch > > > You cannot use Tapestry with Java 9 because of an outdated ASM version in > plastic (5.0.4). AFAICT, we'll need to upgrade to 6.0. My attempt do do so > results in a {{ClassCastException}} in > {{org.apache.tapestry5.plastic.ArrayAttributeAnnotations.explicit values for > array attributes}}. > {noformat} > java.lang.ClassCastException: [I cannot be cast to > java.base/[Ljava.lang.Object; > at > org.apache.tapestry5.internal.plastic.AbstractAnnotationBuilder$2.visitEnd(AbstractAnnotationBuilder.java:134) > at > org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:284) > at > org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:251) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool.createAnnotation(PlasticClassPool.java:307) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool$4.buildAnnotation(PlasticClassPool.java:286) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool$4.getAnnotation(PlasticClassPool.java:270) > at > org.apache.tapestry5.internal.plastic.DelegatingAnnotationAccess.getAnnotation(DelegatingAnnotationAccess.java:42) > at > org.apache.tapestry5.internal.plastic.PlasticClassImpl.getAnnotation(PlasticClassImpl.java:342) > at org.apache.tapestry5.plastic.ArrayAttributeAnnotations.explicit > values for array attributes(ArrayAttributeAnnotations.groovy:27) > {noformat} > The {{AbstractAnnotationBuilder}} subclass tries to cast an {{int[]}} to an > {{Object[]}}. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (TAP5-2588) Does not work with Java 9
[ https://issues.apache.org/jira/browse/TAP5-2588?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16710757#comment-16710757 ] ASF subversion and git services commented on TAP5-2588: --- Commit 820d7d087c8e8f975f17043c635eae7e246f0966 in tapestry-5's branch refs/heads/master from [~thiagohp] [ https://git-wip-us.apache.org/repos/asf?p=tapestry-5.git;h=820d7d0 ] TAP5-2588: applying more test patches by Dmitris Zenios > Does not work with Java 9 > - > > Key: TAP5-2588 > URL: https://issues.apache.org/jira/browse/TAP5-2588 > Project: Tapestry 5 > Issue Type: Bug > Components: plastic >Affects Versions: 5.4.3 >Reporter: Jochen Kemnade >Assignee: Bob Harner >Priority: Critical > Attachments: > 0001-TAP5-2588-Upgrade-ASM-6.x-7.0.1-for-Java-11-support.patch > > > You cannot use Tapestry with Java 9 because of an outdated ASM version in > plastic (5.0.4). AFAICT, we'll need to upgrade to 6.0. My attempt do do so > results in a {{ClassCastException}} in > {{org.apache.tapestry5.plastic.ArrayAttributeAnnotations.explicit values for > array attributes}}. > {noformat} > java.lang.ClassCastException: [I cannot be cast to > java.base/[Ljava.lang.Object; > at > org.apache.tapestry5.internal.plastic.AbstractAnnotationBuilder$2.visitEnd(AbstractAnnotationBuilder.java:134) > at > org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:284) > at > org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:251) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool.createAnnotation(PlasticClassPool.java:307) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool$4.buildAnnotation(PlasticClassPool.java:286) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool$4.getAnnotation(PlasticClassPool.java:270) > at > org.apache.tapestry5.internal.plastic.DelegatingAnnotationAccess.getAnnotation(DelegatingAnnotationAccess.java:42) > at > org.apache.tapestry5.internal.plastic.PlasticClassImpl.getAnnotation(PlasticClassImpl.java:342) > at org.apache.tapestry5.plastic.ArrayAttributeAnnotations.explicit > values for array attributes(ArrayAttributeAnnotations.groovy:27) > {noformat} > The {{AbstractAnnotationBuilder}} subclass tries to cast an {{int[]}} to an > {{Object[]}}. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (TAP5-2588) Does not work with Java 9
[ https://issues.apache.org/jira/browse/TAP5-2588?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16710770#comment-16710770 ] Hudson commented on TAP5-2588: -- FAILURE: Integrated in Jenkins build tapestry-trunk-freestyle #1715 (See [https://builds.apache.org/job/tapestry-trunk-freestyle/1715/]) TAP5-2588: not proxying interface static methods. Patch provided by (thiago: rev 46426d83edb8191e930f0f637d9e2a33859f42dd) * (add) plastic/src/test/java/testinterfaces/WithStatic.java * (edit) tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ModuleImpl.java * (edit) plastic/src/test/groovy/org/apache/tapestry5/plastic/MethodProxying.groovy * (edit) plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java > Does not work with Java 9 > - > > Key: TAP5-2588 > URL: https://issues.apache.org/jira/browse/TAP5-2588 > Project: Tapestry 5 > Issue Type: Bug > Components: plastic >Affects Versions: 5.4.3 >Reporter: Jochen Kemnade >Assignee: Bob Harner >Priority: Critical > Attachments: > 0001-TAP5-2588-Upgrade-ASM-6.x-7.0.1-for-Java-11-support.patch > > > You cannot use Tapestry with Java 9 because of an outdated ASM version in > plastic (5.0.4). AFAICT, we'll need to upgrade to 6.0. My attempt do do so > results in a {{ClassCastException}} in > {{org.apache.tapestry5.plastic.ArrayAttributeAnnotations.explicit values for > array attributes}}. > {noformat} > java.lang.ClassCastException: [I cannot be cast to > java.base/[Ljava.lang.Object; > at > org.apache.tapestry5.internal.plastic.AbstractAnnotationBuilder$2.visitEnd(AbstractAnnotationBuilder.java:134) > at > org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:284) > at > org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:251) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool.createAnnotation(PlasticClassPool.java:307) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool$4.buildAnnotation(PlasticClassPool.java:286) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool$4.getAnnotation(PlasticClassPool.java:270) > at > org.apache.tapestry5.internal.plastic.DelegatingAnnotationAccess.getAnnotation(DelegatingAnnotationAccess.java:42) > at > org.apache.tapestry5.internal.plastic.PlasticClassImpl.getAnnotation(PlasticClassImpl.java:342) > at org.apache.tapestry5.plastic.ArrayAttributeAnnotations.explicit > values for array attributes(ArrayAttributeAnnotations.groovy:27) > {noformat} > The {{AbstractAnnotationBuilder}} subclass tries to cast an {{int[]}} to an > {{Object[]}}. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (TAP5-2588) Does not work with Java 9
[ https://issues.apache.org/jira/browse/TAP5-2588?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16710801#comment-16710801 ] Hudson commented on TAP5-2588: -- FAILURE: Integrated in Jenkins build tapestry-trunk-freestyle #1716 (See [https://builds.apache.org/job/tapestry-trunk-freestyle/1716/]) TAP5-2588: applying more test patches by Dmitris Zenios (thiago: rev 820d7d087c8e8f975f17043c635eae7e246f0966) * (add) plastic/src/test/java/testinterfaces/samemethodinterface/ResultRunner.java * (add) plastic/src/test/java/testinterfaces/samemethodinterface/pkg2/Result.java * (delete) tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/Main.java * (add) plastic/src/test/java/testinterfaces/samemethodinterface/pkg1/Result.java * (edit) tapestry-ioc/src/test/groovy/ioc/specs/PropertyAccessImplSpec.groovy * (delete) tapestry-ioc/src/test/resources/hibernate.cfg.xml * (add) plastic/src/test/java/testinterfaces/samemethodinterface/SameMethodsInterface.java * (edit) tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/AdviceModule.java * (edit) tapestry-ioc/build.gradle * (edit) plastic/src/test/groovy/org/apache/tapestry5/plastic/MethodProxying.groovy TAP5-2588: JPA patches provided by Dmitris Zenios (thiago: rev 3c28f94a4814f3294ff4e8179109c72ffa7f0722) * (add) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/JpaAdvisorProviderImpl.java * (edit) tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/AspectDecoratorImpl.java * (edit) tapestry-jpa/src/test/java/org/example/app5/services/AppModule.java * (edit) tapestry-runner/build.gradle * (edit) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/JpaTransactionAdvisorImpl.java * (edit) tapestry-jpa/src/test/conf/testng.xml * (edit) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/EntityTransactionManagerImpl.java * (edit) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/CommitAfterWorker.java * (add) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/JpaAdvisorProvider.java * (edit) tapestry-jpa/src/test/java/org/apache/tapestry5/internal/jpa/JpaTransactionAdvisorImplTest.java * (edit) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/JpaInternalUtils.java * (edit) tapestry-jpa/src/main/java/org/apache/tapestry5/jpa/modules/JpaModule.java * (edit) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/PersistenceContextSpecificEntityTransactionManager.java * (edit) tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AnnotationAccessImpl.java * (edit) tapestry-runner/src/main/java/org/apache/tapestry5/test/TomcatRunner.java > Does not work with Java 9 > - > > Key: TAP5-2588 > URL: https://issues.apache.org/jira/browse/TAP5-2588 > Project: Tapestry 5 > Issue Type: Bug > Components: plastic >Affects Versions: 5.4.3 >Reporter: Jochen Kemnade >Assignee: Bob Harner >Priority: Critical > Attachments: > 0001-TAP5-2588-Upgrade-ASM-6.x-7.0.1-for-Java-11-support.patch > > > You cannot use Tapestry with Java 9 because of an outdated ASM version in > plastic (5.0.4). AFAICT, we'll need to upgrade to 6.0. My attempt do do so > results in a {{ClassCastException}} in > {{org.apache.tapestry5.plastic.ArrayAttributeAnnotations.explicit values for > array attributes}}. > {noformat} > java.lang.ClassCastException: [I cannot be cast to > java.base/[Ljava.lang.Object; > at > org.apache.tapestry5.internal.plastic.AbstractAnnotationBuilder$2.visitEnd(AbstractAnnotationBuilder.java:134) > at > org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:284) > at > org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:251) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool.createAnnotation(PlasticClassPool.java:307) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool$4.buildAnnotation(PlasticClassPool.java:286) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool$4.getAnnotation(PlasticClassPool.java:270) > at > org.apache.tapestry5.internal.plastic.DelegatingAnnotationAccess.getAnnotation(DelegatingAnnotationAccess.java:42) > at > org.apache.tapestry5.internal.plastic.PlasticClassImpl.getAnnotation(PlasticClassImpl.java:342) > at org.apache.tapestry5.plastic.ArrayAttributeAnnotations.explicit > values for array attributes(ArrayAttributeAnnotations.groovy:27) > {noformat} > The {{AbstractAnnotationBuilder}} subclass tries to cast an {{int[]}} to an > {{Object[]}}. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
tapestry-5 git commit: TAP5-2588: not proxying interface static methods. Patch provided by Dmitrios Zenios
Repository: tapestry-5 Updated Branches: refs/heads/master 4d75eace4 -> 46426d83e TAP5-2588: not proxying interface static methods. Patch provided by Dmitrios Zenios Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/46426d83 Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/46426d83 Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/46426d83 Branch: refs/heads/master Commit: 46426d83edb8191e930f0f637d9e2a33859f42dd Parents: 4d75eac Author: Thiago H. de Paula Figueiredo Authored: Wed Dec 5 21:26:05 2018 -0200 Committer: Thiago H. de Paula Figueiredo Committed: Wed Dec 5 21:26:05 2018 -0200 -- .../internal/plastic/PlasticClassImpl.java | 19 +- .../tapestry5/plastic/MethodProxying.groovy | 27 .../test/java/testinterfaces/WithStatic.java| 7 + .../tapestry5/ioc/internal/ModuleImpl.java | 4 --- 4 files changed, 46 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/46426d83/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java -- diff --git a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java index 223109a..b86b8d0 100644 --- a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java +++ b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java @@ -619,15 +619,15 @@ public class PlasticClassImpl extends Lockable implements PlasticClass, Internal introduceInterface(interfaceType); // TAP5-2582: avoiding adding/delegating the same method more than once -//for (Method m : interfaceType.getMethods()) -//{ -//introduceMethod(m).delegateTo(field); -//} - Map map = createMethodSignatureMap(interfaceType); for (MethodSignature methodSignature : map.keySet()) { -introduceMethod(map.get(methodSignature)).delegateTo(field); +final MethodDescription description = map.get(methodSignature); +if(Modifier.isStatic(description.modifiers)) +{ +continue; +} +introduceMethod(description).delegateTo(field); } return this; @@ -646,6 +646,11 @@ public class PlasticClassImpl extends Lockable implements PlasticClass, Internal Map map = createMethodSignatureMap(interfaceType); for (MethodSignature methodSignature : map.keySet()) { +final MethodDescription description = map.get(methodSignature); +if(Modifier.isStatic(description.modifiers)) +{ +continue; +} introduceMethod(map.get(methodSignature)).delegateTo(method); } @@ -1456,7 +1461,7 @@ public class PlasticClassImpl extends Lockable implements PlasticClass, Internal // MethodDescription description = new MethodDescription(m); final MethodDescription description = map.get(methodSignature); -if (!isMethodImplemented(description) && !isDefaultMethod(methodSignature.method)) +if (!isMethodImplemented(description) && !isDefaultMethod(methodSignature.method) && !Modifier.isStatic(description.modifiers)) { // introducedMethods.add(introduceMethod(m)); introducedMethods.add(introduceMethod(description)); http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/46426d83/plastic/src/test/groovy/org/apache/tapestry5/plastic/MethodProxying.groovy -- diff --git a/plastic/src/test/groovy/org/apache/tapestry5/plastic/MethodProxying.groovy b/plastic/src/test/groovy/org/apache/tapestry5/plastic/MethodProxying.groovy index 512508d..22e41b6 100644 --- a/plastic/src/test/groovy/org/apache/tapestry5/plastic/MethodProxying.groovy +++ b/plastic/src/test/groovy/org/apache/tapestry5/plastic/MethodProxying.groovy @@ -1,6 +1,7 @@ package org.apache.tapestry5.plastic import testsubjects.Memory +import testinterfaces.WithStatic class MethodProxying extends AbstractPlasticSpecification { @@ -29,6 +30,32 @@ class MethodProxying extends AbstractPlasticSpecification { 1 * mockRunnable.run() } +def "Proxying with static methods"() { +setup: + +def mockRunnable = Mock(Runnable.class) + +def o = mgr.createClass(Object, { PlasticClass pc -> + +def field = pc.introduceField(Runnable, "delegate").inject(mockRunnable) + +pc.proxyInterface(WithStatic, field) +}
[jira] [Commented] (TAP5-2588) Does not work with Java 9
[ https://issues.apache.org/jira/browse/TAP5-2588?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16710751#comment-16710751 ] ASF subversion and git services commented on TAP5-2588: --- Commit 46426d83edb8191e930f0f637d9e2a33859f42dd in tapestry-5's branch refs/heads/master from [~thiagohp] [ https://git-wip-us.apache.org/repos/asf?p=tapestry-5.git;h=46426d8 ] TAP5-2588: not proxying interface static methods. Patch provided by Dmitrios Zenios > Does not work with Java 9 > - > > Key: TAP5-2588 > URL: https://issues.apache.org/jira/browse/TAP5-2588 > Project: Tapestry 5 > Issue Type: Bug > Components: plastic >Affects Versions: 5.4.3 >Reporter: Jochen Kemnade >Assignee: Bob Harner >Priority: Critical > Attachments: > 0001-TAP5-2588-Upgrade-ASM-6.x-7.0.1-for-Java-11-support.patch > > > You cannot use Tapestry with Java 9 because of an outdated ASM version in > plastic (5.0.4). AFAICT, we'll need to upgrade to 6.0. My attempt do do so > results in a {{ClassCastException}} in > {{org.apache.tapestry5.plastic.ArrayAttributeAnnotations.explicit values for > array attributes}}. > {noformat} > java.lang.ClassCastException: [I cannot be cast to > java.base/[Ljava.lang.Object; > at > org.apache.tapestry5.internal.plastic.AbstractAnnotationBuilder$2.visitEnd(AbstractAnnotationBuilder.java:134) > at > org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:284) > at > org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:251) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool.createAnnotation(PlasticClassPool.java:307) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool$4.buildAnnotation(PlasticClassPool.java:286) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool$4.getAnnotation(PlasticClassPool.java:270) > at > org.apache.tapestry5.internal.plastic.DelegatingAnnotationAccess.getAnnotation(DelegatingAnnotationAccess.java:42) > at > org.apache.tapestry5.internal.plastic.PlasticClassImpl.getAnnotation(PlasticClassImpl.java:342) > at org.apache.tapestry5.plastic.ArrayAttributeAnnotations.explicit > values for array attributes(ArrayAttributeAnnotations.groovy:27) > {noformat} > The {{AbstractAnnotationBuilder}} subclass tries to cast an {{int[]}} to an > {{Object[]}}. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (TAP5-2588) Does not work with Java 9
[ https://issues.apache.org/jira/browse/TAP5-2588?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16710763#comment-16710763 ] ASF subversion and git services commented on TAP5-2588: --- Commit 3c28f94a4814f3294ff4e8179109c72ffa7f0722 in tapestry-5's branch refs/heads/master from [~thiagohp] [ https://git-wip-us.apache.org/repos/asf?p=tapestry-5.git;h=3c28f94 ] TAP5-2588: JPA patches provided by Dmitris Zenios > Does not work with Java 9 > - > > Key: TAP5-2588 > URL: https://issues.apache.org/jira/browse/TAP5-2588 > Project: Tapestry 5 > Issue Type: Bug > Components: plastic >Affects Versions: 5.4.3 >Reporter: Jochen Kemnade >Assignee: Bob Harner >Priority: Critical > Attachments: > 0001-TAP5-2588-Upgrade-ASM-6.x-7.0.1-for-Java-11-support.patch > > > You cannot use Tapestry with Java 9 because of an outdated ASM version in > plastic (5.0.4). AFAICT, we'll need to upgrade to 6.0. My attempt do do so > results in a {{ClassCastException}} in > {{org.apache.tapestry5.plastic.ArrayAttributeAnnotations.explicit values for > array attributes}}. > {noformat} > java.lang.ClassCastException: [I cannot be cast to > java.base/[Ljava.lang.Object; > at > org.apache.tapestry5.internal.plastic.AbstractAnnotationBuilder$2.visitEnd(AbstractAnnotationBuilder.java:134) > at > org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:284) > at > org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:251) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool.createAnnotation(PlasticClassPool.java:307) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool$4.buildAnnotation(PlasticClassPool.java:286) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool$4.getAnnotation(PlasticClassPool.java:270) > at > org.apache.tapestry5.internal.plastic.DelegatingAnnotationAccess.getAnnotation(DelegatingAnnotationAccess.java:42) > at > org.apache.tapestry5.internal.plastic.PlasticClassImpl.getAnnotation(PlasticClassImpl.java:342) > at org.apache.tapestry5.plastic.ArrayAttributeAnnotations.explicit > values for array attributes(ArrayAttributeAnnotations.groovy:27) > {noformat} > The {{AbstractAnnotationBuilder}} subclass tries to cast an {{int[]}} to an > {{Object[]}}. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
tapestry-5 git commit: TAP5-2588: applying more test patches by Dmitris Zenios
Repository: tapestry-5 Updated Branches: refs/heads/master 46426d83e -> 820d7d087 TAP5-2588: applying more test patches by Dmitris Zenios Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/820d7d08 Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/820d7d08 Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/820d7d08 Branch: refs/heads/master Commit: 820d7d087c8e8f975f17043c635eae7e246f0966 Parents: 46426d8 Author: Thiago H. de Paula Figueiredo Authored: Wed Dec 5 21:37:07 2018 -0200 Committer: Thiago H. de Paula Figueiredo Committed: Wed Dec 5 21:37:07 2018 -0200 -- .../tapestry5/plastic/MethodProxying.groovy | 29 ++ .../samemethodinterface/ResultRunner.java | 5 +++ .../SameMethodsInterface.java | 6 +++ .../samemethodinterface/pkg1/Result.java| 4 ++ .../samemethodinterface/pkg2/Result.java| 4 ++ tapestry-ioc/build.gradle | 2 - .../ioc/specs/PropertyAccessImplSpec.groovy | 1 - .../tapestry5/ioc/internal/AdviceModule.java| 20 -- .../org/apache/tapestry5/ioc/internal/Main.java | 38 -- .../src/test/resources/hibernate.cfg.xml| 42 10 files changed, 48 insertions(+), 103 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/820d7d08/plastic/src/test/groovy/org/apache/tapestry5/plastic/MethodProxying.groovy -- diff --git a/plastic/src/test/groovy/org/apache/tapestry5/plastic/MethodProxying.groovy b/plastic/src/test/groovy/org/apache/tapestry5/plastic/MethodProxying.groovy index 22e41b6..18856c6 100644 --- a/plastic/src/test/groovy/org/apache/tapestry5/plastic/MethodProxying.groovy +++ b/plastic/src/test/groovy/org/apache/tapestry5/plastic/MethodProxying.groovy @@ -1,5 +1,8 @@ package org.apache.tapestry5.plastic +import spock.lang.Issue +import testinterfaces.samemethodinterface.ResultRunner +import testinterfaces.samemethodinterface.SameMethodsInterface import testsubjects.Memory import testinterfaces.WithStatic @@ -56,6 +59,32 @@ class MethodProxying extends AbstractPlasticSpecification { 1 * mockRunnable.run() } +@Issue("TAP5-2582") +def "Proxying with multiple methods of the same signature"() { +setup: + +def mockRunner = Mock(SameMethodsInterface.class) { +run() >> new testinterfaces.samemethodinterface.pkg2.Result(); +} + +def o = mgr.createClass(Object, { PlasticClass pc -> + +def field = pc.introduceField(SameMethodsInterface, "delegate").inject(mockRunner) + +pc.proxyInterface(ResultRunner, field) +} as PlasticClassTransformer).newInstance() + +when: + +def result = o.run(); + +then: + +result instanceof testinterfaces.samemethodinterface.pkg1.Result; + +result instanceof testinterfaces.samemethodinterface.pkg2.Result; +} + def "proxy method with arguments and return value"() { setup: http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/820d7d08/plastic/src/test/java/testinterfaces/samemethodinterface/ResultRunner.java -- diff --git a/plastic/src/test/java/testinterfaces/samemethodinterface/ResultRunner.java b/plastic/src/test/java/testinterfaces/samemethodinterface/ResultRunner.java new file mode 100644 index 000..e1048da --- /dev/null +++ b/plastic/src/test/java/testinterfaces/samemethodinterface/ResultRunner.java @@ -0,0 +1,5 @@ +package testinterfaces.samemethodinterface; + +public interface ResultRunner { +testinterfaces.samemethodinterface.pkg1.Result run(); +} http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/820d7d08/plastic/src/test/java/testinterfaces/samemethodinterface/SameMethodsInterface.java -- diff --git a/plastic/src/test/java/testinterfaces/samemethodinterface/SameMethodsInterface.java b/plastic/src/test/java/testinterfaces/samemethodinterface/SameMethodsInterface.java new file mode 100644 index 000..c696bd6 --- /dev/null +++ b/plastic/src/test/java/testinterfaces/samemethodinterface/SameMethodsInterface.java @@ -0,0 +1,6 @@ +package testinterfaces.samemethodinterface; + +public interface SameMethodsInterface extends ResultRunner { +@Override +testinterfaces.samemethodinterface.pkg2.Result run(); +} http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/820d7d08/plastic/src/test/java/testinterfaces/samemethodinterface/pkg1/Result.java -- diff --git
[jira] [Commented] (TAP5-2588) Does not work with Java 9
[ https://issues.apache.org/jira/browse/TAP5-2588?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16710922#comment-16710922 ] Hudson commented on TAP5-2588: -- FAILURE: Integrated in Jenkins build tapestry-trunk-freestyle-java-9 #9 (See [https://builds.apache.org/job/tapestry-trunk-freestyle-java-9/9/]) TAP5-2588: not proxying interface static methods. Patch provided by (thiago: rev 46426d83edb8191e930f0f637d9e2a33859f42dd) * (add) plastic/src/test/java/testinterfaces/WithStatic.java * (edit) plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java * (edit) tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ModuleImpl.java * (edit) plastic/src/test/groovy/org/apache/tapestry5/plastic/MethodProxying.groovy TAP5-2588: applying more test patches by Dmitris Zenios (thiago: rev 820d7d087c8e8f975f17043c635eae7e246f0966) * (add) plastic/src/test/java/testinterfaces/samemethodinterface/pkg1/Result.java * (edit) tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/AdviceModule.java * (delete) tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/Main.java * (edit) plastic/src/test/groovy/org/apache/tapestry5/plastic/MethodProxying.groovy * (delete) tapestry-ioc/src/test/resources/hibernate.cfg.xml * (add) plastic/src/test/java/testinterfaces/samemethodinterface/pkg2/Result.java * (add) plastic/src/test/java/testinterfaces/samemethodinterface/ResultRunner.java * (add) plastic/src/test/java/testinterfaces/samemethodinterface/SameMethodsInterface.java * (edit) tapestry-ioc/src/test/groovy/ioc/specs/PropertyAccessImplSpec.groovy * (edit) tapestry-ioc/build.gradle TAP5-2588: JPA patches provided by Dmitris Zenios (thiago: rev 3c28f94a4814f3294ff4e8179109c72ffa7f0722) * (edit) tapestry-jpa/src/test/java/org/apache/tapestry5/internal/jpa/JpaTransactionAdvisorImplTest.java * (edit) tapestry-runner/build.gradle * (edit) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/CommitAfterWorker.java * (edit) tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AnnotationAccessImpl.java * (edit) tapestry-jpa/src/test/java/org/example/app5/services/AppModule.java * (edit) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/JpaInternalUtils.java * (edit) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/PersistenceContextSpecificEntityTransactionManager.java * (edit) tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/AspectDecoratorImpl.java * (add) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/JpaAdvisorProviderImpl.java * (edit) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/JpaTransactionAdvisorImpl.java * (edit) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/EntityTransactionManagerImpl.java * (add) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/JpaAdvisorProvider.java * (edit) tapestry-runner/src/main/java/org/apache/tapestry5/test/TomcatRunner.java * (edit) tapestry-jpa/src/main/java/org/apache/tapestry5/jpa/modules/JpaModule.java * (edit) tapestry-jpa/src/test/conf/testng.xml Revert "TAP5-2588: JPA patches provided by Dmitris Zenios" (thiago: rev 246e677097f249ad2352ddc595ef43cc257f8e27) * (edit) tapestry-jpa/src/test/conf/testng.xml * (edit) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/JpaInternalUtils.java * (edit) tapestry-jpa/src/test/java/org/apache/tapestry5/internal/jpa/JpaTransactionAdvisorImplTest.java * (edit) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/PersistenceContextSpecificEntityTransactionManager.java * (edit) tapestry-jpa/src/test/java/org/example/app5/services/AppModule.java * (edit) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/EntityTransactionManagerImpl.java * (edit) tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AnnotationAccessImpl.java * (edit) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/JpaTransactionAdvisorImpl.java * (edit) tapestry-jpa/src/main/java/org/apache/tapestry5/jpa/modules/JpaModule.java * (edit) tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/AspectDecoratorImpl.java * (edit) tapestry-runner/src/main/java/org/apache/tapestry5/test/TomcatRunner.java * (delete) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/JpaAdvisorProvider.java * (delete) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/JpaAdvisorProviderImpl.java * (edit) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/CommitAfterWorker.java * (edit) tapestry-runner/build.gradle > Does not work with Java 9 > - > > Key: TAP5-2588 > URL: https://issues.apache.org/jira/browse/TAP5-2588 > Project: Tapestry 5 > Issue Type: Bug > Components: plastic >Affects Versions: 5.4.3 >Reporter: Jochen Kemnade >Assignee: Bob Harner >
[jira] [Commented] (TAP5-2588) Does not work with Java 9
[ https://issues.apache.org/jira/browse/TAP5-2588?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16710919#comment-16710919 ] Hudson commented on TAP5-2588: -- SUCCESS: Integrated in Jenkins build tapestry-trunk-freestyle #1717 (See [https://builds.apache.org/job/tapestry-trunk-freestyle/1717/]) Revert "TAP5-2588: JPA patches provided by Dmitris Zenios" (thiago: rev 246e677097f249ad2352ddc595ef43cc257f8e27) * (delete) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/JpaAdvisorProviderImpl.java * (edit) tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/AspectDecoratorImpl.java * (edit) tapestry-jpa/src/test/java/org/apache/tapestry5/internal/jpa/JpaTransactionAdvisorImplTest.java * (edit) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/CommitAfterWorker.java * (edit) tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AnnotationAccessImpl.java * (edit) tapestry-jpa/src/test/conf/testng.xml * (edit) tapestry-runner/build.gradle * (edit) tapestry-runner/src/main/java/org/apache/tapestry5/test/TomcatRunner.java * (edit) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/JpaInternalUtils.java * (edit) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/PersistenceContextSpecificEntityTransactionManager.java * (edit) tapestry-jpa/src/test/java/org/example/app5/services/AppModule.java * (delete) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/JpaAdvisorProvider.java * (edit) tapestry-jpa/src/main/java/org/apache/tapestry5/jpa/modules/JpaModule.java * (edit) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/EntityTransactionManagerImpl.java * (edit) tapestry-jpa/src/main/java/org/apache/tapestry5/internal/jpa/JpaTransactionAdvisorImpl.java > Does not work with Java 9 > - > > Key: TAP5-2588 > URL: https://issues.apache.org/jira/browse/TAP5-2588 > Project: Tapestry 5 > Issue Type: Bug > Components: plastic >Affects Versions: 5.4.3 >Reporter: Jochen Kemnade >Assignee: Bob Harner >Priority: Critical > Attachments: > 0001-TAP5-2588-Upgrade-ASM-6.x-7.0.1-for-Java-11-support.patch > > > You cannot use Tapestry with Java 9 because of an outdated ASM version in > plastic (5.0.4). AFAICT, we'll need to upgrade to 6.0. My attempt do do so > results in a {{ClassCastException}} in > {{org.apache.tapestry5.plastic.ArrayAttributeAnnotations.explicit values for > array attributes}}. > {noformat} > java.lang.ClassCastException: [I cannot be cast to > java.base/[Ljava.lang.Object; > at > org.apache.tapestry5.internal.plastic.AbstractAnnotationBuilder$2.visitEnd(AbstractAnnotationBuilder.java:134) > at > org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:284) > at > org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:251) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool.createAnnotation(PlasticClassPool.java:307) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool$4.buildAnnotation(PlasticClassPool.java:286) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool$4.getAnnotation(PlasticClassPool.java:270) > at > org.apache.tapestry5.internal.plastic.DelegatingAnnotationAccess.getAnnotation(DelegatingAnnotationAccess.java:42) > at > org.apache.tapestry5.internal.plastic.PlasticClassImpl.getAnnotation(PlasticClassImpl.java:342) > at org.apache.tapestry5.plastic.ArrayAttributeAnnotations.explicit > values for array attributes(ArrayAttributeAnnotations.groovy:27) > {noformat} > The {{AbstractAnnotationBuilder}} subclass tries to cast an {{int[]}} to an > {{Object[]}}. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
tapestry-5 git commit: Revert "TAP5-2588: JPA patches provided by Dmitris Zenios"
Repository: tapestry-5 Updated Branches: refs/heads/master 3c28f94a4 -> 246e67709 Revert "TAP5-2588: JPA patches provided by Dmitris Zenios" It caused test failures, so reverting these changes for now. This reverts commit 3c28f94a4814f3294ff4e8179109c72ffa7f0722. Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/246e6770 Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/246e6770 Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/246e6770 Branch: refs/heads/master Commit: 246e677097f249ad2352ddc595ef43cc257f8e27 Parents: 3c28f94 Author: Thiago H. de Paula Figueiredo Authored: Wed Dec 5 23:43:22 2018 -0200 Committer: Thiago H. de Paula Figueiredo Committed: Wed Dec 5 23:43:22 2018 -0200 -- .../ioc/internal/AnnotationAccessImpl.java | 27 +-- .../internal/services/AspectDecoratorImpl.java | 2 +- .../internal/jpa/CommitAfterWorker.java | 21 ++- .../jpa/EntityTransactionManagerImpl.java | 26 ++- .../internal/jpa/JpaAdvisorProvider.java| 9 - .../internal/jpa/JpaAdvisorProviderImpl.java| 20 --- .../internal/jpa/JpaInternalUtils.java | 9 +- .../internal/jpa/JpaTransactionAdvisorImpl.java | 25 ++- ...ContextSpecificEntityTransactionManager.java | 14 +- .../apache/tapestry5/jpa/modules/JpaModule.java | 13 +- tapestry-jpa/src/test/conf/testng.xml | 70 .../jpa/JpaTransactionAdvisorImplTest.java | 163 ++- .../org/example/app5/services/AppModule.java| 1 - tapestry-runner/build.gradle| 1 - .../org/apache/tapestry5/test/TomcatRunner.java | 23 +-- 15 files changed, 180 insertions(+), 244 deletions(-) -- http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/246e6770/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AnnotationAccessImpl.java -- diff --git a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AnnotationAccessImpl.java b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AnnotationAccessImpl.java index f8c6155..b088cb9 100644 --- a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AnnotationAccessImpl.java +++ b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AnnotationAccessImpl.java @@ -14,45 +14,34 @@ package org.apache.tapestry5.ioc.internal; -import org.apache.tapestry5.func.F; -import org.apache.tapestry5.func.Flow; -import org.apache.tapestry5.func.Mapper; import org.apache.tapestry5.ioc.AnnotationAccess; import org.apache.tapestry5.ioc.AnnotationProvider; -import org.apache.tapestry5.ioc.internal.services.AnnotationProviderChain; import org.apache.tapestry5.ioc.internal.util.InternalUtils; -import java.lang.reflect.Method; - /** - * Standard AnnotationAccess for an array of classes + * Standard AnnotationAccess for a specific type. * * @since 5.3 */ public class AnnotationAccessImpl implements AnnotationAccess { -private final Class[] classes; +private final Class type; -public AnnotationAccessImpl(Class ...types) +public AnnotationAccessImpl(Class type) { -this.classes = types; +this.type = type; } @Override public AnnotationProvider getClassAnnotationProvider() { -return AnnotationProviderChain.create(F.flow(classes).removeNulls().map(InternalUtils.CLASS_TO_AP_MAPPER).toList()); +return InternalUtils.toAnnotationProvider(type); } @Override -public AnnotationProvider getMethodAnnotationProvider(String methodName, Class... parameterTypes) { -Flow searchClasses = F.flow(classes).removeNulls(); -return AnnotationProviderChain.create(searchClasses.map(new Mapper() { -@Override -public Method map(Class element) { -return InternalUtils.findMethod(element, methodName, parameterTypes); -} -}).map(InternalUtils.METHOD_TO_AP_MAPPER).toList()); +public AnnotationProvider getMethodAnnotationProvider(String methodName, Class... parameterTypes) +{ +return InternalUtils.toAnnotationProvider(InternalUtils.findMethod(type, methodName, parameterTypes)); } } http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/246e6770/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/AspectDecoratorImpl.java -- diff --git a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/AspectDecoratorImpl.java b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/AspectDecoratorImpl.java index f37770e..18aa888 100644 ---
[jira] [Commented] (TAP5-2588) Does not work with Java 9
[ https://issues.apache.org/jira/browse/TAP5-2588?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16710876#comment-16710876 ] ASF subversion and git services commented on TAP5-2588: --- Commit 246e677097f249ad2352ddc595ef43cc257f8e27 in tapestry-5's branch refs/heads/master from [~thiagohp] [ https://git-wip-us.apache.org/repos/asf?p=tapestry-5.git;h=246e677 ] Revert "TAP5-2588: JPA patches provided by Dmitris Zenios" It caused test failures, so reverting these changes for now. This reverts commit 3c28f94a4814f3294ff4e8179109c72ffa7f0722. > Does not work with Java 9 > - > > Key: TAP5-2588 > URL: https://issues.apache.org/jira/browse/TAP5-2588 > Project: Tapestry 5 > Issue Type: Bug > Components: plastic >Affects Versions: 5.4.3 >Reporter: Jochen Kemnade >Assignee: Bob Harner >Priority: Critical > Attachments: > 0001-TAP5-2588-Upgrade-ASM-6.x-7.0.1-for-Java-11-support.patch > > > You cannot use Tapestry with Java 9 because of an outdated ASM version in > plastic (5.0.4). AFAICT, we'll need to upgrade to 6.0. My attempt do do so > results in a {{ClassCastException}} in > {{org.apache.tapestry5.plastic.ArrayAttributeAnnotations.explicit values for > array attributes}}. > {noformat} > java.lang.ClassCastException: [I cannot be cast to > java.base/[Ljava.lang.Object; > at > org.apache.tapestry5.internal.plastic.AbstractAnnotationBuilder$2.visitEnd(AbstractAnnotationBuilder.java:134) > at > org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:284) > at > org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode.accept(AnnotationNode.java:251) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool.createAnnotation(PlasticClassPool.java:307) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool$4.buildAnnotation(PlasticClassPool.java:286) > at > org.apache.tapestry5.internal.plastic.PlasticClassPool$4.getAnnotation(PlasticClassPool.java:270) > at > org.apache.tapestry5.internal.plastic.DelegatingAnnotationAccess.getAnnotation(DelegatingAnnotationAccess.java:42) > at > org.apache.tapestry5.internal.plastic.PlasticClassImpl.getAnnotation(PlasticClassImpl.java:342) > at org.apache.tapestry5.plastic.ArrayAttributeAnnotations.explicit > values for array attributes(ArrayAttributeAnnotations.groovy:27) > {noformat} > The {{AbstractAnnotationBuilder}} subclass tries to cast an {{int[]}} to an > {{Object[]}}. -- This message was sent by Atlassian JIRA (v7.6.3#76005)