The GanttProject import wizard does not work

Hello,
I’m using version 2.8.11 Pilsen (build 2396) on macOS 10.15.5.
Whatever the format chosen in the first page of the import wizard, when I click on “next”, nothing happens.
I think it’s broken since I tried to import a .ics file from Google Calendar, for which it notified me of an error: impossible to open this file (that’s what I remember). I say “I think” because I’m new to this software, and I was trying this function for the first time.
I tried to uninstall via the recycle bin and reinstall GanttProject, but it doesn’t change anything.
Can you help me? Thank you!

I am no sure that I understand this. You say:

Whatever the format chosen in the first page of the import wizard, when I click on “next”, nothing happens.

and then you say:

I tried to import a .ics file from Google Calendar, for which it notified me of an error: impossible to open this file

However, if nothing happens when you click “next” then you should not be able to import ICS at all (you just will not see any UI for choosing a file).

So let’s clarify it a little bit. What really happens when you choose any importer and click “next”. Do you see anything like this? The screenshot shows the second page of importing from MS Project.

Screenshot 2020-07-12 04:38:45

Thank you for your answer Dmitry,

I said it’s been broken since then, just for information. But now, I can’t even get to the step you’re showing: I get stuck on the first page, “next” stays blue as long as the mouse pointer is on it, and nothing happens…

Trying and trying again, I realize I may have tried wrong at first: once I try to import an ICS, if I try another format, it doesn’t work either. But if I choose another format as soon as I open the wizard, it works and I can access the second page you show. So it’s only for the ICS that it’s really blocked.

So the issue is that some particular .ics file won’t import? Can you please share the file?

Hello Dmitry, sorry for the delay.

As it’s my personal calendar, I send it to you througt a direct mail at “Moderators”.

But the issue is global, I just cant import any .ics file now as I cant get the next ics step after the first page of the wizard.

I can’t see anything from you in the personal messages. Please send it to [email protected] if you find it necessary.

So, literally, you select ICS import, click “next” and nothing happens? I want to see a video/screencast of that and the error log contents after that. You can find the log in Help > View log

Ooops, sorry, I have found the ICS file and I think that I have reproduced the importer issue.

So, the importer actually shows a small “Error” label in the bottom-left corner and the log contains this:

java.lang.NoClassDefFoundError: org/apache/commons/codec/DecoderException
	at net.fortuna.ical4j.model.PropertyFactoryImpl$AttachFactory.createProperty(PropertyFactoryImpl.java:196)
	at net.fortuna.ical4j.model.PropertyFactoryImpl.createProperty(PropertyFactoryImpl.java:972)
	at net.fortuna.ical4j.data.CalendarBuilder$ContentHandlerImpl.startProperty(CalendarBuilder.java:346)
	at net.fortuna.ical4j.data.CalendarParserImpl$PropertyParser.parse(CalendarParserImpl.java:211)
	at net.fortuna.ical4j.data.CalendarParserImpl$PropertyParser.access$1(CalendarParserImpl.java:200)
	at net.fortuna.ical4j.data.CalendarParserImpl$PropertyListParser.parse(CalendarParserImpl.java:178)
	at net.fortuna.ical4j.data.CalendarParserImpl$ComponentParser.parse(CalendarParserImpl.java:396)
	at net.fortuna.ical4j.data.CalendarParserImpl$ComponentParser.access$1(CalendarParserImpl.java:382)
	at net.fortuna.ical4j.data.CalendarParserImpl$PropertyListParser.parse(CalendarParserImpl.java:175)
	at net.fortuna.ical4j.data.CalendarParserImpl$ComponentParser.parse(CalendarParserImpl.java:396)
	at net.fortuna.ical4j.data.CalendarParserImpl$ComponentParser.access$1(CalendarParserImpl.java:382)
	at net.fortuna.ical4j.data.CalendarParserImpl$PropertyListParser.parse(CalendarParserImpl.java:175)
	at net.fortuna.ical4j.data.CalendarParserImpl.parse(CalendarParserImpl.java:125)
	at net.fortuna.ical4j.data.CalendarBuilder.build(CalendarBuilder.java:210)
	at biz.ganttproject.impex.ical.IcsFileImporter.readEvents(IcsFileImporter.java:152)
	at biz.ganttproject.impex.ical.IcsFileImporter.setFile(IcsFileImporter.java:101)
	at net.sourceforge.ganttproject.importer.FileChooserPage.setFile(FileChooserPage.java:74)
	at net.sourceforge.ganttproject.wizard.AbstractFileChooserPage.onSelectedFileChange(AbstractFileChooserPage.java:288)
	at net.sourceforge.ganttproject.wizard.AbstractFileChooserPage.loadPreferences(AbstractFileChooserPage.java:202)
	at net.sourceforge.ganttproject.wizard.AbstractFileChooserPage.setActive(AbstractFileChooserPage.java:228)
	at net.sourceforge.ganttproject.wizard.AbstractWizard.nextPage(AbstractWizard.java:111)
	at net.sourceforge.ganttproject.wizard.AbstractWizard.access$000(AbstractWizard.java:42)
	at net.sourceforge.ganttproject.wizard.AbstractWizard$1.actionPerformed(AbstractWizard.java:77)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
	at java.awt.Component.processMouseEvent(Component.java:6539)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
	at java.awt.Component.processEvent(Component.java:6304)
	at java.awt.Container.processEvent(Container.java:2239)
	at java.awt.Component.dispatchEventImpl(Component.java:4889)
	at java.awt.Container.dispatchEventImpl(Container.java:2297)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
	at java.awt.Container.dispatchEventImpl(Container.java:2283)
	at java.awt.Window.dispatchEventImpl(Window.java:2746)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
	at java.awt.EventQueue$4.run(EventQueue.java:733)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
	at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
	at java.awt.Dialog.show(Dialog.java:1084)
	at java.awt.Component.show(Component.java:1671)
	at java.awt.Component.setVisible(Component.java:1623)
	at java.awt.Window.setVisible(Window.java:1014)
	at java.awt.Dialog.setVisible(Dialog.java:1005)
	at net.sourceforge.ganttproject.DialogBuilder$DialogImpl.show(DialogBuilder.java:148)
	at net.sourceforge.ganttproject.wizard.AbstractWizard.show(AbstractWizard.java:151)
	at net.sourceforge.ganttproject.action.project.ProjectImportAction.actionPerformed(ProjectImportAction.java:50)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:842)
	at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:886)
	at java.awt.Component.processMouseEvent(Component.java:6539)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
	at java.awt.Component.processEvent(Component.java:6304)
	at java.awt.Container.processEvent(Container.java:2239)
	at java.awt.Component.dispatchEventImpl(Component.java:4889)
	at java.awt.Container.dispatchEventImpl(Container.java:2297)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
	at java.awt.Container.dispatchEventImpl(Container.java:2283)
	at java.awt.Window.dispatchEventImpl(Window.java:2746)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
	at java.awt.EventQueue$4.run(EventQueue.java:733)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.codec.DecoderException
	at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
	at org.bardsoftware.impl.eclipsito.BundleClassLoader.findClass(BundleClassLoader.java:131)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 108 more

This issue seems to be fixed in the beta of GanttProject 3.0, and I highly encourage to try it. You can download the latest build 2.99.2906 from here: https://www.dropbox.com/sh/ijzr7s7ozxqexls/AADlRUGq667XQjEK8j4StEp2a?dl=0

The ICS imports fine in GP 2.99.2906. It adds a number of holidays to the project calendar. You can check it in Project > Properties > Calendar

Ok it works now (and nice beta)!
Thanks a lot Dmitry!