[ 
https://issues.apache.org/jira/browse/GROOVY-9556?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17108922#comment-17108922
 ] 

Daniel Sun commented on GROOVY-9556:
------------------------------------

As Java stubs are generated at the CONVERSION phase, if groovy source code uses 
AST tranformation which will change the AST at the phases after CONVERSION, 
e.g. {{@InheritConstructors}}, the generated Java stubs will not include the 
changes specified in the AST tranformation.

If the changes is relied by the Java compilation, e.g. super class has its own 
constructors, its sub class should have some of the relevant constructors, 
otherwise the Java compilation will fail.

> Stub generated without the effect of AST transformation makes joint 
> compilation fail
> ------------------------------------------------------------------------------------
>
>                 Key: GROOVY-9556
>                 URL: https://issues.apache.org/jira/browse/GROOVY-9556
>             Project: Groovy
>          Issue Type: Bug
>            Reporter: Daniel Sun
>            Priority: Major
>
> http://groovy.329449.n5.nabble.com/More-Groovy-3-woes-td5768022.html
> {code:java}
> ===
> 194 ocs /tmp> <CreateSignatureBase.java
> /*
>  * Copyright 2015 The Apache Software Foundation.
>  * OC: removed almost all code, leaving just what's needed to crash
>  */
> package org.apache.pdfbox.examples.signature;
> import java.io.IOException;
> import java.io.InputStream;
> import java.security.KeyStore;
> import java.security.KeyStoreException;
> import java.security.NoSuchAlgorithmException;
> import java.security.UnrecoverableKeyException;
> import java.security.cert.CertificateException;
> import 
> org.apache.pdfbox.pdmodel.interactive.digitalsignature.SignatureInterface;
> public abstract class CreateSignatureBase implements SignatureInterface
> {
>     public CreateSignatureBase(KeyStore keystore, char[] pin)
>             throws KeyStoreException, UnrecoverableKeyException, 
> NoSuchAlgorithmException, IOException, CertificateException
>     { }
>     @Override
>     public byte[] sign(InputStream content) throws IOException
>     {
>         return null;
>     }
> }
> 195 ocs /tmp> <myclass.groovy
> package cz.ocs.utilities
> import groovy.transform.*
> import org.apache.pdfbox.pdmodel.*
> import org.apache.pdfbox.examples.signature.CreateSignatureBase
> @InheritConstructors class CreateSignature extends CreateSignatureBase {
>     void signPDF(PDDocument pdd, OutputStream out) {
>     }
> }
> 196 ocs /tmp> /usr/local/groovy-2.4.17/bin/groovyc -cp 
> /Extensions/pdfbox-2.0.17.jar -j myclass.groovy CreateSignatureBase.java
> 197 ocs /tmp> /usr/local/groovy-3.0.3/bin/groovyc -cp 
> /Extensions/pdfbox-2.0.17.jar -j myclass.groovy CreateSignatureBase.java
> org.codehaus.groovy.control.MultipleCompilationErrorsException: startup 
> failed:
> Compile error during compilation with javac.
> /var/folders/zh/h4cv6xjx033frtt9y72ch8980000gp/T/groovy-generated-8946934250394256568-java-source/cz/ocs/utilities/CreateSignature.java:12:
>  error: constructor CreateSignatureBase in class CreateSignatureBase cannot 
> be applied to given types;
> @groovy.transform.InheritConstructors() public class CreateSignature
>                                                ^
>   required: KeyStore,char[]
>   found: no arguments
>   reason: actual and formal argument lists differ in length
> 1 error
> 1 error
> 198 ocs /tmp>
> ===
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to