Menu

#1161 Migrated new Mac

next release
closed
nobody
MacOSX (7)
1
2017-07-11
2013-06-04
Tommaso
No

Hi, i have just migrated to a new Mac, from 10.5 to 10.7.
I have installed the new version of Jabref, and imported user preferences from old machine.
I use to use Jabref daily on the old machine, but now i am not able to launch the program and get the following error message:
java.lang.OutOfMemoryError: Java heap space at java.util.TreeSet. (TreeSet.java:107) at net.sf.jabref.autocompleter.AbstractAutoCompleter.addWordToIndex(AbstractAutoCompleter.java:129) at net.sf.jabref.BasePanel.addJournalListToAutoCompleter(BasePanel.java:2123) at net.sf.jabref.BasePanel.instantiateAutoCompleters(BasePanel.java:2092) at net.sf.jabref.BasePanel.setupMainPanel(BasePanel.java:2047) at net.sf.jabref.BasePanel.init(BasePanel.java:262) at net.sf.jabref.BasePanel. (BasePanel.java:242) at net.sf.jabref.JabRefFrame.addTab(JabRefFrame.java:1711) at net.sf.jabref.JabRefFrame.addParserResult(JabRefFrame.java:1470) at net.sf.jabref.JabRef.openWindow(JabRef.java:777) at net.sf.jabref.JabRef. (JabRef.java:188) at net.sf.jabref.JabRef.main(JabRef.java:84) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at net.sf.jabref.JabRefMain.main(Unknown Source)

Java Version: 1.6.0_45
Java Vendor: Apple Inc.
Operating System: Mac OS X (10.7.5)
Hardware Architecture: x86_64

Please help!
i need to get this running quite quickly (as i said i use it daily)

Many thanks,
Tommaso

Discussion

1 2 > >> (Page 1 of 2)
  • Morten Omholt Alver

    What you are seeing is an out of memory error that comes when the heap space reserved by the JVM is exceeded. This could be caused by a bug, but it could also simply be too little heap space. Is JabRef loading a lot of entries (big bib files) on startup? What happens if you try to start JabRef without loading any bib files (if you don't want to mess with command line options you can do this by moving/renaming the files that JabRef is trying to load on startup)?

    The amount of heap space can be increased, but at the moment I'm not sure where you should go in a Mac OS X installation of JabRef to change this.

     
  • Tommaso

    Tommaso - 2013-06-08

    Thanks Morten,
    sorry for the late reply, i was out of office.
    i have checked for a while on the web, because i use Jabref so extensively, that it would really sad if i had to drop it. I find it a really good program, at least for my needs (writing papers and storing research material).
    Coming to the problem. What i find strange is that i just migrated form a Mac OSX 10.5. I do have quite a few bib files loaded at startup (this is one of the very nice features!! as i do not have to remember where these files are stored), around 30. But as i said, i had no problem in leading them in Leopard.... Is it realistic that this is now a problem in Mac OSX 10.7 with double the RAM?

    I will try what you suggest anyway. However, i would rather prefer using command lines to start a "safe" version with no files loaded than having to find and rename all bib files.

    In case this may help, the short term quick work around is using the following command line (found after some google search): "java -jar -Xms128m -Xmx512m /Applications/JabRef.app/Contents/Resources/Java/JabRef-2.9.2.jar" where "Xms..." are the min and max heap space i think. This loads Jabref correctly, but i would like to fix the problem and have Jabref running as i use to do.
    This may help to find out how to change heap space in jabref for Mac OS X?

    Many thanks for the support and overall for the very good application. Looking forward to solving this (hoping it is useful for other users)

    Tommaso

     
  • Morten Omholt Alver

    Since the use of -Xmx works, I believe it may be simply a matter of the default heap limit being too small. Moving to a new version of OSX, there might be some differences in the JVM version, how much memory the JVM uses for standard libraries, and there may even be a difference in the default heap space limit (although it sounds unlikely they set it lower). I believe we have no heap space setting in the startup command for JabRef (although I'm not 100% aware of how we launch JabRef on OSX), so the default limit should be the one you normally get.

    Your workaround was precisely what I had in mind, and it should be possible to make it run with a higher heap limit by default.

     
  • Oliver Kopp

    Oliver Kopp - 2013-06-08

    I don't quite understand the solution as our launch4j settings are "initial heap size": 32 MB and "max heap size": 512 MB. We could try to insert a "JAVA_OPTS" environment variable in "Set env. variables" at jabref-launch4j.xml.

     
  • Morten Omholt Alver

    Hm, could it be that the settings in launch4j for some reason don't work in the newer OSX version?

     
  • Tommaso

    Tommaso - 2013-06-08

    Thanks to both.
    If i get it right, jabref should already have an option to use between 32 and 512 MB (basically the command line i use as workaround to launch it).
    I actually find it strange that my 30 bib files reach 32MB. One of the largest ones is 260kb. And even if this were the average size, i would not reach 32MB.
    Any idea on how to launch a version of jabref without loading files with command lines? Doing this should give some more info on what goes wrong.

    I am less clear on what i should do next. Are you testing the loading of heap options in the new jabref for Mac OS X?

    Thanks,
    tommaso

     
  • Morten Omholt Alver

    You can use the -b option to prevent loading of any files on startup.

    The memory use when loading a bib file isn't directly comparable to the disk space used by the file. For instance, strings are internally represented using Unicode (16 bit per character) while the bib file is probably stored more efficiently. Also, there is some extra stuff - handles for GUI elements, indexed words for autocompleters, and things like that which need additional memory.

     
  • Tommaso

    Tommaso - 2013-06-09

    Thanks you Morten.
    Could please suggest the entire command line i should use?
    "java" followed by option "-b" returns an unrecognized command message.
    Cheers,
    tommaso

     
  • Morten Omholt Alver

    Put it at the end, after the path to the JabRef jar file. The initial arguments go to the JVM, while the ones at the end go to JabRef.

     
  • Tommaso

    Tommaso - 2013-06-09

    Ok, it is opening with no problem when no entry is included at startup.
    However, i do get a strange message saying:
    WARNING: You are not running a Java version from Oracle (or Sun Microsystems).
    Your java vendor is: Apple Inc.
    If JabRef crashes please consider switching to an Oracle Java Runtime.
    See http://jabref.sf.net/faq.php for more information.
    If i test the version of Java on the Java page it says:
    Vendor: Oracle corporation
    Version: Java SE7 update 21

    I am not sure what the problem is.

    Anyway, how do i resolve the heap size problem so that i can run Java without using command lines with the heap option every time?

    Many thanks,
    tommaso

     
  • Morten Omholt Alver

    Oliver: unless I'm mistaken we don't use Launch4j for the Mac package?

    Tommaso: As far as I can tell, we can add JVM options when packaging the Mac version with jarbundler. I can make a test version based on our current beta version - would you be willing to test if that one solves your problem?

     
  • Oliver Kopp

    Oliver Kopp - 2013-06-12

    Morten: You're right. I had it wrong in my memories. Sorry!

     
  • Tommaso

    Tommaso - 2013-06-15

    Hi Morten,
    sure, i am happy to test if a new version with jarbundler works fine.
    I am using 2.9.2 now.
    Please let me know if there is anything else you need to know, and i should proceed.
    Many thanks,
    tommaso

     
  • Morten Omholt Alver

    Ok, I've put a test version here:
    https://dl.dropboxusercontent.com/u/15909095/JabRef-2.10b2-OSX.zip

    This is a preview of the 2.10 beta 2 version, so make sure to back up your files before using this version!

     
  • Tommaso

    Tommaso - 2013-06-15

    Thanks. I have tried 2.10 and it seems to work well. No heap issues.
    However, there is an alert window that opens up when the program is opened, but it disappears immediately. No chance to see what it says.

    There are two more bugs, experienced also when i was launching 2.9.2 with the command line: When i add a new entry, apparently nothing happens. In fact, an empty entry is created at the end of the file. I must then go there, double click and start entering the info (or paste the bibtex source). This also implies that no "Owner" and "Timestamp" is included.
    Moreover, pasting the bibtex source in the source window now always gives an error (ADDED_ENTRY), as if there was a mistake in the bibtex source. I am quite sure there is no mistake in the source (i have now had this every time i insert a bibtex code), and i did not manage to find a way out.

    Would be good to fix these three bugs when possible.

    Many thanks,
    tommaso

     
  • Morten Omholt Alver

    I don't have any immediate ideas on the bugs you mention. But, have you looked at the error console? (Help -> Show error console -> Exceptions tab). After seeing the three bugs, please check if there is any information in the exceptions tab, and post it here if so - this might help track down what has happened.

     
  • Tommaso

    Tommaso - 2013-06-16

    Ok, so
    when i first launch the program, under Output i have the following errors
    "unable to initialize jndi context"
    "reading config file 'RestConfig.cfg' from classloader -> nowhere (not found)"
    under Exceptions i have the following exception
    * "This version of Mac OS X does not support the Apple EAWT. Application Menu handling has been disabled (java.lang.ClassNotFoundException: osxadapter.OSXAdapter)"

    When i add a new entry, i get the following exception

    Exception in thread "AWT-EventQueue-0" java.lang.NoSuchFieldError: ADDED_ENTRY
    at org.bibsonomy.plugin.jabref.listener.PluginDataBaseChangeListener.databaseChanged(PluginDataBaseChangeListener.java:57)
    at net.sf.jabref.BibtexDatabase.fireDatabaseChanged(BibtexDatabase.java:591)
    at net.sf.jabref.BibtexDatabase.insertEntry(BibtexDatabase.java:234)
    at net.sf.jabref.BasePanel.newEntry(BasePanel.java:1802)
    at net.sf.jabref.JabRefFrame$NewEntryAction.actionPerformed(JabRefFrame.java:1220)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    at javax.swing.AbstractButton.doClick(AbstractButton.java:389)
    at javax.swing.AbstractButton.doClick(AbstractButton.java:337)
    at javax.swing.plaf.basic.BasicMenuItemUI$Actions.actionPerformed(BasicMenuItemUI.java:778)
    at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1645)
    at javax.swing.JComponent.processKeyBinding(JComponent.java:2859)
    at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:670)
    at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:678)
    at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:678)
    at javax.swing.JMenuBar.processKeyBinding(JMenuBar.java:649)
    at javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:267)
    at javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:254)
    at javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.java:2936)
    at javax.swing.JComponent.processKeyBindings(JComponent.java:2928)
    at javax.swing.JComponent.processKeyEvent(JComponent.java:2822)
    at java.awt.Component.processEvent(Component.java:6159)
    at java.awt.Container.processEvent(Container.java:2083)
    at java.awt.Component.dispatchEventImpl(Component.java:4744)
    at java.awt.Container.dispatchEventImpl(Container.java:2141)
    at java.awt.Component.dispatchEvent(Component.java:4572)
    at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1856)
    at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:722)
    at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1000)
    at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:865)
    at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:686)
    at java.awt.Component.dispatchEventImpl(Component.java:4616)
    at java.awt.Container.dispatchEventImpl(Container.java:2141)
    at java.awt.Window.dispatchEventImpl(Window.java:2489)
    at java.awt.Component.dispatchEvent(Component.java:4572)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:710)
    at java.awt.EventQueue.access$400(EventQueue.java:82)
    at java.awt.EventQueue$2.run(EventQueue.java:669)
    at java.awt.EventQueue$2.run(EventQueue.java:667)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
    at java.awt.EventQueue$3.run(EventQueue.java:683)
    at java.awt.EventQueue$3.run(EventQueue.java:681)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:680)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

    If i do copy and paste of an existing entry i get:

    java.lang.NoSuchFieldError: ADDED_ENTRY
    at org.bibsonomy.plugin.jabref.listener.PluginDataBaseChangeListener.databaseChanged(PluginDataBaseChangeListener.java:57)
    at net.sf.jabref.BibtexDatabase.fireDatabaseChanged(BibtexDatabase.java:591)
    at net.sf.jabref.BibtexDatabase.insertEntry(BibtexDatabase.java:234)
    at net.sf.jabref.BasePanel$8.action(BasePanel.java:621)
    at net.sf.jabref.BasePanel.runCommand(BasePanel.java:1666)
    at net.sf.jabref.BasePanel$43.actionPerformed(BasePanel.java:1984)
    at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1645)
    at javax.swing.JComponent.processKeyBinding(JComponent.java:2859)
    at javax.swing.JTable.processKeyBinding(JTable.java:5243)
    at javax.swing.JComponent.processKeyBindings(JComponent.java:2905)
    at javax.swing.JComponent.processKeyEvent(JComponent.java:2822)
    at java.awt.Component.processEvent(Component.java:6159)
    at java.awt.Container.processEvent(Container.java:2083)
    at java.awt.Component.dispatchEventImpl(Component.java:4744)
    at java.awt.Container.dispatchEventImpl(Container.java:2141)
    at java.awt.Component.dispatchEvent(Component.java:4572)
    at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1856)
    at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:722)
    at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1000)
    at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:865)
    at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:686)
    at java.awt.Component.dispatchEventImpl(Component.java:4616)
    at java.awt.Container.dispatchEventImpl(Container.java:2141)
    at java.awt.Window.dispatchEventImpl(Window.java:2489)
    at java.awt.Component.dispatchEvent(Component.java:4572)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:710)
    at java.awt.EventQueue.access$400(EventQueue.java:82)
    at java.awt.EventQueue$2.run(EventQueue.java:669)
    at java.awt.EventQueue$2.run(EventQueue.java:667)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
    at java.awt.EventQueue$3.run(EventQueue.java:683)
    at java.awt.EventQueue$3.run(EventQueue.java:681)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:680)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

    But for copying a bibtex source, i do not get anything in the Exceptions tab. I only get the error window: "Problems with parsing entry", "ERROR: ADDED_ENTRY"
    However, if click on Edit a sufficient number of time, the bibtex source code is eventually accepted. In other words, i have to click on any other tab of the new entry (e.g. Required Fields), the error message is shown, i click edit and go back to BibTex source, click once more on Required Fields, same error message, back to BibTex source. This for a number of time until the entry is eventually accepted.
    This might be related to the fact that, i note, Bibtex sources now have a particular format in Jabref, such as:
    @Article{DW13,
    Title = {Firm R\&D, Absorptive Capacity and Learning by Exporting: Firm-level Evidence from China},
    Author = {Dai, Mi and Yu, Miaojie},
    Journal = {The World Economy},
    Year = {2013},
    Pages = {no--no},

    Abstract = {The absorptive capacity of firms developed through R&D promotes learning by exporting. In this paper, we estimate the instantaneous and long-run productivity effects of exporting on the universe of Chinese manufacturing firms. We find that exporting has very different productivity effects for firms with different pre-export R&D status. It has large and lasting productivity effects for firms with pre-export R&D, while it has little effects for firms without pre-export R&D. Furthermore, the effect of exporting increases with the number of years of pre-export R&D investment.},
    Doi = {10.1111/twec.12014},
    ISSN = {1467-9701},
    Publisher = {Blackwell Publishing Ltd},
    Url = {http://dx.doi.org/10.1111/twec.12014}
    }

    while they use to be in no particular format before, such as

    @article {DW13,
    author = {Dai, Mi and Yu, Miaojie},
    title = {Firm R&D, Absorptive Capacity and Learning by Exporting: Firm-level Evidence from China},
    journal = {The World Economy},
    publisher = {Blackwell Publishing Ltd},
    issn = {1467-9701},
    url = {http://dx.doi.org/10.1111/twec.12014},
    doi = {10.1111/twec.12014},
    pages = {no--no},
    year = {2013},
    abstract = {The absorptive capacity of firms developed through R&D promotes learning by exporting. In this paper, we estimate the instantaneous and long-run productivity effects of exporting on the universe of Chinese manufacturing firms. We find that exporting has very different productivity effects for firms with different pre-export R&D status. It has large and lasting productivity effects for firms with pre-export R&D, while it has little effects for firms without pre-export R&D. Furthermore, the effect of exporting increases with the number of years of pre-export R&D investment.},
    }

    In short, it seems like every time the error message on the tex sources pops up, and i click twice on edit, Jabref formats one row, pushes me back to the source, i click again on Required fields, error, two clicks on Edit, a new row is formatted, back to tex source, and so on until all rows are formatted by Jabref in the nicely tabbed way copied above.

    I hope this helps sorting out the bugs.
    Thanks,
    tommaso

     
  • Morten Omholt Alver

    Thanks for the information. The add entry action apparently triggers some problem in the Bibsonomy plugin, which you presumably have installed. I can't help with debugging the plugin, so I'd like to see what happens if you try the same after uninstalling the plugin?

     
  • Tommaso

    Tommaso - 2013-06-16

    Ok, i have removed the bibsonomy and OO plunging.
    When launching Jabref, i get in the Output tab the following error:
    Could not get key binding for "Open folder"

    In the Exceptions, the same message:
    This version of Mac OS X does not support the Apple EAWT. Application Menu handling has been disabled (java.lang.ClassNotFoundException: osxadapter.OSXAdapter)
    java.util.zip.ZipException: error in opening zip file
    at java.util.zip.ZipFile.open(Native Method)
    at java.util.zip.ZipFile.<init>(ZipFile.java:127)
    at java.util.jar.JarFile.<init>(JarFile.java:136)
    at java.util.jar.JarFile.<init>(JarFile.java:100)
    at net.sf.jabref.plugin.PluginInstaller.unpackPluginXML(PluginInstaller.java:416)
    at net.sf.jabref.plugin.PluginInstaller.getNameAndVersion(PluginInstaller.java:389)
    at net.sf.jabref.plugin.PluginInstaller.findInstalledPlugins(PluginInstaller.java:475)
    at net.sf.jabref.plugin.ManagePluginsDialog.buildList(ManagePluginsDialog.java:173)
    at net.sf.jabref.plugin.ManagePluginsDialog.<init>(ManagePluginsDialog.java:81)
    at net.sf.jabref.plugin.PluginInstallerAction.actionPerformed(PluginInstallerAction.java:48)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    at javax.swing.AbstractButton.doClick(AbstractButton.java:389)
    at com.apple.laf.ScreenMenuItem.actionPerformed(ScreenMenuItem.java:95)
    at java.awt.MenuItem.processActionEvent(MenuItem.java:650)
    at java.awt.MenuItem.processEvent(MenuItem.java:609)
    at java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:343)
    at java.awt.MenuComponent.dispatchEvent(MenuComponent.java:331)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:713)
    at java.awt.EventQueue.access$400(EventQueue.java:82)
    at java.awt.EventQueue$2.run(EventQueue.java:669)
    at java.awt.EventQueue$2.run(EventQueue.java:667)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
    at java.awt.EventQueue$3.run(EventQueue.java:683)
    at java.awt.EventQueue$3.run(EventQueue.java:681)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)

    Adding a new entry now works correctly:
    a new entry template is created, with owner and timestamp recorded: no Exceptions.

    Also copying a BibTex source in the tab also works correctly now: if the code is correct, no error message is displayed.

    Great!

    One strange thing though is that i still have the bibsonomy tab in the entries. Not a big deal though as this makes up for keywords.

    One more disturbing bug is that now when i close the program i get no warning that one or more of the modified files have not been saved. And when i open Jabref again there is no recovery message: new entries are simply lost. I think that the warning is useful.

    Thanks, hope this helps refining even more.
    tommaso

     
  • Morten Omholt Alver

    You're certainly supposed to get a warning before closing if your files have not been saved.

     
  • Morten Omholt Alver

    Could you try to reproduce this while running from the command line? This would make it possible to see in the terminal if any error messages are written at the point where you close the program (and it should ask you about unsaved files).

     
  • Tommaso

    Tommaso - 2013-06-16

    Mh, if i run jab ref 2.10b2 from the command line i get the heap problem...
    Output below:
    WARNING: You are not running a Java version from Oracle (or Sun Microsystems).
    Your java vendor is: Apple Inc.
    If JabRef crashes please consider switching to an Oracle Java Runtime.
    See http://jabref.sf.net/faq.php for more information.

    Found 2 plugin(s):
    - net.sf.jabref.core (jar:file:/Applications/JabRef-2.10.app/Contents/Resources/Java/JabRef-2.10b2.jar!/plugins/net.sf.jabref.core/plugin.xml)
    - net.sf.jabref.export.misq (jar:file:/Applications/JabRef-2.10.app/Contents/Resources/Java/JabRef-2.10b2.jar!/plugins/net.sf.jabref.export.misq/plugin.xml)

    Opening: ... all different bib files
    ...
    ...

    Could not get key binding for "Open folder"
    This version of Mac OS X does not support the Apple EAWT. Application Menu handling has been disabled (java.lang.ClassNotFoundException: osxadapter.OSXAdapter)

    ERROR while starting or running JabRef:

    java.lang.OutOfMemoryError: Java heap space
    at java.util.TreeMap.put(TreeMap.java:554)
    at java.util.TreeSet.add(TreeSet.java:238)
    at net.sf.jabref.autocompleter.AbstractAutoCompleter.addWordToIndex(AbstractAutoCompleter.java:126)
    at net.sf.jabref.BasePanel.addJournalListToAutoCompleter(BasePanel.java:2179)
    at net.sf.jabref.BasePanel.instantiateAutoCompleters(BasePanel.java:2148)
    at net.sf.jabref.BasePanel.setupMainPanel(BasePanel.java:2104)
    at net.sf.jabref.BasePanel.init(BasePanel.java:277)
    at net.sf.jabref.BasePanel.<init>(BasePanel.java:257)
    at net.sf.jabref.JabRefFrame.addTab(JabRefFrame.java:1754)
    at net.sf.jabref.JabRefFrame.addParserResult(JabRefFrame.java:1511)
    at net.sf.jabref.JabRef.openWindow(JabRef.java:790)
    at net.sf.jabref.JabRef.<init>(JabRef.java:201)
    at net.sf.jabref.JabRef.main(JabRef.java:84)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at net.sf.jabref.JabRefMain.main(Unknown Source)

    Puzzled... thanks,
    tommaso

     
  • Morten Omholt Alver

    The heap problem is avoided when running in the ordinary way, because the argument "-Xmx525M" is added by the launcher. However, when running from the terminal you need to add that yourself (e.g. right after the "java" command).

    Regarding the Apple EAWT stuff, this is difficult. Apple seems to change their interface for Java applications now and then - we received a patch for this half a year ago, and as far as I can tell that patch has been applied. This message could indicate that there is a problem with handling OS events properly, but it's a little hard to debug since I don't have access to a Mac.

    In what way are you shutting down JabRef? If you do it by closing the window, the EAWT problem could cause an improper shutdown. Try to shut down using Quit in the File menu. This should hook directly into JabRef's shutdown routine. Does it handle unsaved files properly in this case?

     
  • Tommaso

    Tommaso - 2013-06-16

    Ok, sorry.
    when i launch jabref normally, change, and shut down, i normally use cmd+Q. This does not prompt to save. Nor does the File->Quit option. But when i reopen now it says there is an autosave file, remained due to non correct exit from the program, and i can recover changes from there. So this works, but it is not very convenient.

    Now i launch form the command line:
    A part from the EAWT problem i get the following errors:

    Jun 16 16:55:15 User.local java[1261] <Error>: CGContextGetCTM: invalid context 0x0
    Jun 16 16:55:15 User.local java[1261] <Error>: CGContextSetBaseCTM: invalid context 0x0
    Jun 16 16:55:15 User.local java[1261] <Error>: CGContextGetCTM: invalid context 0x0
    Jun 16 16:55:15 User.local java[1261] <Error>: CGContextSetBaseCTM: invalid context 0x0

    If i quit from Jabref, nothing is printed on the command line.

    Am i using a wrong procedure?

    Please let me know if there is any other way to test the EAWT and get this right for a safe version of jabref (i understand this may be problematic with so many different changing platforms)
    tommaso

     
  • Morten Omholt Alver

    Thanks again - no, you're not doing anything wrong. I don't understand what happens to the quit procedure, but I can make a test version that writes some status information to the terminal. When testing that we could learn more about what goes on.

     
1 2 > >> (Page 1 of 2)

Log in to post a comment.