OpenJDK-7 update gives errors in Eclipse-4.2 preferences
Peter Ansell
ansell.peter at gmail.com
Thu Sep 13 00:02:09 UTC 2012
There was also another error at the top of the log which may be closer
to the root cause:
The following may have set off the chain, as it causes a class
initialiser to fail:
Caused by: java.lang.NullPointerException
at sun.util.calendar.ZoneInfoFile.getZoneIDs(ZoneInfoFile.java:790)
at sun.util.calendar.ZoneInfo.getAvailableIDs(ZoneInfo.java:576)
at java.util.TimeZone.getAvailableIDs(TimeZone.java:588)
at com.ibm.icu.impl.JavaTimeZone.<clinit>(JavaTimeZone.java:37)
... 22 more
The following bug may be relevant here as it contains the same
NullPointerException as above, although my file system permissions
seem to permit reads by anyone so it doesn't exactly match:
http://bugs.sun.com/view_bug.do?bug_id=6529213
File permissions for JAVA_HOME/jre/lib/zi/ZoneInfoMappings:
$ env | grep JAVA_HOME
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
$ ls -lah /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/zi/ZoneInfoMappings
lrwxrwxrwx 1 root root 61 Sep 12 02:14
/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/zi/ZoneInfoMappings ->
../../../../java-7-openjdk-common/jre/lib/zi/ZoneInfoMappings
$ ls -lah /usr/lib/jvm/java-7-openjdk-common/jre/lib/zi/ZoneInfoMappings
-rw-r--r-- 1 root root 15K Sep 11 20:10
/usr/lib/jvm/java-7-openjdk-common/jre/lib/zi/ZoneInfoMappings
The .metadata/.log file starts with:
!SESSION 2012-09-13 08:59:42.484 -----------------------------------------------
eclipse.buildId=I20120608-1400
java.version=1.7.0_07
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_AU
Framework arguments: -product org.eclipse.epp.package.jee.product
Command-line arguments: -os linux -ws gtk -arch x86_64 -product
org.eclipse.epp.package.jee.product
!ENTRY org.eclipse.ui.workbench 4 2 2012-09-13 08:59:55.093
!MESSAGE Problems occurred when invoking code from plug-in:
"org.eclipse.ui.workbench".
!STACK 1
org.eclipse.core.runtime.CoreException: Plug-in
"org.eclipse.equinox.p2.ui.sdk.scheduler" was unable to instantiate
class "org.eclipse.equinox.internal.p2.ui.sdk.scheduler.AutomaticUpdateScheduler".
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.throwException(RegistryStrategyOSGI.java:194)
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:188)
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
at org.eclipse.ui.internal.WorkbenchPlugin$1.run(WorkbenchPlugin.java:273)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:52)
at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:269)
at org.eclipse.ui.internal.EarlyStartupRunnable.getExecutableExtension(EarlyStartupRunnable.java:117)
at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:66)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.ui.internal.Workbench$52.run(Workbench.java:2357)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Caused by: java.lang.ExceptionInInitializerError
at com.ibm.icu.util.TimeZone.getDefault(TimeZone.java:754)
at com.ibm.icu.util.Calendar.getInstanceInternal(Calendar.java:1626)
at com.ibm.icu.util.Calendar.getInstance(Calendar.java:1590)
at org.eclipse.equinox.internal.p2.ui.sdk.scheduler.AutomaticUpdateScheduler.<clinit>(AutomaticUpdateScheduler.java:50)
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:525)
at java.lang.Class.newInstance0(Class.java:372)
at java.lang.Class.newInstance(Class.java:325)
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:184)
... 11 more
Caused by: java.lang.NullPointerException
at sun.util.calendar.ZoneInfoFile.getZoneIDs(ZoneInfoFile.java:790)
at sun.util.calendar.ZoneInfo.getAvailableIDs(ZoneInfo.java:576)
at java.util.TimeZone.getAvailableIDs(TimeZone.java:588)
at com.ibm.icu.impl.JavaTimeZone.<clinit>(JavaTimeZone.java:37)
... 22 more
I compiled the TZTest file as suggested at
https://jira.atlassian.com/browse/FE-2662?focusedCommentId=205020 and
it reproduces the exception from the Eclipse logs:
$ cat TZTest.java
import java.util.TimeZone;
public class TZTest {
public static void main(String args[]) {
String[] availableIds = TimeZone.getAvailableIDs();
System.out.println("Length: "+availableIds.length);
for (int i = 0; i < availableIds.length; i++) {
System.out.println("ID #"+i+": "+availableIds[i]);
}
}
}
$ javac TZTest.java
$ java TZTest
Exception in thread "main" java.lang.NullPointerException
at sun.util.calendar.ZoneInfoFile.getZoneIDs(ZoneInfoFile.java:790)
at sun.util.calendar.ZoneInfo.getAvailableIDs(ZoneInfo.java:576)
at java.util.TimeZone.getAvailableIDs(TimeZone.java:588)
at TZTest.main(TZTest.java:5)
On 13 September 2012 09:29, Peter Ansell <ansell.peter at gmail.com> wrote:
> Hi,
>
> I installed an update to OpenJDK-7 in the last few hours and now
> Eclipse is failing to let me see the preferences panel for installed
> JREs, and in addition, I cannot run code inside Eclipse.
>
> I get the following error in ~/workspace/.metadata/.log when I try to
> go to Window->Preferences->Java->Installed JREs, and there is also an
> error dialog inside Eclipse at the point of failure that doesn't tell
> me much.
>
> Naively I would say that something relating to
> com.ibm.icu.text.SimpleDateFormat may have changed in the most recent
> OpenJDK, as it seems to be the root cause.
>
> !ENTRY org.eclipse.equinox.registry 4 1 2012-09-13 09:16:18.508
> !MESSAGE Unable to create the selected preference page.
> !STACK 0
> org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter$TerminatingClassNotFoundException:
> An error occurred while automatically activating bundle
> org.eclipse.jdt.debug.ui (339).
> at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:122)
> at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:469)
> at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
> at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395)
> at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:464)
> at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
> at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
> at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
> at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:340)
> at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
> at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1212)
> at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
> at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
> at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
> at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
> at org.eclipse.core.internal.adapter.AdapterFactoryProxy.loadFactory(AdapterFactoryProxy.java:136)
> at org.eclipse.core.internal.runtime.AdapterManager.getAdapter(AdapterManager.java:321)
> at org.eclipse.core.internal.runtime.AdapterManager.loadAdapter(AdapterManager.java:356)
> at org.eclipse.debug.internal.ui.actions.ToggleBreakpointsTargetManager$ToggleBreakpointsTargetAdapterFactory.getToggleBreakpointsTarget(ToggleBreakpointsTargetManager.java:339)
> at org.eclipse.debug.internal.ui.actions.ToggleBreakpointsTargetManager$ToggleBreakpointsTargetAdapterFactory.createDefaultToggleTarget(ToggleBreakpointsTargetManager.java:378)
> at org.eclipse.debug.internal.ui.actions.ToggleBreakpointsTargetManager.getToggleBreakpointsTarget(ToggleBreakpointsTargetManager.java:539)
> at org.eclipse.debug.internal.ui.actions.breakpoints.RetargetBreakpointAction.getAdapter(RetargetBreakpointAction.java:47)
> at org.eclipse.debug.internal.ui.actions.RetargetAction.partActivated(RetargetAction.java:163)
> at org.eclipse.debug.internal.ui.actions.RetargetAction.init(RetargetAction.java:96)
> at org.eclipse.debug.internal.ui.actions.breakpoints.RetargetBreakpointAction.init(RetargetBreakpointAction.java:53)
> at org.eclipse.ui.internal.WWinPluginAction.initDelegate(WWinPluginAction.java:189)
> at org.eclipse.ui.internal.PluginAction.createDelegate(PluginAction.java:125)
> at org.eclipse.ui.internal.WWinPluginAction.refreshActionList(WWinPluginAction.java:165)
> at org.eclipse.ui.plugin.AbstractUIPlugin$1.run(AbstractUIPlugin.java:485)
> at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
> at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
> at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3529)
> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3182)
> at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1022)
> at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
> at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:916)
> at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:86)
> at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:585)
> at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
> at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:540)
> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
> at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
> at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
> at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
> at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
> at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353)
> at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)
> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
> at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
> at org.eclipse.equinox.launcher.Main.main(Main.java:1414)
> Caused by: org.osgi.framework.BundleException: The activator
> org.eclipse.jdt.internal.debug.ui.JDIDebugUIPlugin for bundle
> org.eclipse.jdt.debug.ui is invalid
> at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:172)
> at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:679)
> at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
> at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:300)
> at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)
> at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:263)
> at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
> ... 55 more
> Caused by: java.lang.NoClassDefFoundError:
> org/eclipse/jdt/debug/core/IJavaHotCodeReplaceListener
> at java.lang.Class.getDeclaredConstructors0(Native Method)
> at java.lang.Class.privateGetDeclaredConstructors(Class.java:2404)
> at java.lang.Class.getConstructor0(Class.java:2714)
> at java.lang.Class.newInstance0(Class.java:343)
> at java.lang.Class.newInstance(Class.java:325)
> at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:167)
> ... 61 more
> Caused by: org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter$TerminatingClassNotFoundException:
> An error occurred while automatically activating bundle
> org.eclipse.jdt.debug (338).
> at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:122)
> at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:469)
> at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
> at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395)
> at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:464)
> at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
> at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
> at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
> at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:340)
> at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
> at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1212)
> at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
> at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
> at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
> at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
> at org.eclipse.debug.internal.core.BreakpointManager.createBreakpoint(BreakpointManager.java:557)
> at org.eclipse.debug.internal.core.BreakpointManager.loadBreakpoints(BreakpointManager.java:268)
> at org.eclipse.debug.internal.core.BreakpointManager.initializeBreakpoints(BreakpointManager.java:461)
> at org.eclipse.debug.internal.core.BreakpointManager.getBreakpoints0(BreakpointManager.java:430)
> at org.eclipse.debug.internal.core.BreakpointManager.hasBreakpoints(BreakpointManager.java:946)
> at org.eclipse.debug.internal.ui.actions.breakpoints.RemoveAllBreakpointsAction.isEnabled(RemoveAllBreakpointsAction.java:55)
> at org.eclipse.debug.internal.ui.actions.AbstractRemoveAllActionDelegate.update(AbstractRemoveAllActionDelegate.java:100)
> at org.eclipse.debug.internal.ui.actions.AbstractRemoveAllActionDelegate.init(AbstractRemoveAllActionDelegate.java:86)
> at org.eclipse.debug.internal.ui.actions.breakpoints.RemoveAllBreakpointsAction.init(RemoveAllBreakpointsAction.java:150)
> ... 30 more
> Caused by: org.osgi.framework.BundleException: Exception in
> org.eclipse.jdt.internal.debug.core.JDIDebugPlugin.start() of bundle
> org.eclipse.jdt.debug.
> at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:734)
> at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
> at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
> at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:300)
> at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)
> at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:263)
> at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
> ... 54 more
> Caused by: java.lang.NoClassDefFoundError: Could not initialize class
> com.ibm.icu.text.SimpleDateFormat
> at org.eclipse.jdt.internal.debug.core.JDIDebugOptions.<clinit>(JDIDebugOptions.java:58)
> at org.eclipse.jdt.internal.debug.core.JDIDebugPlugin.start(JDIDebugPlugin.java:274)
> at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
> at java.security.AccessController.doPrivileged(Native Method)
> at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
> ... 60 more
>
>
> $ java -version
> java version "1.7.0_07"
> OpenJDK Runtime Environment (IcedTea7 2.3.2) (7u7-2.3.2-1ubuntu0.12.04.1)
> OpenJDK 64-Bit Server VM (build 23.2-b09, mixed mode)
>
> I have installed Eclipse Juno (version 4.2) myself in /opt/eclipse and
> the output of /opt/eclipse/eclipse.ini is:
>
> $ cat /opt/eclipse/eclipse.ini
> -startup
> plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
> --launcher.library
> plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20120522-1813
> -product
> org.eclipse.epp.package.jee.product
> --launcher.defaultAction
> openFile
> -showsplash
> org.eclipse.platform
> --launcher.XXMaxPermSize
> 2048m
> --launcher.defaultAction
> openFile
> -vmargs
> -Dosgi.requiredJavaVersion=1.5
> -Dhelp.lucene.tokenizer=standard
> -XX:MaxPermSize=2048m
> -Xms1024m
> -Xmx4096m
>
> The Eclipse About dialog shows the Eclipse Version as:
>
> Eclipse Java EE IDE for Web Developers.
> Version: Juno Release
> Build id: 20120614-1722
More information about the ubuntu-users
mailing list