directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stefan Seelmann (JIRA)" <>
Subject [jira] Commented: (DIRSTUDIO-301) Intermittant ClassCastException from dom4j.DocumentFactory.getInstance()
Date Fri, 09 Oct 2009 12:58:31 GMT


Stefan Seelmann commented on DIRSTUDIO-301:

John, do you still have issues with that?

One cause I could imagine is that the jars plugin exports all packages (via Export-Package
in MANIFEST.MF) of all included libraries, including org.dom4j.*. So all those packages are
available for all other plugins and if they just import an package (via Import-Package in
MANIFEST.MF) may be the problem.

I think we should consider another way on how to bundle shared libraries. Maybe a better approach
would be to create an OSGi bundle for each required jar. I think most Apache Commons jars
include a valid Manifest these days. I'd appreciate feedback from Eclipse and OSGi experts.

> Intermittant ClassCastException from dom4j.DocumentFactory.getInstance()
> ------------------------------------------------------------------------
>                 Key: DIRSTUDIO-301
>                 URL:
>             Project: Directory Studio
>          Issue Type: Bug
>          Components: studio-connection
>    Affects Versions: 1.1.0
>         Environment: Eclipse 3.3
> Java 1.5.0_11
> Windows XP Pro
>            Reporter: John Buslawski
>            Assignee: Pierre-Arnaud Marcelot
>            Priority: Critical
> We've integrated Directory Studio 1.1 0 into our Eclipse application and we occasionally
see the following stack trace when we select the Finish button while defining a new connection
via the New LDAP Connection wizard. The stack trace display each time the Finish button is
displayed and the wizard never completes. You always have to cancel the wizard. Most of the
time the wizard works fine but occasionally it has this problem.
> We see a similar stack trace with ClassCastException from DocumentFactory.getInstance()
when we launch our application and we have previously defined LDAP connections. It appears
as though Directory Studio is trying to read the persisted connection definitions but cannot
due to the exception. The appearance is that your previously defined connections do not appear
in the Connections view but if you try to define a connection with a previously defined (but
now invisible) connection name you will get a message about a duplicate name. This problem
is also intermittant and sometimes it seems to depend on what perspective is loaded during
the launch.
> After researching this problem I found the following link that seems to be related to
just this issue with dom4j-1.6.1.jar which Directory Studio bundles in

> [dom4j-dev] [ dom4j-Bugs-1618750 ] ClassCastException while creating org.dom4j.DocumentFactory
> It's not clear what the fix should be after reading this thread. We use dom4j-1.5.2.jar
in our application have never seen an issue like this. I was tempted to replace the dom4j-1.6.1.jar
with dom4j-1.5.2.jar in to see if it
would fix the problem but I wasn't sure what other impacts, if any, that might cause.
> These issues, especially the invisible connections, are a real annoyance for our users
so I'm marking this issue as critical. We would really like to see this addressed before Directory
Studio reaches GA.
> !STACK 0
> java.lang.ClassCastException: org.dom4j.DocumentFactory
> 	at org.dom4j.DocumentFactory.getInstance(
> 	at org.dom4j.DocumentHelper.getDocumentFactory(
> 	at org.dom4j.DocumentHelper.createDocument(
> 	at
> 	at
> 	at
> 	at$
> 	at
> 	at
> 	at
> 	at
> 	at org.eclipse.jface.wizard.WizardDialog.finishPressed(
> 	at org.eclipse.jface.wizard.WizardDialog.buttonPressed(
> 	at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(
> 	at org.eclipse.swt.widgets.TypedListener.handleEvent(
> 	at org.eclipse.swt.widgets.EventTable.sendEvent(
> 	at org.eclipse.swt.widgets.Widget.sendEvent(
> 	at org.eclipse.swt.widgets.Display.runDeferredEvents(
> 	at org.eclipse.swt.widgets.Display.readAndDispatch(
> 	at org.eclipse.jface.window.Window.runEventLoop(
> 	at
> 	at
> 	at
> 	at org.eclipse.jface.action.Action.runWithEvent(
> 	at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(
> 	at org.eclipse.jface.action.ActionContributionItem.access$2(
> 	at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(
> 	at org.eclipse.swt.widgets.EventTable.sendEvent(
> 	at org.eclipse.swt.widgets.Widget.sendEvent(
> 	at org.eclipse.swt.widgets.Display.runDeferredEvents(
> 	at org.eclipse.swt.widgets.Display.readAndDispatch(
> 	at org.eclipse.ui.internal.Workbench.runEventLoop(
> 	at org.eclipse.ui.internal.Workbench.runUI(
> 	at org.eclipse.ui.internal.Workbench.access$4(
> 	at org.eclipse.ui.internal.Workbench$
> 	at org.eclipse.core.databinding.observable.Realm.runWithDefault(
> 	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(
> 	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(
> 	at org.eclipse.ui.internal.ide.application.IDEApplication.start(
> 	at
> 	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(
> 	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(
> 	at
> 	at
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> 	at java.lang.reflect.Method.invoke(Unknown Source)
> 	at org.eclipse.equinox.launcher.Main.invokeFramework(
> 	at org.eclipse.equinox.launcher.Main.basicRun(
> 	at
> 	at org.eclipse.equinox.launcher.Main.main(

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message