Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EDS and XTCE exports fail quietly #117

Open
jakebunch opened this issue Feb 12, 2025 · 1 comment
Open

EDS and XTCE exports fail quietly #117

jakebunch opened this issue Feb 12, 2025 · 1 comment

Comments

@jakebunch
Copy link

jakebunch commented Feb 12, 2025

Hi,

I am unable to export any command or structure tables in EDS or XTCE formats (My target is XTCE, but I've noticed EDS doesn't work either). JSON and CSV formats seem to work fine, and I've made the following changes in hopes of fixing the issue, none of which have worked.

  • Fixed the broken schema link in File -> Preferences -> Other -> XTCE schema location
  • As indicated in the XTCE export section of the User's Guide, I have defined the four XML project fields with structures for the command and telemetry headers, as well as the variables for function codes and application ID's.
  • Switched from the CCDD-2 branch to the 2.1.13 tag

Exporting XTCE or EDS through the GUI does not produce any output files, error messages, or log messages of any kind.

Attempting to export XTCE or EDS through the command line produces the same java error messages:

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: javax/activation/DataSource
	at com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl.<clinit>(RuntimeBuiltinLeafInfoImpl.java:474)
	at com.sun.xml.bind.v2.model.impl.RuntimeTypeInfoSetImpl.<init>(RuntimeTypeInfoSetImpl.java:63)
	at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.createTypeInfoSet(RuntimeModelBuilder.java:128)
	at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.createTypeInfoSet(RuntimeModelBuilder.java:84)
	at com.sun.xml.bind.v2.model.impl.ModelBuilder.<init>(ModelBuilder.java:162)
	at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.<init>(RuntimeModelBuilder.java:92)
	at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:455)
	at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:303)
	at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:139)
	at com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1156)
	at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:165)
	at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:289)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:217)
	at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:175)
	at javax.xml.bind.ContextFinder.find(ContextFinder.java:353)
	at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:508)
	at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:465)
	at CCDD.CcddXTCEHandler.<init>(CcddXTCEHandler.java:363)
	at CCDD.CcddFileIOHandler.exportSelectedTables(CcddFileIOHandler.java:3541)
	at CCDD.CcddCommandLineHandler$41.doCommand(CcddCommandLineHandler.java:1664)
	at CCDD.CcddCommandLineHandler$CommandHandler.handler(CcddCommandLineHandler.java:388)
	at CCDD.CcddCommandLineHandler.parseCommand(CcddCommandLineHandler.java:2740)
	at CCDD.CcddCommandLineHandler.parseCommand(CcddCommandLineHandler.java:2635)
	at CCDD.CcddMain.parseDbSpecificCommandLineCommands(CcddMain.java:985)
	at CCDD.CcddDbControlHandler.openDatabase(CcddDbControlHandler.java:2761)
	at CCDD.CcddDbControlHandler.openDatabase(CcddDbControlHandler.java:2517)
	at CCDD.CcddDbControlHandler.openDatabase(CcddDbControlHandler.java:2501)
	at CCDD.CcddMain.<init>(CcddMain.java:428)
	at CCDD.CcddMain$1.run(CcddMain.java:456)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.ClassNotFoundException: javax.activation.DataSource
	at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:594)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:527)
	... 46 more

I would really appreciate any help you can provide!

Thanks

@jakebunch
Copy link
Author

It looks like I've solved the issue. I located the jar file containing the missing API and downloaded it here: https://mvnrepository.com/artifact/javax.activation/activation/1.1.1

I placed it in CCDD_lib/ and used the following command to make sure the new .jar got included:
java -classpath CCDD.jar:CCDD_lib/* CCDD.CcddMain -shutdown -project <my project name> -export “ ...etc

It seems to me that this jar file or some equivalent should be added to the repository, and the CCDD.jar should be rebuilt so that CCDD can make use of it. After some research, it seems like this javax.activation API is no longer included by default in newer versions of the JDK, so that might be the cause.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant