Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 1.8.1
-
Fix Version/s: 1.8.2, 1.9-beta-3, 1.7.11
-
Component/s: Compiler
-
Labels:None
-
Environment:Hidesargis@sargis:~> uname -a
Linux sargis.webbfontaine.fr 2.6.37.6-0.5-desktop #1 SMP PREEMPT 2011-04-25 21:48:33 +0200 x86_64 x86_64 x86_64 GNU/Linux
sargis@sargis:~> java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)
sargis@sargis:~> groovy -version
Groovy Version: 1.8.1 JVM: 1.6.0_26
sargis@sargis:~>
Showsargis@sargis :~> uname -a Linux sargis.webbfontaine.fr 2.6.37.6-0.5-desktop #1 SMP PREEMPT 2011-04-25 21:48:33 +0200 x86_64 x86_64 x86_64 GNU/Linux sargis@sargis :~> java -version java version "1.6.0_26" Java(TM) SE Runtime Environment (build 1.6.0_26-b03) Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode) sargis@sargis :~> groovy -version Groovy Version: 1.8.1 JVM: 1.6.0_26 sargis@sargis :~>
-
Number of attachments :
Description
Hi I have following code which was ok for groovy 1.8.0 but after updating to groovy 1.8.1 I have failed compilation
MessagingTask.groovy
class MessagingTask<T extends Serializable> { private static final long serialVersionUID = -5533069690405593263L; Long id String messageId String inDestination String outDestination MessagingTaskType messageType T messagePayload public String toString() { return "Task{" + "id=" + id + ", messageId='" + messageId + '\'' + ", inDestination='" + inDestination + '\'' + ", outDestination='" + outDestination + '\'' + ", messageType='" + messageType + '\'' + ", messagePayload=" + messagePayload + '}'; } }
MessagingTaskDatabase.groovy
class MessagingTaskDatabase {
public List<MessagingTask<OutMessage>> loadOutMessage() {
return new ArrayList<MessagingTask<OutMessage>>();
}
}
SomeClient.java
List<MessagingTask<OutMessage>> messagingTasks = taskDatabase.loadOutMessage();
And the compile log:
[mkdir] Created dir: /home/sargis/projects/twm_v3/trunk/twm_v3/accounting/Server/classes [groovyc] Compiling 185 source files to /home/sargis/projects/twm_v3/trunk/twm_v3/accounting/Server/classes [groovyc] org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: [groovyc] Compile error during compilation with javac. [groovyc] /home/sargis/projects/twm_v3/trunk/twm_v3/accounting/Server/src/com/webbfontaine/twm/accounting/epaylog/scheduler/SendingScheduler.java:46: incompatible types [groovyc] found : java.util.List<com.webbfontaine.twm.accounting.epaylog.emess.task.MessagingTask> [groovyc] required: java.util.List<com.webbfontaine.twm.accounting.epaylog.emess.task.MessagingTask<com.webbfontaine.twm.accounting.epaylog.emess.core.OutMessage>> [groovyc] List<MessagingTask<OutMessage>> messagingTasks = taskDatabase.loadOutMessage(); [groovyc] ^ [groovyc] Note: Some input files use unchecked or unsafe operations. [groovyc] Note: Recompile with -Xlint:unchecked for details. [groovyc] 1 error [groovyc] [groovyc] [groovyc] 1 error
But if I remove generic type parameters from return and compilation is ok
public List loadOutMessage() { return new ArrayList<MessagingTask<OutMessage>>(); }
Activity
Sargis Harutyunyan
made changes -
| Field | Original Value | New Value |
|---|---|---|
| Attachment | groovyc-test.tar.gz [ 56090 ] |
Paul King
made changes -
| Description |
Hi I have following code which was ok for groovy 1.8.0 but after updating to groovy 1.8.1 I have failed compilation
MessagingTask.groovy: class MessagingTask<T extends Serializable> { private static final long serialVersionUID = -5533069690405593263L; Long id String messageId String inDestination String outDestination MessagingTaskType messageType T messagePayload public String toString() { return "Task{" + "id=" + id + ", messageId='" + messageId + '\'' + ", inDestination='" + inDestination + '\'' + ", outDestination='" + outDestination + '\'' + ", messageType='" + messageType + '\'' + ", messagePayload=" + messagePayload + '}'; } } MessagingTaskDatabase.groovy: class MessagingTaskDatabase { public List<MessagingTask<OutMessage>> loadOutMessage() { return new ArrayList<MessagingTask<OutMessage>>(); } } SomeClient.java: List<MessagingTask<OutMessage>> messagingTasks = taskDatabase.loadOutMessage(); And I have: groovy.compile: [mkdir] Created dir: /home/sargis/projects/twm_v3/trunk/twm_v3/accounting/Server/classes [groovyc] Compiling 185 source files to /home/sargis/projects/twm_v3/trunk/twm_v3/accounting/Server/classes [groovyc] org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: [groovyc] Compile error during compilation with javac. [groovyc] /home/sargis/projects/twm_v3/trunk/twm_v3/accounting/Server/src/com/webbfontaine/twm/accounting/epaylog/scheduler/SendingScheduler.java:46: incompatible types [groovyc] found : java.util.List<com.webbfontaine.twm.accounting.epaylog.emess.task.MessagingTask> [groovyc] required: java.util.List<com.webbfontaine.twm.accounting.epaylog.emess.task.MessagingTask<com.webbfontaine.twm.accounting.epaylog.emess.core.OutMessage>> [groovyc] List<MessagingTask<OutMessage>> messagingTasks = taskDatabase.loadOutMessage(); [groovyc] ^ [groovyc] Note: Some input files use unchecked or unsafe operations. [groovyc] Note: Recompile with -Xlint:unchecked for details. [groovyc] 1 error [groovyc] [groovyc] [groovyc] 1 error But if I remove generic type parameters from return and compilation is ok public List loadOutMessage() { return new ArrayList<MessagingTask<OutMessage>>(); } |
Hi I have following code which was ok for groovy 1.8.0 but after updating to groovy 1.8.1 I have failed compilation
{code:title=MessagingTask.groovy} class MessagingTask<T extends Serializable> { private static final long serialVersionUID = -5533069690405593263L; Long id String messageId String inDestination String outDestination MessagingTaskType messageType T messagePayload public String toString() { return "Task{" + "id=" + id + ", messageId='" + messageId + '\'' + ", inDestination='" + inDestination + '\'' + ", outDestination='" + outDestination + '\'' + ", messageType='" + messageType + '\'' + ", messagePayload=" + messagePayload + '}'; } } {code} {code:title=MessagingTaskDatabase.groovy} class MessagingTaskDatabase { public List<MessagingTask<OutMessage>> loadOutMessage() { return new ArrayList<MessagingTask<OutMessage>>(); } } {code} {code:title=SomeClient.java} List<MessagingTask<OutMessage>> messagingTasks = taskDatabase.loadOutMessage(); {code} And the compile log: {noformat} [mkdir] Created dir: /home/sargis/projects/twm_v3/trunk/twm_v3/accounting/Server/classes [groovyc] Compiling 185 source files to /home/sargis/projects/twm_v3/trunk/twm_v3/accounting/Server/classes [groovyc] org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: [groovyc] Compile error during compilation with javac. [groovyc] /home/sargis/projects/twm_v3/trunk/twm_v3/accounting/Server/src/com/webbfontaine/twm/accounting/epaylog/scheduler/SendingScheduler.java:46: incompatible types [groovyc] found : java.util.List<com.webbfontaine.twm.accounting.epaylog.emess.task.MessagingTask> [groovyc] required: java.util.List<com.webbfontaine.twm.accounting.epaylog.emess.task.MessagingTask<com.webbfontaine.twm.accounting.epaylog.emess.core.OutMessage>> [groovyc] List<MessagingTask<OutMessage>> messagingTasks = taskDatabase.loadOutMessage(); [groovyc] ^ [groovyc] Note: Some input files use unchecked or unsafe operations. [groovyc] Note: Recompile with -Xlint:unchecked for details. [groovyc] 1 error [groovyc] [groovyc] [groovyc] 1 error {noformat} But if I remove generic type parameters from return and compilation is ok {code} public List loadOutMessage() { return new ArrayList<MessagingTask<OutMessage>>(); } {code} |
Paul King
made changes -
| Status | Open [ 1 ] | Resolved [ 5 ] |
| Assignee | Paul King [ paulk ] | |
| Fix Version/s | 1.7.11 [ 17244 ] | |
| Fix Version/s | 1.8.2 [ 17495 ] | |
| Fix Version/s | 1.9-beta-2 [ 17494 ] | |
| Resolution | Fixed [ 1 ] |
Paul King
made changes -
| Status | Resolved [ 5 ] | Closed [ 6 ] |
I created some simple project with gradle to help you to reproduce compilation error