Unable to run Oxygen from IDE

Oxygen general issues.
bugi
Posts: 7
Joined: Wed Aug 21, 2013 3:33 pm

Unable to run Oxygen from IDE

Post by bugi »

Hi guys,

Trying to launch Oxygen from inside IDE and it crashes.

My setup: Mac OSX 10.8.4, Java 1.6.0_51, IntelliJ IDEA 12

Main class:
ro.sync.exml.Oxygen

VM params:
-Dcom.oxygenxml.app.descriptor=ro.sync.exml.EditorFrameDescriptor -Xmx1024m -XX:MaxPermSize=256m -Dcom.oxygenxml.editor.plugins.dir=resources_debug

Getting exception:
ava.lang.ClassNotFoundException: com.sun.deploy.services.MPlatformService
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:171)
at com.sun.deploy.services.ServiceManager.setService(ServiceManager.java:57)
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 ro.sync.net.protocol.http.d.e(Unknown Source)
at ro.sync.net.protocol.http.d.g(Unknown Source)
at ro.sync.net.protocol.http.d.c(Unknown Source)
at ro.sync.net.protocol.Installer.installProtocols(Unknown Source)
at ro.sync.ui.application.ApplicationLauncher.<clinit>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at ro.sync.exml.Oxygen.main(Unknown Source)
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 com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)


MPlatformService is a class that encapsulates the general service on Unix for standalone application on J2SE v1.5.x or later.
This class is part of deploy.jar (part of Java distribution)
I looked inside the jar and figured that I have MacOSXPlatformService instead which makes sense since I have Mac and not a Unix like machine.

If this is something you ave seen before, please, let me know
Appreciate
adrian
Posts: 2879
Joined: Tue May 17, 2005 4:01 pm

Re: Unable to run Oxygen from IDE

Post by adrian »

Hi,

As a check, try running Oxygen with the command line startup script, oxygenMac.sh. Does that work?
If that works, check your command line arguments against the ones from the .sh.
My guess is it's -Dcom.oxygenxml.editor.plugins.dir=resources_debug. Use an absolute path as the value.
e.g. -Dcom.oxygenxml.editor.plugins.dir=/path/to/my/plugin/resources_debug

Regards,
Adrian
Adrian Buza
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com
bugi
Posts: 7
Joined: Wed Aug 21, 2013 3:33 pm

Re: Unable to run Oxygen from IDE

Post by bugi »

Thanks for an instant response!
I tried your suggestions. The shell script works fine, the editor is getting opened and the plugin I deploy under Oxygen works fine.
The only thing that is not working is Oxygen launched from IDE.

Is anyone using Mac for Oxygen plugin development? Does it work for you?

I do have same exact setup under my Window box and everything works just fine.
adrian
Posts: 2879
Joined: Tue May 17, 2005 4:01 pm

Re: Unable to run Oxygen from IDE

Post by adrian »

Hi,

What version of Oxygen are you trying to run?
Do you have a log4j.properties configured for debug in the Oxygen folder?

That ClassNotFoundException was logged silently on debug in older versions of Oxygen. However, that exception is of no consequence, it does not affect the application startup. Your startup problem lies elsewhere. Are there other errors or exceptions?

Make sure you don't have another instance of Oxygen running at the same time. Otherwise, the new instance will simply quit after showing a quick message saying Opening files in the running <oXygen/> XML Editor.
You can use the -Dcom.oxygenxml.MultipleInstances=true parameter to force multiple instances, if that's the problem. Note that the Oxygen options don't get synced between multiple running instances.

Regards,
Adrian
Adrian Buza
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com
bugi
Posts: 7
Joined: Wed Aug 21, 2013 3:33 pm

Re: Unable to run Oxygen from IDE

Post by bugi »

Thanks a lot Adrian in taking a personal interest in this :).

