Closed Bug 1191161 Opened 9 years ago Closed 9 years ago

Reorganize org.mozilla.gecko.mozglue.generatorannotations package

Categories

(Firefox for Android Graveyard :: General, defect)

All
Android
defect
Not set
normal

Tracking

(firefox42 affected)

RESOLVED FIXED
Tracking Status
firefox42 --- affected

People

(Reporter: jchen, Assigned: capella)

References

Details

Attachments

(4 files, 1 obsolete file)

org.mozilla.gecko.mozglue.generatorannotations package contains:

* OptionalGeneratedParameter, which no longer has any meaning so it should be removed.

* WrapElementForJNI, which is used, but the import name is too long to memorize, so it should probably move to another package like org.mozilla.gecko.jni.WrapForJNI, or org.mozilla.gecko.JNIMember.

* WrapEntireClassForJNI, which is similar to WrapElementForJNI and I think can be merged with WrapElementForJNI.
This seems to solve for the final issue: Merge WrapEntireClassForJNI into WrapElementForJNI
Attachment #8643893 - Flags: review?(nchen)
Resolves: Remove OptionalGeneratedParameter
Attachment #8643915 - Flags: review?(nchen)
Comment on attachment 8643893 [details] [diff] [review]
bug1191161_p1.diff

Review of attachment 8643893 [details] [diff] [review]:
-----------------------------------------------------------------

LGTM with a nit.

