diff --git a/src/javaeva/client/EvAClient.java b/src/javaeva/client/EvAClient.java index eb44020d..55890077 100644 --- a/src/javaeva/client/EvAClient.java +++ b/src/javaeva/client/EvAClient.java @@ -571,6 +571,7 @@ public class EvAClient implements RemoteStateListener, Serializable { URL baseDir = this.getClass().getClassLoader().getResource(""); String cp = System.getProperty("java.class.path","."); if (!cp.contains(baseDir.getPath())) { + // this was added due to matlab not adding base dir to base path... System.err.println("classpath does not contain base directory!"); System.err.println("adding base dir and trying again..."); System.setProperty("java.class.path", cp + System.getProperty("path.separator") + baseDir.getPath()); diff --git a/src/javaeva/client/EvAComAdapter.java b/src/javaeva/client/EvAComAdapter.java index 6278f532..e8087972 100644 --- a/src/javaeva/client/EvAComAdapter.java +++ b/src/javaeva/client/EvAComAdapter.java @@ -112,7 +112,12 @@ public class EvAComAdapter extends ComAdapter { } protected MainAdapter getMainAdapter(RMIInvocationHandler invocHandler) throws RemoteException { - return (EvAMainAdapter) invocHandler.getWrapper(); + try { + return (EvAMainAdapter) invocHandler.getWrapper(); + } catch (ClassCastException e) { + System.err.println("Warning: cannot cast to EvAMainAdapter in EvAComAdapter.. trying MainAdapter..."); + } + return (MainAdapter) invocHandler.getWrapper(); } protected void logInfo(String msg) { diff --git a/src/wsi/ra/jproxy/RMIProxyRemoteThread.java b/src/wsi/ra/jproxy/RMIProxyRemoteThread.java index 68795273..e35201dc 100644 --- a/src/wsi/ra/jproxy/RMIProxyRemoteThread.java +++ b/src/wsi/ra/jproxy/RMIProxyRemoteThread.java @@ -23,8 +23,6 @@ import java.lang.reflect.Method; public class RMIProxyRemoteThread implements InvocationHandler, Serializable { private static ComAdapter m_Adapter; - private Object m_Object; - private String m_ObjectName; private RMIThreadInvocationHandler m_RMIThreadHandler; /** * @@ -44,19 +42,25 @@ public class RMIProxyRemoteThread implements InvocationHandler, c.getClass().getInterfaces(), new RMIProxyRemoteThread(c,host)); } + + private static void maybeLoadAdapter() { + if (m_Adapter==null) + m_Adapter = ComAdapter.getInstance(); + } + /** * * @param c * @return */ public static String[] getServerList() { - if (m_Adapter==null) m_Adapter = ComAdapter.getInstance(); + maybeLoadAdapter(); m_Adapter.evalAvailableHostNameList(); return m_Adapter.getAvailableHostNameList(); } public static void setServerList(String[] servers ) { - if (m_Adapter==null) m_Adapter = ComAdapter.getInstance(); + maybeLoadAdapter(); m_Adapter.setServerList(servers); m_Adapter.evalAvailableHostNameList(); @@ -82,15 +86,15 @@ public class RMIProxyRemoteThread implements InvocationHandler, * */ private RMIProxyRemoteThread (Object c, String host) { - m_ObjectName = c.getClass().getName(); - if (m_Adapter==null) m_Adapter = ComAdapter.getInstance(); +// m_ObjectName = c.getClass().getName(); + maybeLoadAdapter(); m_RMIThreadHandler = m_Adapter.getRMIThreadHandler(c,host); } /** * */ private RMIProxyRemoteThread (Object c, MainAdapterClient Client) { - m_ObjectName = c.getClass().getName(); +// m_ObjectName = c.getClass().getName(); try { m_RMIThreadHandler = Client.getRMIThreadHandler(c); } catch (Exception e) { @@ -102,8 +106,8 @@ public class RMIProxyRemoteThread implements InvocationHandler, * */ private RMIProxyRemoteThread (Object c) { - m_ObjectName = c.getClass().getName(); - if (m_Adapter==null) m_Adapter = ComAdapter.getInstance(); +// m_ObjectName = c.getClass().getName(); + maybeLoadAdapter(); m_RMIThreadHandler = m_Adapter.getRMIThreadHandler(c); } /**