I have a single instance of Oxygen at any given time.
The end result is that Oxygen starts and functioning properly, but my plugin is not there.
You are absolutely right, ClassNotFoundException is a first exception in a long chain of other exceptions preventing my plugin from being debugged.
I asked my co-worker to make similar setup on his Mac and we got same exact result :(

Here is a chain:
java.lang.NullPointerException
at com.sun.deploy.net.proxy.DynamicProxyManager.reset(DynamicProxyManager.java:250)

at com.sun.deploy.net.proxy.DeployProxySelector.reset(DeployProxySelector.java:60)
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 ro.sync.net.protocol.http.d.e(Unknown Source)
at ro.sync.net.protocol.http.d.g(Unknown Source)
at ro.sync.net.protocol.http.d.c(Unknown Source)
at ro.sync.net.protocol.Installer.installProtocols(Unknown Source)
at ro.sync.ui.application.ApplicationLauncher.<clinit>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at ro.sync.exml.Oxygen.main(Unknown Source)
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 com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

java.lang.ClassCastException: com.kipcast.oxygen.plugins.validation.EditorValidationPlugin cannot be cast to ro.sync.exml.plugin.PluginExtension
at ro.sync.exml.plugin.PluginManager.f(Unknown Source)
at ro.sync.exml.plugin.PluginManager.i(Unknown Source)
at ro.sync.exml.plugin.PluginManager.<init>(Unknown Source)
at ro.sync.exml.plugin.PluginManager.getInstance(Unknown Source)
at ro.sync.exml.MainFrame.<init>(Unknown Source)
at ro.sync.exml.MainFrame.<init>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at ro.sync.ui.application.ApplicationLauncher.h(Unknown Source)
at ro.sync.ui.application.ApplicationLauncher.launch(Unknown Source)
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 ro.sync.exml.Oxygen.main(Unknown Source)
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 com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

java.lang.ClassCastException: com.kipcast.oxygen.plugins.alfresco.MyProtocolURLHandlerExtension cannot be cast to ro.sync.exml.plugin.PluginExtension
at ro.sync.exml.plugin.PluginManager.f(Unknown Source)
at ro.sync.exml.plugin.PluginManager.i(Unknown Source)
at ro.sync.exml.plugin.PluginManager.<init>(Unknown Source)
at ro.sync.exml.plugin.PluginManager.getInstance(Unknown Source)
at ro.sync.exml.MainFrame.<init>(Unknown Source)
at ro.sync.exml.MainFrame.<init>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at ro.sync.ui.application.ApplicationLauncher.h(Unknown Source)
at ro.sync.ui.application.ApplicationLauncher.launch(Unknown Source)
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 ro.sync.exml.Oxygen.main(Unknown Source)
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 com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

java.lang.ClassCastException: com.kipcast.oxygen.plugins.alfresco.MyCustomProtocolChooserExtension cannot be cast to ro.sync.exml.plugin.PluginExtension
at ro.sync.exml.plugin.PluginManager.f(Unknown Source)
at ro.sync.exml.plugin.PluginManager.i(Unknown Source)
at ro.sync.exml.plugin.PluginManager.<init>(Unknown Source)
at ro.sync.exml.plugin.PluginManager.getInstance(Unknown Source)
at ro.sync.exml.MainFrame.<init>(Unknown Source)
at ro.sync.exml.MainFrame.<init>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at ro.sync.ui.application.ApplicationLauncher.h(Unknown Source)
at ro.sync.ui.application.ApplicationLauncher.launch(Unknown Source)
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 ro.sync.exml.Oxygen.main(Unknown Source)
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 com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)


java.lang.NoSuchMethodException: com.kipcast.oxygen.plugins.WorkspaceAccessPlugin.<init>(ro.sync.exml.plugin.PluginDescriptor)
at java.lang.Class.getConstructor0(Class.java:2754)
at java.lang.Class.getConstructor(Class.java:1684)
at ro.sync.exml.plugin.PluginManager.f(Unknown Source)
at ro.sync.exml.plugin.PluginManager.i(Unknown Source)
at ro.sync.exml.plugin.PluginManager.<init>(Unknown Source)
at ro.sync.exml.plugin.PluginManager.getInstance(Unknown Source)
at ro.sync.exml.MainFrame.<init>(Unknown Source)
at ro.sync.exml.MainFrame.<init>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at ro.sync.ui.application.ApplicationLauncher.h(Unknown Source)
at ro.sync.ui.application.ApplicationLauncher.launch(Unknown Source)
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 ro.sync.exml.Oxygen.main(Unknown Source)
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 com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
adrian
Posts: 2879
Joined: Tue May 17, 2005 4:01 pm

Re: Unable to run Oxygen from IDE

Post by adrian »

Hi,

Have you tried running Oxygen from the IDE without specifying the plugins folder? Does that work correctly?
When it starts, check in Help > About, System properties, java.version what Java is Oxygen running on. Make sure your plugins are compiled with a similarly versioned Java (it's a good idea to compile them with Java 6 for best compatibility).

Are you sure that your plugins load and work correctly when running Oxygen independently from the IDE?
These ClassCastExceptions seem to indicate that the plugin extensions classes (as defined in their plugin.xml) do not implement ro.sync.exml.plugin.PluginExtension. Make sure they are each correctly defined in their plugin.xml. Maybe you defined a ro.sync.exml.plugin.Plugin as an extension, instead of a ro.sync.exml.plugin.PluginExtension ?

Later Edit:
Make sure the classpath from the IDE only contains the oxygen.jar. Do not add other jars, not even your plugins' jars. Oxygen uses a custom class loader and these extra jars can interfere with it.
Note that there are instructions in the Oxygen user manual on how to configure the plugin.xml files and the Eclipse IDE for debugging plugins. The same rules apply for IntelliJ:
http://www.oxygenxml.com/doc/ug-editor/ ... lugin.html

Regards,
Adrian
Adrian Buza
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com
bugi
Posts: 7
Joined: Wed Aug 21, 2013 3:33 pm

Re: Unable to run Oxygen from IDE

Post by bugi »

java.version 1.6.0_51, same and only java version I have installed on my Mac.
Same exact setup works on Windows with no issues, no exceptions.
Seems like I have to put my Mac aside :(

Thanks
adrian
Posts: 2879
Joined: Tue May 17, 2005 4:01 pm

Re: Unable to run Oxygen from IDE

Post by adrian »

See my later edit above.
Later Edit:
Make sure the classpath from the IDE only contains the oxygen.jar. Do not add other jars, not even your plugins' jars. Oxygen uses a custom class loader and these extra jars can interfere with it.
Note that there are instructions in the Oxygen user manual on how to configure the plugin.xml files and the Eclipse IDE for debugging plugins. The same rules apply for IntelliJ:
http://www.oxygenxml.com/doc/ug-editor/ ... lugin.html
Regards,
Adrian
Adrian Buza
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com
Post Reply