unable to load extension file
HI,
I want to develop an extension. I have downloaded the extension developer kit 5.0 and followed the instructions to create "myextension". I have made no changes to the provided java code.
When I try and load myextension.mxt I get an error message "java.util.zip.ZipException: zip END header not found"
How can I fix this?
Pasted below is the console messages
Thanks for your help
Malcolm
Starting Moneydance 2019.1 (1855) at Wed Feb 06 09:10:21 EST 2019
Settings Folder: C:\Users\malco\.moneydance
OS: Windows 10 10.0 amd64
Java: 11.0.1 (Oracle Corporation)
Is in sandbox: false; restricted file access: false
Error loading extension: java.util.zip.ZipException: zip END header not found for module 'myextension'
java.util.zip.ZipException: zip END header not found
at java.base/java.util.zip.ZipFile$Source.zerror(Unknown Source)
at java.base/java.util.zip.ZipFile$Source.findEND(Unknown Source)
at java.base/java.util.zip.ZipFile$Source.initCEN(Unknown Source)
at java.base/java.util.zip.ZipFile$Source.<init>(Unknown Source)
at java.base/java.util.zip.ZipFile$Source.get(Unknown Source)
at java.base/java.util.zip.ZipFile$CleanableResource.<init>(Unknown Source)
at java.base/java.util.zip.ZipFile$CleanableResource.get(Unknown Source)
at java.base/java.util.zip.ZipFile.<init>(Unknown Source)
at java.base/java.util.zip.ZipFile.<init>(Unknown Source)
at java.base/java.util.zip.ZipFile.<init>(Unknown Source)
at com.moneydance.apps.md.controller.ModuleLoader$FMClassLoader.<init>(ModuleLoader.java:247)
at com.moneydance.apps.md.controller.ModuleLoader.loadFeatureModule(ModuleLoader.java:43)
at com.moneydance.apps.md.controller.Main.getExternalFeatureModule(Main.java:448)
at com.moneydance.apps.md.controller.Main.loadExternalFeatureModule(Main.java:490)
at com.moneydance.apps.md.controller.Main.loadInstalledExternalFeatureModule(Main.java:504)
at com.moneydance.apps.md.controller.Main.startApplication(Main.java:728)
at com.moneydance.apps.md.controller.Main.main(Main.java:218)
at Moneydance.main(Moneydance.java:7)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:85)
at com.exe4j.runtime.WinLauncher.main(WinLauncher.java:94)
at com.install4j.runtime.launcher.WinLauncher.main(WinLauncher.java:25)
multires images not supported: java.lang.ClassNotFoundException: sun/awt/image/MultiResolutionImage.class
initialized extension updater in 0.019 seconds
initialized extension yahooqt in 0.604 seconds
opening last file: D:\OneDrive\Documents\Bank&Invest\BankDownloads\all accounts.moneydance
loading dataset: D:\OneDrive\Documents\Bank&Invest\BankDownloads\all accounts.moneydance
loading with 128 bit encryption key
reading trunk data tiksync/trunk
trunk data loaded (2.457 seconds), checking for incremental updates
loading un-synced txn files...
loading synced txn files...
replacing root: null () with new root: Root Account (496f45c4-0375-4a30-947c-bc8597ce2cf9
dropbox folder should be at C:\Users\malco\Dropbox and exists=false
set antialiasing to HRGB
java.util.zip.ZipException: zip END header not found
at java.base/java.util.zip.ZipFile$Source.zerror(Unknown Source)
at java.base/java.util.zip.ZipFile$Source.findEND(Unknown Source)
at java.base/java.util.zip.ZipFile$Source.initCEN(Unknown Source)
at java.base/java.util.zip.ZipFile$Source.<init>(Unknown Source)
at java.base/java.util.zip.ZipFile$Source.get(Unknown Source)
at java.base/java.util.zip.ZipFile$CleanableResource.<init>(Unknown Source)
at java.base/java.util.zip.ZipFile$CleanableResource.get(Unknown Source)
at java.base/java.util.zip.ZipFile.<init>(Unknown Source)
at java.base/java.util.zip.ZipFile.<init>(Unknown Source)
at java.base/java.util.zip.ZipFile.<init>(Unknown Source)
at com.moneydance.apps.md.controller.ModuleLoader$FMClassLoader.<init>(ModuleLoader.java:247)
at com.moneydance.apps.md.controller.ModuleLoader.loadFeatureModule(ModuleLoader.java:43)
at com.moneydance.apps.md.controller.Main.getExternalFeatureModule(Main.java:448)
at com.moneydance.apps.md.view.gui.extensions.ExtensionListView.installFromFile(ExtensionListView.java:125)
at com.moneydance.apps.md.view.gui.extensions.ExtensionListView.addFromFile(ExtensionListView.java:112)
at com.moneydance.apps.md.view.gui.extensions.ExtensionListView$1.actionPerformed(ExtensionListView.java:56)
at com.moneydance.apps.md.view.gui.MDAction.actionPerformed(MDAction.java:156)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.desktop/java.awt.Component.processMouseEvent(Unknown Source)
at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.desktop/java.awt.Component.processEvent(Unknown Source)
at java.desktop/java.awt.Container.processEvent(Unknown Source)
at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
updater: read 20972 bytes of update info
Retrieving signature
updater: using public key: updater_pub_0
Sweet! We've gotten a signed description of the update info
Version info retrieved; we are up to date!
Comments are currently closed for this discussion. You can start a new one.
Keyboard shortcuts
Generic
? | Show this help |
---|---|
ESC | Blurs the current field |
Comment Form
r | Focus the comment reply box |
---|---|
^ + ↩ | Submit the comment |
You can use Command ⌘
instead of Control ^
on Mac
Support Staff 1 Posted by Sean Reilly on 06 Feb, 2019 02:44 PM
Hi Malcolm,
Would it be possible to get a copy of the extension file? Did you create the extension file using the ant build.xml file that came with the dev kit?
Thanks,
Sean
2 Posted by malcolm jones on 06 Feb, 2019 03:17 PM
Attached is the myextension.mxt which was created by running "ant myextension" in the src folder. I made no changes to the build.xml, also attached.
Note - I have zipped the myextension.mxt file as it could not be uploaded as is. There was an error message on uploading "myextension.mxt has contents that are not what they are reported to be"
Thanks for your help
Malcolm
3 Posted by malcolm jones on 06 Feb, 2019 03:47 PM
Hi Sean,
Further to the above, following is the output from running ant
Thanks for your help
Malcolm
D:\OneDrive\Documents\EclipseMD2\moneydance-devkit-5.0\src>ant myextension
Buildfile: D:\OneDrive\Documents\EclipseMD2\moneydance-devkit-5.0\src\build.xml
init:
myextension:
[javac] This version of java does not support the classic compiler; upgrading to modern
[jar] error while reading original manifest in file: D:\OneDrive\Documents\EclipseMD2\moneydance-devkit-5.0\dist\myextension.mxt due to zip END header not found
[jar] Building jar: D:\OneDrive\Documents\EclipseMD2\moneydance-devkit-5.0\dist\myextension.mxt
[java] Changes to environment variables are ignored when same JVM is used.
Enter a passphrase to decrypt this key
[java] Adding files:
[java] META-INF/
[java] META-INF/MANIFEST.MF
[java] com/
[java] com/moneydance/
[java] com/moneydance/modules/
[java] com/moneydance/modules/features/
[java] com/moneydance/modules/features/myextension/
[java] com/moneydance/modules/features/myextension/icon.gif
[java] com/moneydance/modules/features/myextension/AccountListWindow$ConsoleStream.class
[java] com/moneydance/modules/features/myextension/AccountListWindow.class
[java] com/moneydance/modules/features/myextension/Main.class
[java] writing 1359 bytes of meta data for com/moneydance/modules/features/myextension/meta_info.dict
[java] java.security.InvalidKeyException: No installed provider supports this key: com.moneydance.security.RSAPrivateKeyImpl
[java] at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:194)
[java] at org.apache.tools.ant.taskdefs.Java.run(Java.java:861)
[java] at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:231)
[java] at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:135)
[java] at org.apache.tools.ant.taskdefs.Java.execute(Java.java:108)
[java] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
[java] at jdk.internal.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
[java] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[java] at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[java] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
[java] at org.apache.tools.ant.Task.perform(Task.java:350)
[java] at org.apache.tools.ant.Target.execute(Target.java:449)
[java] at org.apache.tools.ant.Target.performTasks(Target.java:470)
[java] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1388)
[java] at org.apache.tools.ant.Project.executeTarget(Project.java:1361)
[java] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[java] at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
[java] at org.apache.tools.ant.Main.runBuild(Main.java:834)
[java] at org.apache.tools.ant.Main.startAnt(Main.java:223)
[java] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:284)
[java] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:101)
[java] Caused by: java.security.InvalidKeyException: No installed provider supports this key: com.moneydance.security.RSAPrivateKeyImpl
[java] at java.base/java.security.Signature$Delegate.chooseProvider(Signature.java:1163)
[java] at java.base/java.security.Signature$Delegate.engineInitSign(Signature.java:1204)
[java] at java.base/java.security.Signature.initSign(Signature.java:546)
[java] at com.moneydance.admin.KeyAdmin.signModule(KeyAdmin.java:331)
[java] at com.moneydance.admin.KeyAdmin.main(KeyAdmin.java:48)
[java] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[java] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[java] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[java] at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[java] at org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:218)
[java] at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:155)
[java] ... 20 more
[java] Java Result: -1
[move] Moving 1 file to D:\OneDrive\Documents\EclipseMD2\moneydance-devkit-5.0\dist
BUILD SUCCESSFUL
Total time: 12 seconds
4 Posted by malcolm jones on 06 Feb, 2019 08:40 PM
Hi Sean,
I responded in the discussion with the files - would you also like them in an email?
Malcolm
On Wednesday, February 6, 2019, 9:44:14 AM EST, Sean Reilly <[email blocked]> wrote:
|
Support Staff 5 Posted by Sean Reilly on 06 Feb, 2019 10:47 PM
Hi Malcolm,
Thanks for sending those files over. I've gotten the copies and will check them out. I hope to have an answer to you tomorrow (the 7th).
Thanks!
Sean
Support Staff 6 Posted by Sean Reilly on 07 Feb, 2019 11:09 AM
Hi Malcolm,
Ok, it seems like the version of java you're using when running ant is not able to instantiate the RSA private key that is used for signing. I doubt that getting a newer version of java would help, but it may be that the encryption restrictions are still intact in your JDK. Would it be possible to send me the output of running "java --version"?
Thanks,
Sean
7 Posted by malcolm jones on 07 Feb, 2019 12:01 PM
Hi Sean,
Here you go, it is a very recent version.
Thanks for your help
Malcolm
C:\Users\malco>java --versionjava 11.0.2 2019-01-15 LTSJava(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS)Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+9-LTS, mixed mode)
C:\Users\malco>
On Thursday, February 7, 2019, 6:09:21 AM EST, Sean Reilly <[email blocked]> wrote:
|
Support Staff 8 Posted by Sean Reilly on 07 Feb, 2019 12:14 PM
Hi Malcolm,
OK, in that case, in the JDK directory where java lives can you check for the existence of a "conf" folder? If it exists (it should, in java 11) can you remove the conf/security/policy/limited directory? That should remove any encryption limitations which I suspect is the issue.
Thanks,
Sean
9 Posted by malcolm jones on 07 Feb, 2019 12:48 PM
Hi Sean,
I removed the limited directory but get the same result. The cmd window output follows.
Malcolm
Also here is the Java directory structure to make sure it is as you expect.
D:\OneDrive\Documents\EclipseMD2\moneydance-devkit-5.0\src>ant myextensionBuildfile: D:\OneDrive\Documents\EclipseMD2\moneydance-devkit-5.0\src\build.xml
init:
myextension: [javac] This version of java does not support the classic compiler; upgrading to modern [jar] error while reading original manifest in file: D:\OneDrive\Documents\EclipseMD2\moneydance-devkit-5.0\dist\myextension.mxt due to zip END header not found [jar] Building jar: D:\OneDrive\Documents\EclipseMD2\moneydance-devkit-5.0\dist\myextension.mxt [java] Changes to environment variables are ignored when same JVM is used.Enter a passphrase to decrypt this key
[java] Adding files: [java] META-INF/ [java] META-INF/MANIFEST.MF [java] com/ [java] com/moneydance/ [java] com/moneydance/modules/ [java] com/moneydance/modules/features/ [java] com/moneydance/modules/features/myextension/ [java] com/moneydance/modules/features/myextension/icon.gif [java] com/moneydance/modules/features/myextension/AccountListWindow$ConsoleStream.class [java] com/moneydance/modules/features/myextension/AccountListWindow.class [java] com/moneydance/modules/features/myextension/Main.class [java] writing 1359 bytes of meta data for com/moneydance/modules/features/myextension/meta_info.dict [java] java.security.InvalidKeyException: No installed provider supports this key: com.moneydance.security.RSAPrivateKeyImpl [java] at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:194) [java] at org.apache.tools.ant.taskdefs.Java.run(Java.java:861) [java] at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:231) [java] at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:135) [java] at org.apache.tools.ant.taskdefs.Java.execute(Java.java:108) [java] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292) [java] at jdk.internal.reflect.GeneratedMethodAccessor6.invoke(Unknown Source) [java] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [java] at java.base/java.lang.reflect.Method.invoke(Method.java:566) [java] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99) [java] at org.apache.tools.ant.Task.perform(Task.java:350) [java] at org.apache.tools.ant.Target.execute(Target.java:449) [java] at org.apache.tools.ant.Target.performTasks(Target.java:470) [java] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1388) [java] at org.apache.tools.ant.Project.executeTarget(Project.java:1361) [java] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) [java] at org.apache.tools.ant.Project.executeTargets(Project.java:1251) [java] at org.apache.tools.ant.Main.runBuild(Main.java:834) [java] at org.apache.tools.ant.Main.startAnt(Main.java:223) [java] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:284) [java] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:101) [java] Caused by: java.security.InvalidKeyException: No installed provider supports this key: com.moneydance.security.RSAPrivateKeyImpl [java] at java.base/java.security.Signature$Delegate.chooseProvider(Signature.java:1163) [java] at java.base/java.security.Signature$Delegate.engineInitSign(Signature.java:1204) [java] at java.base/java.security.Signature.initSign(Signature.java:546) [java] at com.moneydance.admin.KeyAdmin.signModule(KeyAdmin.java:331) [java] at com.moneydance.admin.KeyAdmin.main(KeyAdmin.java:48) [java] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [java] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [java] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [java] at java.base/java.lang.reflect.Method.invoke(Method.java:566) [java] at org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:218) [java] at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:155) [java] ... 20 more [java] Java Result: -1 [move] Moving 1 file to D:\OneDrive\Documents\EclipseMD2\moneydance-devkit-5.0\dist
BUILD SUCCESSFULTotal time: 9 seconds
On Thursday, February 7, 2019, 7:14:09 AM EST, Sean Reilly <[email blocked]> wrote:
|
Support Staff 10 Posted by Sean Reilly on 07 Feb, 2019 09:06 PM
Hi Malcolm,
OK, thanks for trying that. I've just found the issue and published a new dev kit (v5.1) which fixes the problem. Sorry about the trouble and waste of time!
Thanks,
Sean
11 Posted by malcolm jones on 08 Feb, 2019 01:22 AM
Hi Sean,
Thanks for the quick response.
I tried the v5.1 and had a strange result in making it work.
1. The "ant genkeys" and "ant myextension" both ran as expected and generated a myextension.mxt file.
2. Copied the mxt file into .moneydance\fmodules. The file size is 9KB.
3. Opened moneydance and went to manage extensions - add from file and selected "myextension". There was a series of messages: - Warning: The signature on this extension is either invalid or missing...would you like to continue loading? Selected "Yes" - Please confirm that you would like to install this extension. Selected "Install Extension" - ??There was an error installing the extension?? java.util.zip.ZIPException: zip file is empty
4. The extension does not appear. Shut down moneydance.
5. At this point the myextension.mxt file in .moneydance\fmodules has changed to size 0KB.
6. Re copied the same 9KB mxt file back into .moneydance\fmodules
7. Re opened moneydance - now the extension appears and works as expected.
All the best
Malcolm
On Thursday, February 7, 2019, 4:06:51 PM EST, Sean Reilly <[email blocked]> wrote:
|
12 Posted by -Kevin N. on 08 Feb, 2019 02:49 AM
Hi Malcolm,
Clicking Manage Extensions > Add from File, copies the extension from it's current location into the .moneydance/fmodules folder.
Manually placing it there and then using 'Add from File' is likely the cause of the first odd behavior.
The invalid signature warning just means that TIK hasn't signed off on the code.
-Kevin N. (not a member of MD support)
13 Posted by malcolm jones on 08 Feb, 2019 12:44 PM
Hi Kevin,
Thanks for your help, worked exactly as you said..
Malcolm
System closed this discussion on 10 May, 2019 12:50 PM.