I’am too Stupid for Java Store

Finally I was approved for Sun’s Warehouse and the fun of uploading can begin!

Sun made a nice job for the Java Store. It looks good although not ready (the gray bar at the right side is what?). See for yourself:

But the procedure to submit my TimeFinder application was very awful!

    1. So first I needed a short and a long description and several icons. Okay I wrote some description and used one bigger icon and scaled this down with gimp to produce the required sizes.
    2. Next I needed a main jar file. (Why not a webstart jnlp file?)
    3. So I installed a jar file (from one-jar) into the Java Store, but it does not start. No error messages.
    4. Then I tried to reinstall it: it only says “you tried to install TimeFinder, which is already installed”. uhm
    5. I think the sandbox stuff might be the problem. Ok, for that they linked to this and that document.
      But why should I read all the stuff if I already have a self signed webstart application?
    6. Ok. Next I tried to create a new version with my signed jars (from ‘mvn clean install webstart:jnlp’). And what? Yes! I need to refill ALL text entries again. uhm. I thought I do not need this description again (because Sun had already saved this for me). Probably the most strange thing is that they do not allow you to copy and paste your old text! But hey – I am a developer, so I opened up the pure html and copied it from there.
    7. Next for the signed version I have > 30 jars. At the end only 11MB (50 MB are allowed) but … no! I need to upload them separately and no parallel download, no. Only sequential. And the best thing: they will not be ordered by name. haha lol. I’am simply too stupid for that …
    8. After adding all the jars: I couldn’t proceed with ‘next’. the button didn’t react!
    9. I relogged in and now the jars were uploaded, puh! But I wasn’t able to install the new version via Java Store: “You have tried to install TimeFinder, which is already installed”. And then I tried to submit, but “You must test launch your application at least once before submitting.” (For that I need to install it :-)) Argh

      Finally I wasn’t able to upload anything working to Java Store 😦

    I do not understand why the developer should use the ugly webpages and the user can use the nice Java Store client? Why not merge front- and back-end to an ultimate “JavaStore”?

    In the end: please make it a bit easier! At least for me 😉

    I know this is from developer for developer, but how should a normal “script kiddy” post its (JavaFX) apps there? E.g. why do you need to force that security stuff? If it is not signed you could simply warn the user. Or why not?


    7 thoughts on “I’am too Stupid for Java Store

    1. We are looking to support JNPL ingestion. After you ingested your jar and try to run it. You should look in your Java Console to see what went wrong. Just uninstall your app via “javaws -uninstall”. The message you got is because you already have installed your app. You can also use preview. To address your issue you just have to uninstall your app via “javaws -uninstall or via the Java control”. It will let you run the app to set the run flag to submit your app 🙂

      We will look to add parallel download of jars that’s a good point. We are working to get the full client for preview within the developer portal. Finally, good point of adding a warning for submitting not-signed jar.

      Yes – we are lo

    2. Hi,

      thanks a lot for the answer!
      Sorry for the rant against JavaStore but it was so frustrating 😦

      I will try this now. Hoping to post successful JavaStore post then 🙂

    3. Hmmh now I am getting

      java.io.FileNotFoundException: /home/peterk/.javastore/storage/webstart/install/440/current/jar.ognl-2.6.9.jar (No such file or directory)

      although the file is present at the warehouse (productId=440 versionId=553)
      as ognl-2.6.9.jar (171 KB)

    4. now I did:
      rm -rf .javastore/
      javaws -uninstall

      and it started. But again not successfull:
      Caused by: java.lang.NoClassDefFoundError: javolution/util/FastMap

      This is logical because there is no such jar (javolution) under .javastore/storage/webstart/preview/440/553/ although I added this to the warehouse.

      To count the local jars I executed
      ll .javastore/storage/webstart/preview/440/553/*.jar | wc -l
      and got:

      But I actually have ~ 30
      I saved the logging output to javastore.log

      > grep “downloading resource” javastore.log | wc -l

      Why are the other libs not downloaded?


      Di, 15 Dez 2009 17:41:04 +0100 ==> ===========================================
      Di, 15 Dez 2009 17:41:05 +0100 ==> downloading: null/splash.png to /home/peterk/.javastore/storage/webstart/preview/440/553/splash.png
      Di, 15 Dez 2009 17:41:05 +0100 ==> URI is not absolute
      java.lang.IllegalArgumentException: URI is not absolute
      at java.net.URI.toURL(URI.java:1080)
      at com.sun.appstore.client.product.webstart2.Utils.downloadFile(Utils.java:68)
      at com.sun.appstore.client.product.webstart2.Utils.downloadFile(Utils.java:62)
      at com.sun.appstore.client.product.webstart2.Utils.downloadFile(Utils.java:53)
      at com.sun.appstore.client.product.webstart2.JNLPProduct.preview(JNLPProduct.java:247)
      at com.sun.appstore.client.product.ProductManager.previewProduct(ProductManager.java:379)
      at com.sun.appstore.client.gui.model.PreviewTaskRunnable.run(PreviewTaskRunnable.java:30)
      at com.sun.javafx.async.TaskImpl.run(Unknown Source)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
      at java.util.concurrent.FutureTask.run(FutureTask.java:138)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java.lang.Thread.run(Thread.java:619)

    5. again
      rm -rf .javastore
      javaws -uninstall

      and I re-added the jars from scratch with some text notes 😉

      And I could now change the type from sandbox to full permission. This was not possible for the first version? Why?

      If I now launch ‘preview’ the logging says:

      15.12.2009 18:15:04 com.sun.services.appstore.appwrapper.Main launchApp
      WARNUNG: An error occurred while launching with 1.2 method, attempting 1.1 method

      WARNUNG: An error occurred while launching with plain java method
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

      Caused by: java.lang.NoClassDefFoundError: javolution/util/FastMap
      at de.timefinder.core.springrc.AbstractSettings.(AbstractSettings.java:43)

      but now I am very sure that javolution was added via warehouse. Or does JavaStore not allow to use an alternative Map implementation 😉
      But again not all jars are under .javastore/storage/webstart/preview/440/553

      Giving up for now 😦

    6. All the jar files that you submitted should be use and take precedence. We will look into your issue.

    Comments are closed.