airport-utils: airport-config does not run with Java 6.

Bug #127707 reported by Andreas John on 2007-07-23
46
This bug affects 8 people
Affects Status Importance Assigned to Milestone
airport-utils (Debian)
New
Unknown
airport-utils (Ubuntu)
Undecided
Unassigned
Nominated for Lucid by Matthew Sprague

Bug Description

Binary package hint: airport-utils

"airport-config" dies silently. My Java alternative points to the Sun Java 6 JVM. Running AirportBaseStationConfig.jar manually with Java 5 is a workaround. I bet it's an upstream bug, but please fix the wrapper script with "blacklisting" Java 6 VM. (check with java -version or such)

Workaround for lurkers:
/usr/lib/jvm/java-1.5.0-sun/bin/java -jar /usr/share/java/airport-utils/AirportBaseStationConfig.jar

Rgds,
derjohn

DWHagar (david-hagar) wrote :

I can confirm this, it exists in airport-utils v1-6, Ubuntu Hardy Heron. Even Java 5 runs with significant access violations even when run as sudo.

Changed in airport-utils:
status: New → Confirmed
Tremaine Lea (tremaine) wrote :

Doesn't run in Intrepid Ibex beta either right now.

Error:

@quad:~$ airport2-config
18-Oct-2008 6:10:07 AM com.sun.corba.se.impl.ior.IORImpl getProfile
WARNING: "IOP00511201: (INV_OBJREF) IOR must have at least one IIOP profile"
org.omg.CORBA.INV_OBJREF: vmcid: SUN minor code: 1201 completed: No
 at com.sun.corba.se.impl.logging.IORSystemException.iorMustHaveIiopProfile(IORSystemException.java:473)
 at com.sun.corba.se.impl.logging.IORSystemException.iorMustHaveIiopProfile(IORSystemException.java:495)
 at com.sun.corba.se.impl.ior.IORImpl.getProfile(IORImpl.java:334)
 at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_Object(CDRInputStream_1_0.java:787)
 at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_Object(CDRInputStream_1_0.java:761)
 at com.sun.corba.se.impl.encoding.CDRInputStream.read_Object(CDRInputStream.java:231)
 at com.sun.corba.se.impl.resolver.INSURLOperationImpl.getIORFromString(INSURLOperationImpl.java:120)
 at com.sun.corba.se.impl.resolver.INSURLOperationImpl.operate(INSURLOperationImpl.java:130)
 at com.sun.corba.se.impl.orb.ORBImpl.string_to_object(ORBImpl.java:836)
 at org.GNOME.Accessibility.AccessUtil.getRegistryObject(AccessUtil.java:143)
 at org.GNOME.Accessibility.JavaBridge.registerApplication(JavaBridge.java:1099)
 at org.GNOME.Accessibility.JavaBridge.<init>(JavaBridge.java:364)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
 at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
 at java.lang.Class.newInstance0(Class.java:372)
 at java.lang.Class.newInstance(Class.java:325)
 at java.awt.Toolkit.loadAssistiveTechnologies(Toolkit.java:786)
 at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:874)
 at java.awt.Window.getToolkit(Window.java:1170)
 at java.awt.Window.init(Window.java:400)
 at java.awt.Window.<init>(Window.java:438)
 at java.awt.Frame.<init>(Frame.java:419)
 at java.awt.Frame.<init>(Frame.java:384)
 at javax.swing.JFrame.<init>(JFrame.java:180)
 at airport2config.AirportBaseStationConfigurator.<init>(Unknown Source)
 at airport2config.AirportBaseStationConfigurator.main(Unknown Source)

Damon Taibi (damontaibi) wrote :

I had the same problem running airport2-config under Hardy. In order to use the workaround posted by derjohn, you will first need to install the Java 5 jre:

sudo apt-get install sun-java5-jre

Then you can run the configurator manually, as he posted:

/usr/lib/jvm/java-1.5.0-sun/bin/java -jar /usr/share/java/airport-utils/AirportBaseStationConfig.jar

This worked for me.

sun-java5-jre not installable using apt-get on 9.10
This tool is completely dead right now.

tags: added: apple
tags: added: airport

Fresh install of Ubuntu 9.10, with airport-config and openjdk6. Running airport2-config under strace gives the output in the attached "strace_airport-config" file.

Note that it's not even possible to install the version of the sun-java-5 packages from Jaunty's multiverse repositories and get the airport-config program to work; that produces a "Bad version number in .class" file, which I'm pretty sure means that the airport-config utility was compiled against Java 6, and Java 5 can't read it.

Peter Rhone (prhone-gmail) wrote :

I'm trying to setup an Apple Time Capsule, and couldn't get it to work with either java-6-sun or java-6-openjdk (Ubuntu 10.04). It runs, however, if you temporarily switch to java-gcj with:

sudo update-java-alternatives --set java-gcj

... and after the setup switch back to sun (or whatever you were using) with:

sudo update-java-alternatives --set java-6-sun

Peter Rhone (prhone-gmail) wrote :

To comment #6: the dialog runs, but "Discover Devices" fails, so the workaround isn't much of one. So far, the only viable alternative seems to be the use of a mac or windows computer to set these devices up.

Peter Rhone (prhone-gmail) wrote :

Final comment: it does work after all. After a hard factor reset, enter the IP address 10.0.0.1 and password "public", then you can retrieve the settings and set the device up. Simply ignore the "Discover Devices" button, which doesn't work.

Éric Piel (pieleric) wrote :

In 11.10, it also works with gcj:
sudo apt-get install gcj-4.4-jre
/usr/lib/jvm/java-gcj-4.4/bin/java -jar /usr/share/java/airport-utils/Airport2BaseStationConfig.jar

The launcher script should really be updated.

You can find out the IP of your airport extreme by using avahi-discover, and looking at the "address" field in the Airport Extreme device.

Ivan Zakharyaschev (imz) wrote :
Download full text (95.2 KiB)

The same in Ubuntu 12.04 on Toshiba AC100 (ARM) -- it silently does nothing with java-6-openjdk (installed by default to satisfy its dependency):

$ (set -x; . /usr/bin/airport2-config )
+ . /usr/bin/airport2-config
++ airportjar=Airport2BaseStationConfig.jar
++ DEB_JAR_PATH=/usr/share/java
++ _debug 'AirPort utility parameters are '\'''\''.'
++ '[' -n '' ']'
++ findjava
++ '[' -n '' ']'
++ '[' -n '' ']'
++ '[' -n '' ']'
+++ which java
++ JAVACMD=/usr/bin/java
++ '[' -n /usr/bin/java ']'
++ '[' -x /usr/bin/java ']'
++ _debug 'Using $PATH to find java virtual machine.'
++ '[' -n '' ']'
++ '[' -n /usr/bin/java ']'
++ '[' -x /usr/bin/java ']'
++ _debug 'Using '\''/usr/bin/java'\'' as java virtual machine...'
++ '[' -n '' ']'
++ return 0
++ '[' 0 -ne 0 ']'
++ JARS=
++ AP_CLASSPATH=
++ _debug 'Used classpath is '\'''\'''
++ '[' -n '' ']'
++ '[' -z '' ']'
++ JAVA_ARGS=
++ exec /usr/bin/java -jar /usr/share/java/airport-utils/Airport2BaseStationConfig.jar
$ readlink -f /usr/bin/java
/usr/lib/jvm/java-6-openjdk-armhf/jre/bin/java
$ /usr/bin/java -verbose -jar /usr/share/java/airport-utils/Airport2BaseStationConfig.jar
[Opened /usr/lib/jvm/java-6-openjdk-armhf/jre/lib/rt.jar]
[Loaded java.lang.Object from /usr/lib/jvm/java-6-openjdk-armhf/jre/lib/rt.jar]
[Loaded java.io.Serializable from /usr/lib/jvm/java-6-openjdk-armhf/jre/lib/rt.jar]
[Loaded java.lang.Comparable from /usr/lib/jvm/java-6-openjdk-armhf/jre/lib/rt.jar]
[Loaded java.lang.CharSequence from /usr/lib/jvm/java-6-openjdk-armhf/jre/lib/rt.jar]
[Loaded java.lang.String from /usr/lib/jvm/java-6-openjdk-armhf/jre/lib/rt.jar]
[Loaded java.lang.reflect.GenericDeclaration from /usr/lib/jvm/java-6-openjdk-armhf/jre/lib/rt.jar]
[Loaded java.lang.reflect.Type from /usr/lib/jvm/java-6-openjdk-armhf/jre/lib/rt.jar]
[Loaded java.lang.reflect.AnnotatedElement from /usr/lib/jvm/java-6-openjdk-armhf/jre/lib/rt.jar]
[Loaded java.lang.Class from /usr/lib/jvm/java-6-openjdk-armhf/jre/lib/rt.jar]
[Loaded java.lang.Cloneable from /usr/lib/jvm/java-6-openjdk-armhf/jre/lib/rt.jar]
[Loaded java.lang.ClassLoader from /usr/lib/jvm/java-6-openjdk-armhf/jre/lib/rt.jar]
[Loaded java.lang.System from /usr/lib/jvm/java-6-openjdk-armhf/jre/lib/rt.jar]
[Loaded java.lang.Throwable from /usr/lib/jvm/java-6-openjdk-armhf/jre/lib/rt.jar]
[Loaded java.lang.Error from /usr/lib/jvm/java-6-openjdk-armhf/jre/lib/rt.jar]
[Loaded java.lang.ThreadDeath from /usr/lib/jvm/java-6-openjdk-armhf/jre/lib/rt.jar]
[Loaded java.lang.Exception from /usr/lib/jvm/java-6-openjdk-armhf/jre/lib/rt.jar]
[Loaded java.lang.RuntimeException from /usr/lib/jvm/java-6-openjdk-armhf/jre/lib/rt.jar]
[Loaded java.security.ProtectionDomain from /usr/lib/jvm/java-6-openjdk-armhf/jre/lib/rt.jar]
[Loaded java.security.AccessControlContext from /usr/lib/jvm/java-6-openjdk-armhf/jre/lib/rt.jar]
[Loaded java.lang.ClassNotFoundException from /usr/lib/jvm/java-6-openjdk-armhf/jre/lib/rt.jar]
[Loaded java.lang.LinkageError from /usr/lib/jvm/java-6-openjdk-armhf/jre/lib/rt.jar]
[Loaded java.lang.NoClassDefFoundError from /usr/lib/jvm/java-6-openjdk-armhf/jre/lib/rt.jar]
[Loaded java.lang.ClassCastException from /usr/lib/jvm/java-6-openjdk-armhf/jre/lib/rt.jar]
[Loaded j...

tags: added: 12.04 java java-6 openjdk precise
Ivan Zakharyaschev (imz) wrote :

Otherwise, my Java (openjdk-6) in Ubuntu 12.04 on Toshibas AC100 (ARM) works -- I've checked this by running jftp.

Ivan Zakharyaschev (imz) wrote :
Download full text (96.2 KiB)

But it does start with gcj-4.6-jre in Ubuntu 12.04 on Toshiba AC100 (ARM).

Thanks a lot for the idea of this solution to previous commenters! (Éric Piel, thanks!)

$ readlink -f /usr/bin/java
/usr/bin/gij-4.6

$ /usr/bin/java -verbose -jar /usr/share/java/airport-utils/Airport2BaseStationConfig.jar
[Loaded (pre-compiled) java.lang.ClassLoader from <no code source>]
[Loaded (pre-compiled) java.lang.Object from <no code source>]
[Loaded (pre-compiled) java.lang.Class from <no code source>]
[Loaded (pre-compiled) java.lang.reflect.Type from <no code source>]
[Loaded (pre-compiled) java.lang.reflect.AnnotatedElement from <no code source>]
[Loaded (pre-compiled) java.lang.reflect.GenericDeclaration from <no code source>]
[Loaded (pre-compiled) java.io.Serializable from <no code source>]
[Loaded (pre-compiled) java.lang.Cloneable from <no code source>]
[Loaded (pre-compiled) java.lang.VMClassLoader from <no code source>]
[Loaded (pre-compiled) java.lang.RuntimePermission from <no code source>]
[Loaded (pre-compiled) java.security.BasicPermission from <no code source>]
[Loaded (pre-compiled) java.security.Permission from <no code source>]
[Loaded (pre-compiled) java.security.Guard from <no code source>]
[Loaded (pre-compiled) java.security.Permissions from <no code source>]
[Loaded (pre-compiled) java.security.PermissionCollection from <no code source>]
[Loaded (pre-compiled) java.util.Hashtable from <no code source>]
[Loaded (pre-compiled) java.util.Dictionary from <no code source>]
[Loaded (pre-compiled) java.util.Map from <no code source>]
[Loaded (pre-compiled) java.security.AllPermission from <no code source>]
[Loaded (pre-compiled) java.security.AllPermission$AllPermissionCollection from <no code source>]
[Loaded (pre-compiled) java.util.Hashtable$HashEntry from <no code source>]
[Loaded (pre-compiled) java.util.AbstractMap$SimpleEntry from <no code source>]
[Loaded (pre-compiled) java.util.Map$Entry from <no code source>]
[Loaded (pre-compiled) java.security.ProtectionDomain from <no code source>]
[Loaded (pre-compiled) java.util.HashMap from <no code source>]
[Loaded (pre-compiled) java.util.AbstractMap from <no code source>]
[Loaded (pre-compiled) java.lang.System from <no code source>]
[Loaded (pre-compiled) java.io.BufferedInputStream from <no code source>]
[Loaded (pre-compiled) java.io.FilterInputStream from <no code source>]
[Loaded (pre-compiled) java.io.InputStream from <no code source>]
[Loaded (pre-compiled) java.io.Closeable from <no code source>]
[Loaded (pre-compiled) java.io.FileInputStream from <no code source>]
[Loaded (pre-compiled) java.io.FileDescriptor from <no code source>]
[Loaded (pre-compiled) gnu.java.nio.channels.FileChannelImpl from <no code source>]
[Loaded (pre-compiled) java.nio.channels.FileChannel from <no code source>]
[Loaded (pre-compiled) java.nio.channels.spi.AbstractInterruptibleChannel from <no code source>]
[Loaded (pre-compiled) java.nio.channels.Channel from <no code source>]
[Loaded (pre-compiled) java.nio.channels.InterruptibleChannel from <no code source>]
[Loaded (pre-compiled) java.nio.channels.ByteChannel from <no code source>]
[Loaded (pre-compiled) java.nio.channels.ReadableByteChannel from...

Ivan Zakharyaschev (imz) wrote :

So why not (as a workaround) harcode the usage of GCJ for airport-utils?

Ivan Zakharyaschev (imz) wrote :

But, as per https://bugs.launchpad.net/ubuntu/+source/airport-utils/+bug/706623 , I was able to retrieve settings with airport2-config, but wasn't able to upload the new settings.

This is contrary to comment #8: Peter Rhome seems to have been able to update the settings as well, but now, I fail to.

Changed in airport-utils (Debian):
status: Unknown → New

This package is totally broken in 15.10 and should be removed from the distribution (or fixed)!

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.