Error applying the Strategy Pack.

Post Reply
EAJoe
Posts: 14
Joined: 04 Jan 2011, 14:28

My Sysadmin provided the following, thoughts, maybe version issue? Thanks in advance:

Here is the stacktrace when running the Meta Model Update Pack python update scripts.

strategyMgtPack00.py runs without error
strategyMgtPack01.py fails and the stacktrace is attached.

>>> execfile("C:/downloads/EnterpriseArch-Downloads/StrategyMgtPack/strategyMgtPack00.py")
>>> execfile("C:/downloads/EnterpriseArch-Downloads/StrategyMgtPack/strategyMgtPack01.py")
Traceback (innermost last):
File "<string>", line 1, in ?
File "C:/downloads/EnterpriseArch-Downloads/StrategyMgtPack/strategyMgtPack01.py", line 240, in ?
File "C:/downloads/EnterpriseArch-Downloads/StrategyMgtPack/strategyMgtPack00.py", line 360, in ResetAllowedClasses
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.io.InvalidClassException: org.python.core.PyObject; local class incompatible: stream classdesc serialVersionUID = -3356332325538160899, local class serialVersionUID = 8745889115762722759 at edu.stanford.smi.protege.server.framestore.RemoteClientFrameStore.convertException(Unknown Source) at edu.stanford.smi.protege.server.framestore.RemoteClientFrameStore.createCls(Unknown Source) at edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.createCls(Unknown Source) at edu.stanford.smi.protege.model.framestore.ArgumentCheckingFrameStore.createCls(Unknown Source) at edu.stanford.smi.protege.model.framestore.ChangeMonitorFrameStore.createCls(Unknown Source) at edu.stanford.smi.protege.model.framestore.FrameStoreAdapter.createCls(Unknown Source) at edu.stanford.smi.protege.model.framestore.ImmutableNamesFrameStore.createCls(Unknown Source) at edu.stanford.smi.protege.model.DefaultKnowledgeBase.createCls(Unknown Source) at edu.stanford.smi.protege.model.DefaultKnowledgeBase.createCls(Unknown Source) at edu.stanford.smi.protege.model.DefaultKnowledgeBase.createCls(Unknown Source) at edu.stanford.smi.protege.model.DefaultKnowledgeBase.createCls(Unknown Source) at edu.stanford.smi.protege.model.DefaultKnowledgeBase.createCls(Unknown Source) 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)
java.lang.RuntimeException: java.lang.RuntimeException: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.io.InvalidClassException: org.python.core.PyObject; local class incompatible: stream classdesc serialVersionUID = -3356332325538160899, local class serialVersionUID = 8745889115762722759
exception from Jython: Traceback (innermost last):
File "<string>", line 1, in ?
File "C:/downloads/EnterpriseArch-Downloads/StrategyMgtPack/strategyMgtPack01.py", line 240, in ?
File "C:/downloads/EnterpriseArch-Downloads/StrategyMgtPack/strategyMgtPack00.py", line 360, in ResetAllowedClasses
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.io.InvalidClassException: org.python.core.PyObject; local class incompatible: stream classdesc serialVersionUID = -3356332325538160899, local class serialVersionUID = 8745889115762722759 at edu.stanford.smi.protege.server.framestore.RemoteClientFrameStore.convertException(Unknown Source) at edu.stanford.smi.protege.server.framestore.RemoteClientFrameStore.createCls(Unknown Source) at edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.createCls(Unknown Source) at edu.stanford.smi.protege.model.framestore.ArgumentCheckingFrameStore.createCls(Unknown Source) at edu.stanford.smi.protege.model.framestore.ChangeMonitorFrameStore.createCls(Unknown Source) at edu.stanford.smi.protege.model.framestore.FrameStoreAdapter.createCls(Unknown Source) at edu.stanford.smi.protege.model.framestore.ImmutableNamesFrameStore.createCls(Unknown Source) at edu.stanford.smi.protege.model.DefaultKnowledgeBase.createCls(Unknown Source) at edu.stanford.smi.protege.model.DefaultKnowledgeBase.createCls(Unknown Source) at edu.stanford.smi.protege.model.DefaultKnowledgeBase.createCls(Unknown Source) at edu.stanford.smi.protege.model.DefaultKnowledgeBase.createCls(Unknown Source) at edu.stanford.smi.protege.model.DefaultKnowledgeBase.createCls(Unknown Source) 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)
java.lang.RuntimeException: java.lang.RuntimeException: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.io.InvalidClassException: org.python.core.PyObject; local class incompatible: stream classdesc serialVersionUID = -3356332325538160899, local class serialVersionUID = 8745889115762722759
: Traceback (innermost last):
File "<string>", line 1, in ?
File "C:/downloads/EnterpriseArch-Downloads/StrategyMgtPack/strategyMgtPack01.py", line 240, in ?
File "C:/downloads/EnterpriseArch-Downloads/StrategyMgtPack/strategyMgtPack00.py", line 360, in ResetAllowedClasses
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.io.InvalidClassException: org.python.core.PyObject; local class incompatible: stream classdesc serialVersionUID = -3356332325538160899, local class serialVersionUID = 8745889115762722759 at edu.stanford.smi.protege.server.framestore.RemoteClientFrameStore.convertException(Unknown Source) at edu.stanford.smi.protege.server.framestore.RemoteClientFrameStore.createCls(Unknown Source) at edu.stanford.smi.protege.model.framestore.EventDispatchFrameStore.createCls(Unknown Source) at edu.stanford.smi.protege.model.framestore.ArgumentCheckingFrameStore.createCls(Unknown Source) at edu.stanford.smi.protege.model.framestore.ChangeMonitorFrameStore.createCls(Unknown Source) at edu.stanford.smi.protege.model.framestore.FrameStoreAdapter.createCls(Unknown Source) at edu.stanford.smi.protege.model.framestore.ImmutableNamesFrameStore.createCls(Unknown Source) at edu.stanford.smi.protege.model.DefaultKnowledgeBase.createCls(Unknown Source) at edu.stanford.smi.protege.model.DefaultKnowledgeBase.createCls(Unknown Source) at edu.stanford.smi.protege.model.DefaultKnowledgeBase.createCls(Unknown Source) at edu.stanford.smi.protege.model.DefaultKnowledgeBase.createCls(Unknown Source) at edu.stanford.smi.protege.model.DefaultKnowledgeBase.createCls(Unknown Source) 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)
java.lang.RuntimeException: java.lang.RuntimeException: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.io.InvalidClassException: org.python.core.PyObject; local class incompatible: stream classdesc serialVersionUID = -3356332325538160899, local class serialVersionUID = 8745889115762722759
>>>
User avatar
jonathan.carter
Posts: 1087
Joined: 04 Feb 2009, 15:44

I have had a look at the update script and have also tested this with the baseline repository (i.e. no extensions to the baseline meta model). No errors reported.

I agree that this looks like something to do with a version mis-match somewhere. When there's a problem with the script, e.g. trying to update a class that can't be found, the error messages do not normally show a stacktrace with the Java methods in there.

Some questions.

When your Sysadmin ran this, was it done in multi-user mode from a remote client?
Or was the server stopped and the updated applied in standalone mode? (This is the safest approach to ensure that no-one is trying to work with the repository whilst the update is applying the changes)

Unmarshalling exceptions like these are often seen when two incompatible Java environments are interacting - e.g. in multi-user mode the client running one version and the server another (which happens to be incompatible).
If the update is being applied in multi-user mode, check that the client Protege version and the server Protege version are in line. Ideally, these should both be at version 3.4.4.

Check these versions and also if these are aligned, check the Java VM versions between the two to make sure they are compatible (e.g. one is Java 1.5 the other Java 1.6) - this could be why we're seeing a unmarshalling exception.

Let me know what you find about the versions - and if you are not already, I would recommend applying update packs in Stand-Alone mode on the server. I'll check the documentation for applying updates to make this sort of thing clearer. Although there are no technical reasons why you can't run the update in multi-user (client-server) mode, leaving the repository open to modelling updates (from other users) whilst running the update could lead to unexpected results. For example, the update performs some layout changes to the forms in Protege, which would certainly be confusing for anyone trying to use them!

Jonathan
Essential Project Team
EAJoe
Posts: 14
Joined: 04 Jan 2011, 14:28

OK The pack was successfully applied, I believe the issue was that we were in mult-user mode.

New classes were added for Roadmap etc. and 2 new reports were added "Application Technology Alignment" and "Roadmap Model Catalog", however please note that "Project Technology Strategy Alignment" as demonstrated in your excellent video was NOT added.

Thanks.
EAJoe
Posts: 14
Joined: 04 Jan 2011, 14:28

We have a couple errors in the log file for the apache server and it shows errors with parsing the core_bus_proc_def.xsl file and also shows an error with a "premature end of file" but it doesn't say which file it was trying to parse, but the error message is from the XML parser.
User avatar
jonathan.carter
Posts: 1087
Joined: 04 Feb 2009, 15:44

Thanks for posting back. I'll make sure the documentation makes the recommendation about applying updates in stand-alone mode. Theoretically, it shouldn't make any difference but it looks like there might be a slight platform version (either Protege or Java) different between your client and server.

I've had a look at what Views are included in the pack. The View I was referring to that does the same as the Project Strategic Technology Alignment is actually the View:
app_tech_plat_alignment.xsl
The end result and what this View does is the same as the Project alignment View in the video. However, the entry point for the view is slightly different to that shown in the video. This view is run against a selected Application Provider (and evaluates the Technology Architecture defined in the 'depends on technology' field).
The view shown in the video takes the same Technology Architecture (a Technology Composite) but from a selected Project. Since the video was made, the Project meta model has been enhanced and the direct link from the Project to a Technology Architecture no longer exists. Not all Projects will have Technology, so now the Projects relate to the things that the project is about. If it's about an Application, then that will have a Technology Architecture.
Apologies if this isn't quite what you were expecting.

The View might need to be enabled in your catalogue of Views. In which case, the catalogue View:
app_tech_alignment_catalogue.xsl

needs to be added to the catalogue in the Essential_Viewer section of the EA_Support area of your ontology (by creating a new 'Report' instance for this View).
See the tutorial about adding new views.

Thanks also for reporting the error you're seeing with the 'core_bus_proc_def.xsl'. Often, a 'premature end of file' means that a component that the View is trying to import cannot be found. If you don't mind posting the error message that you're seeing (or email me via the forum), we'll identify what's going on here.

Thanks

Jonathan
Essential Project Team
EAJoe
Posts: 14
Joined: 04 Jan 2011, 14:28

Jonathan I don't see a place to email you the logfile? BTW I spoke with the lead of the US Gov semantic web working groups, he was very intrigued by essential.
User avatar
jonathan.carter
Posts: 1087
Joined: 04 Feb 2009, 15:44

Apologies, I am sending you an email directly and you will have my address.

Great to hear that the lead from US Gov semantic web group is interested. If they would like any further information, I'd be more than happy to help
Essential Project Team
User avatar
jonathan.carter
Posts: 1087
Joined: 04 Feb 2009, 15:44

Just a quick post to let you know that we've released the patch update to resolve the issue with core_bus_proc_def.xsl that you identified.

Thanks again for your help with reporting this!

Download the patch update pack here.

Installation guide for the update here.

Let me know if you still see some problems.

Jonathan
Essential Project Team
Post Reply