[jira] [Commented] (TAP5-2008) Serialized object data stored on the client should be HMAC signed and validated

2018-12-05 Thread Mahendran (JIRA)


[ 
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

2018-12-05 Thread Thiago H. de Paula Figueiredo (JIRA)


[ 
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

2018-12-05 Thread Thiago H. de Paula Figueiredo (JIRA)


[ 
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

2018-12-05 Thread thiagohp
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

2018-12-05 Thread Andrew Fowler (JIRA)


[ 
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

2018-12-05 Thread ASF subversion and git services (JIRA)


[ 
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

2018-12-05 Thread Hudson (JIRA)


[ 
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

2018-12-05 Thread Hudson (JIRA)


[ 
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

2018-12-05 Thread thiagohp
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

2018-12-05 Thread ASF subversion and git services (JIRA)


[ 
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

2018-12-05 Thread ASF subversion and git services (JIRA)


[ 
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

2018-12-05 Thread thiagohp
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

2018-12-05 Thread Hudson (JIRA)


[ 
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

2018-12-05 Thread Hudson (JIRA)


[ 
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"

2018-12-05 Thread thiagohp
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

2018-12-05 Thread ASF subversion and git services (JIRA)


[ 
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)