::: mobile/android/config/proguard/proguard.cfg
@@ +191,5 @@
>      @org.mozilla.gecko.mozglue.generatorannotations.WrapElementForJNI <fields>;
>  }
>  
> +# Keep all members of an annotated class.
> +-keepclassmembers @org.mozilla.gecko.mozglue.generatorannotations.WrapElementForJNI class * {

I think you still need this line,

> -keep @org.mozilla.gecko.mozglue.generatorannotations.WrapElementForJNI class *

i.e. "-keep" is different from "-keepclassmembers", which you've kept (heh).
Attachment #8643893 - Flags: review?(nchen) → review+
Attachment #8643915 - Flags: review?(nchen) → review+
re: I think you still need this line ...
-keep @org.mozilla.gecko.mozglue.generatorannotations.WrapElementForJNI class *

That previously exists in the config rules, up a few lines not shown in the diff here (let me know if I misunderstand ... proguard is a new area for me)

Also, I'll be updating that patch bug1191161_p1.diff due to new uses of |@WrapEntireClassForJNI| recently introduced here:
https://hg.mozilla.org/mozilla-central/rev/c5e9a116e559
Attached patch bug1191161_p3.diff (obsolete) — Splinter Review
Rename / Shorten WrapElementForJNI to WrapForJNI ... using same package |org.mozilla.gecko.mozglue| as RobocopTarget, WebRTCJNITarget, NativeZip, etc.
Assignee: nobody → markcapella
Status: NEW → ASSIGNED
Attachment #8643976 - Flags: review?(nchen)
(In reply to Mark Capella [:capella] from comment #4)
> re: I think you still need this line ...
> -keep @org.mozilla.gecko.mozglue.generatorannotations.WrapElementForJNI
> class *
> 
> That previously exists in the config rules, up a few lines not shown in the
> diff here (let me know if I misunderstand ... proguard is a new area for me)
> 
> Also, I'll be updating that patch bug1191161_p1.diff due to new uses of
> |@WrapEntireClassForJNI| recently introduced here:
> https://hg.mozilla.org/mozilla-central/rev/c5e9a116e559

Sorry, you're right!
Comment on attachment 8643976 [details] [diff] [review]
bug1191161_p3.diff

Review of attachment 8643976 [details] [diff] [review]:
-----------------------------------------------------------------

Any reason for org.mozilla.gecko.mozglue? I think I'd rather see it (and all the *Target annotations) be moved to a "org.mozilla.gecko.annotation" package. That is in line with java.annotation, android.annotation, etc.
My un-familiarity with the moz.build / packaging system a.t.m. ... hhhmmmmm ....
You can try moving the annotation java files under mobile/android/base/annoation, and then add them under "constants_jar.sources" in mobile/android/base/moz.build (and remove from mgjar.sources). That should keep the dependencies working.

I guess technically they should go inside annotation.jar or something, but since they are all self-contained classes without external dependencies, I think constants.jar is good enough.

Also, WrapForJNI should have CLASS as its RetentionPolicy like the others, because we don't use it reflectively.
hmmmm, my initial attempt was to create a new jar, so I tried your approach. Unfortunately they both lead to the same errors ... probably something simple but I haven't figured it out yet ... basically results in build-time error messages along the lines below...

Still poking at it ...

.bundled.proguard.deps
ProGuard, version 4.7

Reading input...
Reading program jar [/home/master/android-sdk-linux/extras/android/support/v4/android-support-v4.jar]
Reading program jar [/home/master/android-sdk-linux/extras/android/support/v7/recyclerview/libs/android-support-v7-recyclerview.jar]
Reading program jar [/home/master/android-sdk-linux/extras/google/google_play_services/libproject/google-play-services_lib/libs/google-play-services.jar]
Reading program jar [/home/master/android-sdk-linux/extras/android/support/v7/mediarouter/libs/android-support-v7-mediarouter.jar]
Reading program jar [/home/master/android-sdk-linux/extras/android/support/v7/appcompat/libs/android-support-v7-appcompat.jar]
Reading library jar [/home/master/android-sdk-linux/platforms/android-22/android.jar]
Reading library jar [/home/master/mozilla-central-droid/mobile/android/base/gecko-R.jar]

Initializing...
Note: com.google.android.gms.maps.internal.zzy: can't find dynamically referenced class com.google.android.gms.maps.internal.CreatorImplGmm6
Note: com.google.android.gms.maps.internal.zzy: can't find dynamically referenced class com.google.android.gms.maps.internal.CreatorImpl
Note: com.google.android.gms.ads.internal.purchase.zzb accesses a declared method 'asInterface(android.os.IBinder)' dynamically
Note: com.google.android.gms.common.internal.DowngradeableSafeParcel accesses a field 'NULL' dynamically
      Maybe this is program field 'com.google.android.gms.common.internal.safeparcel.SafeParcelable { 

java.lang.String NULL; }'
      Maybe this is library field 'android.util.JsonToken { android.util.JsonToken NULL; }'
      Maybe this is library field 'java.sql.Types { int NULL; }'
      Maybe this is library field 'org.json.JSONObject { java.lang.Object NULL; }'
Note: there were 2 unresolved dynamic references to classes or interfaces.
      You should check if you need to specify additional program jars.
Note: there were 2 accesses to class members by means of introspection.
      You should consider explicitly keeping the mentioned class members
      (using '-keep' or '-keepclassmembers').

Ignoring unused library classes...
  Original number of library classes: 3768
  Final number of library classes:    1198

Obfuscating...
Writing output...

Preparing output directory [/home/master/mozilla-central-droid/mobile/android/base/bundled-jars-nodebug]
  Copying resources from program jar [/home/master/android-sdk-linux/extras/android/support/v4/android-support-v4.jar]
  Copying resources from program jar [/home/master/android-sdk-linux/extras/android/support/v7/recyclerview/libs/android-support-v7-recyclerview.jar]
  Copying resources from program jar [/home/master/android-sdk-linux/extras/google/google_play_services/libproject/google-play-services_lib/libs/google-play-services.jar]
  Copying resources from program jar [/home/master/android-sdk-linux/extras/android/support/v7/mediarouter/libs/android-support-v7-mediarouter.jar]
  Copying resources from program jar [/home/master/android-sdk-linux/extras/android/support/v7/appcompat/libs/android-support-v7-appcompat.jar]

Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

webrtc.jar
search-activity.jar

gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'allowMultithread()' in type 'WrapForJNI': class file for org.mozilla.gecko.annotation.WrapForJNI not found

gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'noThrow()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'allowMultithread()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'allowMultithread()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'allowMultithread()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'allowMultithread()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'allowMultithread()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'stubName()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'allowMultithread()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'allowMultithread()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'narrowChars()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'allowMultithread()' in type 'WrapForJNI'
gecko-browser.jar(org/mozilla/gecko/GeckoAppShell.class): warning: Cannot find annotation method 'narrowChars()' in type 'WrapForJNI'

error: warnings found and -Werror specified

Cannot find annotation method 'allowMultithread()' in type 'org.mozilla.gecko.annotation.WrapForJNI': class file for org.mozilla.gecko.annotation.WrapForJNI not found

Cannot find annotation method 'noThrow()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
Cannot find annotation method 'allowMultithread()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
...
...
...
Ok, I found the issue for comment #10 above, but now have a new one re: NativeZip generating differently ... looking into that :-)

Also, patches P1 and p2 pushed to try and look good ... gonna move them ahead
https://treeherder.mozilla.org/#/jobs?repo=try&revision=d74d869228ba
Ok, this starts by renaming WrapElementForJNI to WrapForJNI, and moving it to annotations.

I wasn't able to use your suggestion from comment #9 |WrapForJNI should have CLASS as its RetentionPolicy| ... after doing that, during build, the AnnotationProcessor spits out completely empty files for: GeneratedJNINatives.h, GeneratedJNIWrappers.h, and GeneratedJNIWrappers.cpp.

Also, oddly, in this new version, during build, the AnnotationProcessor removes some glue from GeneratedJNIWrappers.h and GeneratedJNIWrappers.cpp regarding the NativeZip::CreateInputStream() method. I pulled my hair out for a while trying to figure out what I'd broke, but then took a hunch and just built this way, and \o/ ... the stupid thing works (?)

Finally, being curious, I tried swapping @WrapForJNI with @JNITarget there, and wound up with identical results... so... meh ??
Attachment #8643976 - Attachment is obsolete: true
Attachment #8643976 - Flags: review?(nchen)
Attachment #8644184 - Flags: review?(nchen)
Whiteboard: [leave open]
Comment on attachment 8644184 [details] [diff] [review]
bug1191161_p3.diff

Review of attachment 8644184 [details] [diff] [review]:
-----------------------------------------------------------------

LGTM! Asking :nalexander for stamp on moz.build/proguard.cfg changes.

(In reply to Mark Capella [:capella] from comment #13)
> Created attachment 8644184 [details] [diff] [review]
> bug1191161_p3.diff
> 
> Ok, this starts by renaming WrapElementForJNI to WrapForJNI, and moving it
> to annotations.
> 
> I wasn't able to use your suggestion from comment #9 |WrapForJNI should have
> CLASS as its RetentionPolicy| ... after doing that, during build, the
> AnnotationProcessor spits out completely empty files for:
> GeneratedJNINatives.h, GeneratedJNIWrappers.h, and GeneratedJNIWrappers.cpp.

Sorry, I forgot we do use this annotation reflectively during processing.

> Also, oddly, in this new version, during build, the AnnotationProcessor
> removes some glue from GeneratedJNIWrappers.h and GeneratedJNIWrappers.cpp
> regarding the NativeZip::CreateInputStream() method. I pulled my hair out
> for a while trying to figure out what I'd broke, but then took a hunch and
> just built this way, and \o/ ... the stupid thing works (?)
>
> Finally, being curious, I tried swapping @WrapForJNI with @JNITarget there,
> and wound up with identical results... so... meh ??

Cool. Not sure why it's not generating, but in any case, NativeZip::CreateInputStream should actually be using @JNITarget, and not @WrapForJNI.

@WrapForJNI creates wrappers in GeneratedJNIWrappers and @JNITarget doesn't; otherwise they're the same. In this case, mozglue has its own wrapper for NativeZip::CreateInputStream, so we don't actually need a generated wrapper.

::: mobile/android/base/mozglue/NativeZip.java
@@ +68,5 @@
>      private static native long getZipFromByteBuffer(ByteBuffer buffer);
>      private static native void _release(long obj);
>      private native InputStream _getInputStream(long obj, String path);
>  
> +    @WrapForJNI

Change to @JNITarget

::: mobile/android/base/util/NativeJSContainer.java
@@ +15,5 @@
>   * A container must only be used on the thread it is attached to. To use it on another
>   * thread, call {@link #clone()} to make a copy, and use the copy on the other thread.
>   * When a copy is first used, it becomes attached to the thread using it.
>   */
>  @JNITarget

You can remove @JNITarget here

::: mobile/android/base/util/NativeJSObject.java
@@ +14,5 @@
>  /**
>   * NativeJSObject is a wrapper around the SpiderMonkey JSAPI to make it possible to
>   * access Javascript objects in Java.
>   */
>  @JNITarget

You can remove @JNITarget here
Attachment #8644184 - Flags: review?(nchen)
Attachment #8644184 - Flags: review?(nalexander)
Attachment #8644184 - Flags: review+
Comment on attachment 8644184 [details] [diff] [review]
bug1191161_p3.diff

Review of attachment 8644184 [details] [diff] [review]:
-----------------------------------------------------------------

r+ for build/PG stuff.  I was hoping to prevent bleed into constants.jar over time, but whatever.
Attachment #8644184 - Flags: review?(nalexander) → review+
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Whiteboard: [leave open]
Hey folks, this was mentioned above (without resolution?) and looks really bad:

09:47:13     INFO -  /usr/bin/jar cMf webrtc.jar -C webrtc-classes .
09:47:13     INFO -  Cannot find annotation method 'allowMultithread()' in type 'org.mozilla.gecko.annotation.WrapForJNI': class file for org.mozilla.gecko.annotation.WrapForJNI not found
09:47:13     INFO -  Cannot find annotation method 'noThrow()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'allowMultithread()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'allowMultithread()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'allowMultithread()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'allowMultithread()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'allowMultithread()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'allowMultithread()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'allowMultithread()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'narrowChars()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'allowMultithread()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'narrowChars()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'allowMultithread()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'allowMultithread()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'allowMultithread()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'allowMultithread()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'allowMultithread()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'allowMultithread()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'allowMultithread()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'allowMultithread()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'allowMultithread()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'allowMultithread()' in type 'org.mozilla.gecko.annotation.WrapForJNI'
09:47:13     INFO -  Cannot find annotation method 'stubName()' in type 'org.mozilla.gecko.annotation.WrapForJNI'


Explain to me why this is happening and how we can silence this noise.
Flags: needinfo?(nchen)
Flags: needinfo?(markcapella)
Looks some classpaths needed updating. More specifically, the warnings were from the "javah" step during code autogeneration, so turns out it wasn't particularly serious.
Attachment #8645993 - Flags: review?(nalexander)
Flags: needinfo?(nchen)
Flags: needinfo?(markcapella)
Comment on attachment 8645993 [details] [diff] [review]
Followup to fix wrong annotation classpath (v1)

If it quiets the warnings, works for me.
Attachment #8645993 - Flags: review?(nalexander) → review+
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: