unable to load extension file

malcolm jones's Avatar

malcolm jones

06 Feb, 2019 02:17 PM

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!

  1. Support Staff 1 Posted by Sean Reilly on 06 Feb, 2019 02:44 PM

    Sean Reilly's Avatar

    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. 2 Posted by malcolm jones on 06 Feb, 2019 03:17 PM

    malcolm jones's Avatar

    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. 3 Posted by malcolm jones on 06 Feb, 2019 03:47 PM

    malcolm jones's Avatar

    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. 4 Posted by malcolm jones on 06 Feb, 2019 08:40 PM

    malcolm jones's Avatar

    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:

    |

  5. Support Staff 5 Posted by Sean Reilly on 06 Feb, 2019 10:47 PM

    Sean Reilly's Avatar

    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

  6. Support Staff 6 Posted by Sean Reilly on 07 Feb, 2019 11:09 AM

    Sean Reilly's Avatar

    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. 7 Posted by malcolm jones on 07 Feb, 2019 12:01 PM

    malcolm jones's Avatar

    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:

    |

  8. Support Staff 8 Posted by Sean Reilly on 07 Feb, 2019 12:14 PM

    Sean Reilly's Avatar

    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. 9 Posted by malcolm jones on 07 Feb, 2019 12:48 PM

    malcolm jones's Avatar

    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:
     
       
    |

  10. Support Staff 10 Posted by Sean Reilly on 07 Feb, 2019 09:06 PM

    Sean Reilly's Avatar

    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. 11 Posted by malcolm jones on 08 Feb, 2019 01:22 AM

    malcolm jones's Avatar

    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. 12 Posted by -Kevin N. on 08 Feb, 2019 02:49 AM

    -Kevin N.'s Avatar

    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. 13 Posted by malcolm jones on 08 Feb, 2019 12:44 PM

    malcolm jones's Avatar

    Hi Kevin,
    Thanks for your help, worked exactly as you said..

    Malcolm

  14. System closed this discussion on 10 May, 2019 12:50 PM.

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