Menu

Corrupt AoI File

Help
2015-07-07
2015-07-12
  • Nathan Ryan

    Nathan Ryan - 2015-07-07

    I have a corrupt AoI file. I'm not sure what's wrong with it, but it won't open any more. The "wait spinner" just keeps turning and nothing ever happens. I've also tried linking to an external object in the file and that doesn't work. Is there any way to debug or recover the file? Or am I just out of luck.

     
  • Luke S

    Luke S - 2015-07-10

    Hi, Nathan. Sorry I missed this.

    Couple of things to try:

    First, check your console output, or install the log plugin. It would be good to know what AOI thinks is happening.

    Second, If the stuff in there is not private, could you post the file? Its a lot easier to find what is going on if we can experiment.

    Third, have you changed anything else about AOI recently?

     
  • Nathan Ryan

    Nathan Ryan - 2015-07-10

    I'm using a later (3.02) version than the one I used to create the file (not sure which). Also, I have not as yet installed nor used any add-ons or scripts that I had in the earlier version. I'll post the file as well.
    Here's the complete contents of the console screen (sorry for the length):
    C:\Users\nate\Programs\ArtOfIllusion302a>java -jar ArtOfIllusion.jar -Xmx5120m
    PostInstall: tempDir is C:\Users\nate\AppData\Local\Temp\spmanager-temp-nate-110
    7622761276369008
    PostInstall: deleting C:\Users\nate\AppData\Local\Temp\spmanager-temp-nate-11076
    22761276369008\Objects
    PostInstall: deleting C:\Users\nate\AppData\Local\Temp\spmanager-temp-nate-11076
    22761276369008\Plugins
    PostInstall: deleting C:\Users\nate\AppData\Local\Temp\spmanager-temp-nate-11076
    22761276369008\Startup
    PostInstall: deleting C:\Users\nate\AppData\Local\Temp\spmanager-temp-nate-11076
    22761276369008\Tools
    PostInstall: deleting C:\Users\nate\AppData\Local\Temp\spmanager-temp-nate-11076
    22761276369008
    SPManager starting...
    file: helpgui-1.1b.jar
    file: pircbot.jar
    file: jhall.jar
    file: jhelpaction.jar
    file: AOIHelp.zip
    SPM: adding path: file:/C:/Users/nate/Programs/ArtOfIllusion302a/Plugins/Help/pi
    rcbot.jar
    SPM: adding path: file:/C:/Users/nate/Programs/ArtOfIllusion302a/Plugins/Help/jh
    elpaction.jar
    SPM: adding path: file:/C:/Users/nate/Programs/ArtOfIllusion302a/Plugins/Help/AO
    IHelp.zip
    SPM: adding path: file:/C:/Users/nate/Programs/ArtOfIllusion302a/Plugins/Help/he
    lpgui-1.1b.jar
    SPM: adding path: file:/C:/Users/nate/Programs/ArtOfIllusion302a/Plugins/Help/jh
    all.jar
    file: PostInstall.jar
    SPManager: java temp dir is C:\Users\nate\AppData\Local\Temp\ SPManager: temp dir set to: C:\Users\nate\AppData\Local\Temp\spmanager-temp-nate
    -1514319376829470940
    java.io.FileNotFoundException: -Xmx5120m (The system cannot find the file specif
    ied)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(Unknown Source)
    at java.io.FileInputStream.<init>(Unknown Source)
    at artofillusion.Scene.<init>(Scene.java:1150)
    at artofillusion.ArtOfIllusion.main(ArtOfIllusion.java:223)
    Error creating GLCanvasDrawer: java.lang.UnsatisfiedLinkError: no jogl in java.l
    ibrary.path
    Jul 10, 2015 12:34:40 AM java.util.prefs.WindowsPreferences <init>
    WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0
    x80000002. Windows RegCreateKeyEx(...) returned error code 5.
    HelpPlugin.ADD: helpset/AOIHelp
    resources found=1
    registering Docking.Score
    component= buoyx.docking.DockableWidget$DockableWidgetPanel
    Mapped ID=Docking.Score
    registering Docking.Objects
    component= buoyx.docking.DockableWidget$DockableWidgetPanel
    Mapped ID=Docking.Objects
    registering Docking.Properties
    component= buoyx.docking.DockableWidget$DockableWidgetPanel
    Mapped ID=Docking.Properties
    registering LayoutWindow
    component= buoy.widget.BFrame$BFrameComponent
    Mapped ID=LayoutWindow
    java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
    at java.util.Vector.elementAt(Unknown Source)
    at artofillusion.Scene.initFromStream(Scene.java:1345)
    at artofillusion.Scene.<init>(Scene.java:1174)
    at artofillusion.ArtOfIllusion.openScene(ArtOfIllusion.java:551)
    at artofillusion.ArtOfIllusion.openScene(ArtOfIllusion.java:539)
    at artofillusion.LayoutWindow.actionPerformed(LayoutWindow.java:1397)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at buoy.internal.EventLinkRecord.dispatchEvent(EventLinkRecord.java:81)
    at buoy.event.EventSource.dispatchEvent(EventSource.java:140)
    at buoy.widget.Widget.dispatchEvent(Widget.java:326)
    at buoy.widget.BMenuItem$1.actionPerformed(BMenuItem.java:93)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.AbstractButton.doClick(Unknown Source)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown
    Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
    ce)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
    ce)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
    ce)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

     
  • chris w

    chris w - 2015-07-11

    Hi nathan,

    the marbles.aoi you posted is an empty file.
    view with fileviewer or wordpad etc.

     
  • Luke S

    Luke S - 2015-07-11

    Yeah, Not sure how, but that file is completely bricked. 6.5MB of... empty space. There is literally no data to try to recover.

    As a side note, you stdout listing pointed out a couple of things that could cause you issues in the future. ArtOfIllusion302a>java -jar ArtOfIllusion.jar -Xmx5120m is a bit backwards. The correct sequence is ArtOfIllusion302a>java -Xmx5120m -jar ArtOfIllusion.jar and if you want to be able to use the jogl interactive renderer, you need something slightly more.

    As is, your AOI launch is using standard JVM default memory settings, and looking for a file called -Xmx5120m

     
  • Nathan Ryan

    Nathan Ryan - 2015-07-11

    Thanks for looking at it anyway. I didn't know the order of params mattered. I'll give it a try. I would be interested in using the jogl interactive renderer too. Can you point me to more info?

     
  • Luke S

    Luke S - 2015-07-12

    You just need another property to tell the JVM where to get at the native libraries. Looks like this: javaw -Xmx4096m -Djava.library.path=./lib -jar ArtOfIllusion.jar 1>log.txt 2>errlog.txt

    Adjust your memory amount to taste, of course.

    AFAIK, order of options doesn't make a difference, except that anything after -jar myjarfile.jar or the equivalent class entry point are passed to the java app's Main() method. Some java programs may very well be picky about the order those options are set in.

    The 1>log.txt 2>errlog.txt bit redirects command line output to a pair of files. Most of the time, including exceptions, etc. that AOI can continue after, are sent to log.txt. errlog Usually means something was bad enough to crash java, as well.

    I'm sorry about the file. I hope some of the work is backed up in other places. This incident has pointed out something that we could improve. Though there is no way to recover data from a completely empty file, AOI should give a readable warning in such a case, and then move on, rather than sitting, waiting for something that is never going to happen.

     
  • Nathan Ryan

    Nathan Ryan - 2015-07-12

    Thanks for all the help and advice Luke. You went well above and beyond.

     

Log in to post a comment.