Bug 66113

Summary: cant resolve this type for Object[]?!
Product: [Tools] AspectJ Reporter: attila lendvai <101>
Component: CompilerAssignee: Andrew Clement <aclement>
Status: VERIFIED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: aclement
Version: 1.2   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
the file in question none

Description attila lendvai CLA 2004-06-08 09:33:05 EDT
[iajc] D:
\work\granite\workspace\web-framework\src\java\com\netvisor\web_framework\compon
ents\ComponentMixin.java:118 warning can not resolve this member: java.lang.
Object [Ljava.lang.Object;.clone() [Xlint:unresolvableMember]
     [iajc]
     [iajc] D:
\work\granite\workspace\web-framework\src\java\com\netvisor\web_framework\compon
ents\ComponentMixin.java:118 warning can not resolve this member: java.lang.
Object [Ljava.lang.Object;.clone() [Xlint:unresolvableMember]
     [iajc]
     [iajc] D:
\work\granite\workspace\web-framework\src\java\com\netvisor\web_framework\compon
ents\ComponentMixin.java:118 warning can not resolve this member: java.lang.
Object [Ljava.lang.Object;.clone() [Xlint:unresolvableMember]
     [iajc]
     [iajc] D:
\work\granite\workspace\web-framework\src\java\com\netvisor\web_framework\compon
ents\MutableContentMixin.java:34 warning can not resolve this member: java.lang.
Object [Ljava.lang.Object;.clone() [Xlint:unresolvableMember]
     [iajc]
     [iajc] D:
\work\granite\workspace\web-framework\src\java\com\netvisor\web_framework\compon
ents\ComponentMixin.java:57 warning can not resolve this member: java.lang.
Object [Ljava.lang.Object;.clone() [Xlint:unresolvableMember]
     [iajc]
     [iajc] D:
\work\granite\workspace\web-framework\src\java\com\netvisor\web_framework\compon
ents\ScreenTitleMixin.java:65 warning can not resolve this member: java.lang.
Object [Ljava.lang.Object;.clone() [Xlint:unresolvableMember]
     [iajc]
     [iajc] D:
\work\granite\workspace\web-framework\src\java\com\netvisor\web_framework\compon
ents\ScreenTitleMixin.java:65 warning can not resolve this member: java.lang.
Object [Ljava.lang.Object;.clone() [Xlint:unresolvableMember]
     [iajc]
     [iajc] D:
\work\granite\workspace\web-framework\src\java\com\netvisor\web_framework\compon
ents\ComponentMixin.java:79 warning can not resolve this member: java.lang.
Object [Ljava.lang.Object;.clone() [Xlint:unresolvableMember]
     [iajc]
     [iajc] D:
\work\granite\workspace\web-framework\src\java\com\netvisor\web_framework\compon
ents\ComponentMixin.java:80 warning can not resolve this member: java.lang.
Object [Ljava.lang.Object;.clone() [Xlint:unresolvableMember]
     [iajc]
     [iajc] D:
\work\granite\workspace\web-framework\src\java\com\netvisor\web_framework\compon
ents\ComponentMixin.java:118 warning can not resolve this member: java.lang.
Object [Ljava.lang.Object;.clone() [Xlint:unresolvableMember]
     [iajc]
     [iajc] D:
\work\granite\workspace\web-framework\src\java\com\netvisor\web_framework\compon
ents\ComponentMixin.java:121 warning can not resolve this member: java.lang.
Object [Ljava.lang.Object;.clone() [Xlint:unresolvableMember]
     [iajc]
     [iajc] D:
\work\granite\workspace\web-framework\src\java\com\netvisor\web_framework\compon
ents\ComponentMixin.java:124 warning can not resolve this member: java.lang.
Object [Ljava.lang.Object;.clone() [Xlint:unresolvableMember]
     [iajc]
     [iajc] D:
\work\granite\workspace\web-framework\src\java\com\netvisor\web_framework\compon
ents\MutableContentMixin.java:19 warning can not resolve this member: java.lang.
Object [Ljava.lang.Object;.clone() [Xlint:unresolvableMember]
     [iajc]
     [iajc] D:
\work\granite\workspace\web-framework\src\java\com\netvisor\web_framework\pageab
letable\AbstractPageableTableModel.java:208 warning can not resolve this member: 
java.lang.Object [Ljava.lang.Object;.clone() [Xlint:unresolvableMember]
     [iajc]
     [iajc] D:
\work\granite\workspace\web-framework\src\java\com\netvisor\web_framework\compon
ents\ComponentMixin.java:121 warning can not resolve this member: java.lang.
Object [Ljava.lang.Object;.clone() [Xlint:unresolvableMember]
     [iajc]
     [iajc] D:
\work\granite\workspace\web-framework\src\java\com\netvisor\web_framework\compon
ents\ComponentMixin.java:121 warning can not resolve this member: java.lang.
Object [Ljava.lang.Object;.clone() [Xlint:unresolvableMember]
     [iajc]
     [iajc] D:
\work\granite\workspace\web-framework\src\java\com\netvisor\web_framework\compon
ents\ComponentMixin.java:121 warning can not resolve this member: java.lang.
Object [Ljava.lang.Object;.clone() [Xlint:unresolvableMember]
     [iajc]
     [iajc] D:
\work\granite\workspace\web-framework\src\java\com\netvisor\web_framework\compon
ents\MutableContentMixin.java:46 warning can not resolve this member: java.lang.
Object [Ljava.lang.Object;.clone() [Xlint:unresolvableMember]
     [iajc]
     [iajc] D:
\work\granite\workspace\web-framework\src\java\com\netvisor\web_framework\compon
ents\Grid.java:143 warning can not resolve this member: java.lang.Object [Ljava.
lang.Object;.clone() [Xlint:unresolvableMember]
     [iajc]
     [iajc] D:
\work\granite\workspace\web-framework\src\java\com\netvisor\web_framework\compon
ents\ScreenWithButtons.java:227 warning can not resolve this member: java.lang.
Object [Ljava.lang.Object;.clone() [Xlint:unresolvableMember]
     [iajc]
     [iajc] D:
\work\granite\workspace\web-framework\src\java\com\netvisor\web_framework\compon
ents\Grid.java:148 warning can not resolve this member: java.lang.Object [Ljava.
lang.Object;.clone() [Xlint:unresolvableMember]
     [iajc]
     [iajc] D:
\work\granite\workspace\web-framework\src\java\com\netvisor\web_framework\compon
ents\HidingMessagesMixin.java error can't find type [Ljava.lang.Object;
     [iajc] (no source information available)
     [iajc]
     [iajc] D:
\work\granite\workspace\web-framework\src\java\com\netvisor\web_framework\compon
ents\HidingMessagesMixin.java:163 warning can not resolve this member: java.
lang.Object [Ljava.lang.Object;.clone() [Xlint:unresolvableMember]
     [iajc] (componentInit() || call(void Component.removeAll(..)))
     [iajc]                          ^^^^^^^^^^^^^^^^^^^^^^^^^
     [iajc]
     [iajc] D:
\work\granite\workspace\web-framework\src\java\com\netvisor\web_framework\compon
ents\HidingMessagesMixin.java:163 warning can not resolve this member: java.
lang.Object [Ljava.lang.Object;.clone() [Xlint:unresolvableMember]
     [iajc] (componentInit() || call(void Component.removeAll(..)))
     [iajc]                          ^^^^^^^^^^^^^^^^^^^^^^^^^
     [iajc]
     [iajc] D:
\work\granite\workspace\web-framework\src\java\com\netvisor\web_framework\compon
ents\HidingMessagesMixin.java:163 warning can not resolve this member: java.
lang.Object [Ljava.lang.Object;.clone() [Xlint:unresolvableMember]
     [iajc] (componentInit() || call(void Component.removeAll(..)))
     [iajc]                          ^^^^^^^^^^^^^^^^^^^^^^^^^
     [iajc]
Comment 1 attila lendvai CLA 2004-06-08 09:35:24 EDT
Created attachment 11709 [details]
the file in question

i've tried to reproduce this with no luck. seems to be connected to the actual
setup of aspects inheriting, etc.

the line in question is: params = (Object[])params.clone()
Comment 2 Adrian Colyer CLA 2004-08-27 10:21:07 EDT
Through working on a couple of other bugs, I think we've finally come to understand what you are 
seeing here. Calling clone() on an array type is treated very specially by the JVM, and was not handled 
correctly in our type resolution.  I suspect the fix for bug 72150 also fixed this problem. I'll leave Andy 
to verify that...
Comment 3 Andrew Clement CLA 2004-09-01 05:27:06 EDT
As Adrian says - I believe this is fixed.  Here is an example program that can
recreate it.

Compile this:

public class A {

  public void A() {
    Object[] x = new String[2];
    Object[] p = (Object[])x.clone();
  }
}
   
Using something like the 1.5 java compiler (which puts the clone() calls against
the correct type 'Object[]' in the bytecode rather than against the superclass
'Object').  (I can imagine other compiler variants also do this)

"javac -d bin A.java"

Now, create this aspect:

aspect Asp  {
  before(): call(* *(..)) {
  }
}


And compile against the binary for A.class:

ajc -inpath bin Asp.java

And you will get:

C:\ajbugs\66113\Asp.java:2 warning can not resolve this member: java.lang.Object
[Ljava.lang.Object;.clone() [Xlint:unresolvableMember]

C:\ajbugs\66113\bin\A.class error can't find type [Ljava.lang.Object;
(no source information available)

1 error, 1 warning

With the latest development version of AspectJ (available from the website),
this compiles OK and you get no errors.
Comment 4 attila lendvai CLA 2004-09-02 09:23:57 EDT
positive, bug fixed, thanks! :)