Java Code Examples for com.sun.corba.se.spi.protocol.CorbaMessageMediator#getGIOPVersion()
The following examples show how to use
com.sun.corba.se.spi.protocol.CorbaMessageMediator#getGIOPVersion() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: CorbaClientRequestDispatcherImpl.java From jdk1.8-source-analysis with Apache License 2.0 | 5 votes |
protected void addServiceContexts(CorbaMessageMediator messageMediator) { ORB orb = (ORB)messageMediator.getBroker(); CorbaConnection c = (CorbaConnection) messageMediator.getConnection(); GIOPVersion giopVersion = messageMediator.getGIOPVersion(); ServiceContexts contexts = messageMediator.getRequestServiceContexts(); addCodeSetServiceContext(c, contexts, giopVersion); // Add the RMI-IIOP max stream format version // service context to every request. Once we have GIOP 1.3, // we could skip it since we now support version 2, but // probably safer to always send it. contexts.put(MaxStreamFormatVersionServiceContext.singleton); // ORBVersion servicecontext needs to be sent ORBVersionServiceContext ovsc = new ORBVersionServiceContext( ORBVersionFactory.getORBVersion() ) ; contexts.put( ovsc ) ; // NOTE : We only want to send the runtime context the first time if ((c != null) && !c.isPostInitialContexts()) { // Do not do c.setPostInitialContexts() here. // If a client interceptor send_request does a ForwardRequest // which ends up using the same connection then the service // context would not be sent. SendingContextServiceContext scsc = new SendingContextServiceContext( orb.getFVDCodeBaseIOR() ) ; //d11638 contexts.put( scsc ) ; } }
Example 2
Source File: CorbaClientRequestDispatcherImpl.java From TencentKona-8 with GNU General Public License v2.0 | 5 votes |
protected void addServiceContexts(CorbaMessageMediator messageMediator) { ORB orb = (ORB)messageMediator.getBroker(); CorbaConnection c = (CorbaConnection) messageMediator.getConnection(); GIOPVersion giopVersion = messageMediator.getGIOPVersion(); ServiceContexts contexts = messageMediator.getRequestServiceContexts(); addCodeSetServiceContext(c, contexts, giopVersion); // Add the RMI-IIOP max stream format version // service context to every request. Once we have GIOP 1.3, // we could skip it since we now support version 2, but // probably safer to always send it. contexts.put(MaxStreamFormatVersionServiceContext.singleton); // ORBVersion servicecontext needs to be sent ORBVersionServiceContext ovsc = new ORBVersionServiceContext( ORBVersionFactory.getORBVersion() ) ; contexts.put( ovsc ) ; // NOTE : We only want to send the runtime context the first time if ((c != null) && !c.isPostInitialContexts()) { // Do not do c.setPostInitialContexts() here. // If a client interceptor send_request does a ForwardRequest // which ends up using the same connection then the service // context would not be sent. SendingContextServiceContext scsc = new SendingContextServiceContext( orb.getFVDCodeBaseIOR() ) ; //d11638 contexts.put( scsc ) ; } }
Example 3
Source File: CorbaClientRequestDispatcherImpl.java From openjdk-8 with GNU General Public License v2.0 | 5 votes |
protected void addServiceContexts(CorbaMessageMediator messageMediator) { ORB orb = (ORB)messageMediator.getBroker(); CorbaConnection c = (CorbaConnection) messageMediator.getConnection(); GIOPVersion giopVersion = messageMediator.getGIOPVersion(); ServiceContexts contexts = messageMediator.getRequestServiceContexts(); addCodeSetServiceContext(c, contexts, giopVersion); // Add the RMI-IIOP max stream format version // service context to every request. Once we have GIOP 1.3, // we could skip it since we now support version 2, but // probably safer to always send it. contexts.put(MaxStreamFormatVersionServiceContext.singleton); // ORBVersion servicecontext needs to be sent ORBVersionServiceContext ovsc = new ORBVersionServiceContext( ORBVersionFactory.getORBVersion() ) ; contexts.put( ovsc ) ; // NOTE : We only want to send the runtime context the first time if ((c != null) && !c.isPostInitialContexts()) { // Do not do c.setPostInitialContexts() here. // If a client interceptor send_request does a ForwardRequest // which ends up using the same connection then the service // context would not be sent. SendingContextServiceContext scsc = new SendingContextServiceContext( orb.getFVDCodeBaseIOR() ) ; //d11638 contexts.put( scsc ) ; } }
Example 4
Source File: CorbaClientRequestDispatcherImpl.java From jdk8u60 with GNU General Public License v2.0 | 5 votes |
protected void addServiceContexts(CorbaMessageMediator messageMediator) { ORB orb = (ORB)messageMediator.getBroker(); CorbaConnection c = (CorbaConnection) messageMediator.getConnection(); GIOPVersion giopVersion = messageMediator.getGIOPVersion(); ServiceContexts contexts = messageMediator.getRequestServiceContexts(); addCodeSetServiceContext(c, contexts, giopVersion); // Add the RMI-IIOP max stream format version // service context to every request. Once we have GIOP 1.3, // we could skip it since we now support version 2, but // probably safer to always send it. contexts.put(MaxStreamFormatVersionServiceContext.singleton); // ORBVersion servicecontext needs to be sent ORBVersionServiceContext ovsc = new ORBVersionServiceContext( ORBVersionFactory.getORBVersion() ) ; contexts.put( ovsc ) ; // NOTE : We only want to send the runtime context the first time if ((c != null) && !c.isPostInitialContexts()) { // Do not do c.setPostInitialContexts() here. // If a client interceptor send_request does a ForwardRequest // which ends up using the same connection then the service // context would not be sent. SendingContextServiceContext scsc = new SendingContextServiceContext( orb.getFVDCodeBaseIOR() ) ; //d11638 contexts.put( scsc ) ; } }
Example 5
Source File: CorbaClientRequestDispatcherImpl.java From JDKSourceCode1.8 with MIT License | 5 votes |
protected void addServiceContexts(CorbaMessageMediator messageMediator) { ORB orb = (ORB)messageMediator.getBroker(); CorbaConnection c = (CorbaConnection) messageMediator.getConnection(); GIOPVersion giopVersion = messageMediator.getGIOPVersion(); ServiceContexts contexts = messageMediator.getRequestServiceContexts(); addCodeSetServiceContext(c, contexts, giopVersion); // Add the RMI-IIOP max stream format version // service context to every request. Once we have GIOP 1.3, // we could skip it since we now support version 2, but // probably safer to always send it. contexts.put(MaxStreamFormatVersionServiceContext.singleton); // ORBVersion servicecontext needs to be sent ORBVersionServiceContext ovsc = new ORBVersionServiceContext( ORBVersionFactory.getORBVersion() ) ; contexts.put( ovsc ) ; // NOTE : We only want to send the runtime context the first time if ((c != null) && !c.isPostInitialContexts()) { // Do not do c.setPostInitialContexts() here. // If a client interceptor send_request does a ForwardRequest // which ends up using the same connection then the service // context would not be sent. SendingContextServiceContext scsc = new SendingContextServiceContext( orb.getFVDCodeBaseIOR() ) ; //d11638 contexts.put( scsc ) ; } }
Example 6
Source File: CorbaClientRequestDispatcherImpl.java From openjdk-8-source with GNU General Public License v2.0 | 5 votes |
protected void addServiceContexts(CorbaMessageMediator messageMediator) { ORB orb = (ORB)messageMediator.getBroker(); CorbaConnection c = (CorbaConnection) messageMediator.getConnection(); GIOPVersion giopVersion = messageMediator.getGIOPVersion(); ServiceContexts contexts = messageMediator.getRequestServiceContexts(); addCodeSetServiceContext(c, contexts, giopVersion); // Add the RMI-IIOP max stream format version // service context to every request. Once we have GIOP 1.3, // we could skip it since we now support version 2, but // probably safer to always send it. contexts.put(MaxStreamFormatVersionServiceContext.singleton); // ORBVersion servicecontext needs to be sent ORBVersionServiceContext ovsc = new ORBVersionServiceContext( ORBVersionFactory.getORBVersion() ) ; contexts.put( ovsc ) ; // NOTE : We only want to send the runtime context the first time if ((c != null) && !c.isPostInitialContexts()) { // Do not do c.setPostInitialContexts() here. // If a client interceptor send_request does a ForwardRequest // which ends up using the same connection then the service // context would not be sent. SendingContextServiceContext scsc = new SendingContextServiceContext( orb.getFVDCodeBaseIOR() ) ; //d11638 contexts.put( scsc ) ; } }
Example 7
Source File: CorbaClientRequestDispatcherImpl.java From openjdk-jdk8u with GNU General Public License v2.0 | 5 votes |
protected void addServiceContexts(CorbaMessageMediator messageMediator) { ORB orb = (ORB)messageMediator.getBroker(); CorbaConnection c = (CorbaConnection) messageMediator.getConnection(); GIOPVersion giopVersion = messageMediator.getGIOPVersion(); ServiceContexts contexts = messageMediator.getRequestServiceContexts(); addCodeSetServiceContext(c, contexts, giopVersion); // Add the RMI-IIOP max stream format version // service context to every request. Once we have GIOP 1.3, // we could skip it since we now support version 2, but // probably safer to always send it. contexts.put(MaxStreamFormatVersionServiceContext.singleton); // ORBVersion servicecontext needs to be sent ORBVersionServiceContext ovsc = new ORBVersionServiceContext( ORBVersionFactory.getORBVersion() ) ; contexts.put( ovsc ) ; // NOTE : We only want to send the runtime context the first time if ((c != null) && !c.isPostInitialContexts()) { // Do not do c.setPostInitialContexts() here. // If a client interceptor send_request does a ForwardRequest // which ends up using the same connection then the service // context would not be sent. SendingContextServiceContext scsc = new SendingContextServiceContext( orb.getFVDCodeBaseIOR() ) ; //d11638 contexts.put( scsc ) ; } }
Example 8
Source File: CorbaClientRequestDispatcherImpl.java From openjdk-jdk8u-backup with GNU General Public License v2.0 | 5 votes |
protected void addServiceContexts(CorbaMessageMediator messageMediator) { ORB orb = (ORB)messageMediator.getBroker(); CorbaConnection c = (CorbaConnection) messageMediator.getConnection(); GIOPVersion giopVersion = messageMediator.getGIOPVersion(); ServiceContexts contexts = messageMediator.getRequestServiceContexts(); addCodeSetServiceContext(c, contexts, giopVersion); // Add the RMI-IIOP max stream format version // service context to every request. Once we have GIOP 1.3, // we could skip it since we now support version 2, but // probably safer to always send it. contexts.put(MaxStreamFormatVersionServiceContext.singleton); // ORBVersion servicecontext needs to be sent ORBVersionServiceContext ovsc = new ORBVersionServiceContext( ORBVersionFactory.getORBVersion() ) ; contexts.put( ovsc ) ; // NOTE : We only want to send the runtime context the first time if ((c != null) && !c.isPostInitialContexts()) { // Do not do c.setPostInitialContexts() here. // If a client interceptor send_request does a ForwardRequest // which ends up using the same connection then the service // context would not be sent. SendingContextServiceContext scsc = new SendingContextServiceContext( orb.getFVDCodeBaseIOR() ) ; //d11638 contexts.put( scsc ) ; } }
Example 9
Source File: CorbaClientRequestDispatcherImpl.java From hottub with GNU General Public License v2.0 | 5 votes |
protected void addServiceContexts(CorbaMessageMediator messageMediator) { ORB orb = (ORB)messageMediator.getBroker(); CorbaConnection c = (CorbaConnection) messageMediator.getConnection(); GIOPVersion giopVersion = messageMediator.getGIOPVersion(); ServiceContexts contexts = messageMediator.getRequestServiceContexts(); addCodeSetServiceContext(c, contexts, giopVersion); // Add the RMI-IIOP max stream format version // service context to every request. Once we have GIOP 1.3, // we could skip it since we now support version 2, but // probably safer to always send it. contexts.put(MaxStreamFormatVersionServiceContext.singleton); // ORBVersion servicecontext needs to be sent ORBVersionServiceContext ovsc = new ORBVersionServiceContext( ORBVersionFactory.getORBVersion() ) ; contexts.put( ovsc ) ; // NOTE : We only want to send the runtime context the first time if ((c != null) && !c.isPostInitialContexts()) { // Do not do c.setPostInitialContexts() here. // If a client interceptor send_request does a ForwardRequest // which ends up using the same connection then the service // context would not be sent. SendingContextServiceContext scsc = new SendingContextServiceContext( orb.getFVDCodeBaseIOR() ) ; //d11638 contexts.put( scsc ) ; } }
Example 10
Source File: CorbaClientRequestDispatcherImpl.java From openjdk-jdk9 with GNU General Public License v2.0 | 5 votes |
protected void addServiceContexts(CorbaMessageMediator messageMediator) { ORB orb = (ORB)messageMediator.getBroker(); CorbaConnection c = (CorbaConnection) messageMediator.getConnection(); GIOPVersion giopVersion = messageMediator.getGIOPVersion(); ServiceContexts contexts = messageMediator.getRequestServiceContexts(); addCodeSetServiceContext(c, contexts, giopVersion); // Add the RMI-IIOP max stream format version // service context to every request. Once we have GIOP 1.3, // we could skip it since we now support version 2, but // probably safer to always send it. contexts.put(MaxStreamFormatVersionServiceContext.singleton); // ORBVersion servicecontext needs to be sent ORBVersionServiceContext ovsc = new ORBVersionServiceContext( ORBVersionFactory.getORBVersion() ) ; contexts.put( ovsc ) ; // NOTE : We only want to send the runtime context the first time if ((c != null) && !c.isPostInitialContexts()) { // Do not do c.setPostInitialContexts() here. // If a client interceptor send_request does a ForwardRequest // which ends up using the same connection then the service // context would not be sent. SendingContextServiceContext scsc = new SendingContextServiceContext( orb.getFVDCodeBaseIOR() ) ; //d11638 contexts.put( scsc ) ; } }
Example 11
Source File: CorbaClientRequestDispatcherImpl.java From openjdk-8 with GNU General Public License v2.0 | 4 votes |
protected void performCodeSetNegotiation(CorbaMessageMediator messageMediator) { CorbaConnection conn = (CorbaConnection) messageMediator.getConnection(); IOR ior = ((CorbaContactInfo)messageMediator.getContactInfo()) .getEffectiveTargetIOR(); GIOPVersion giopVersion = messageMediator.getGIOPVersion(); // XXX This seems to be a broken double checked locking idiom: FIX IT! // conn.getCodeSetContext() is null when no other requests have // been made on this connection to trigger code set negotation. if (conn != null && conn.getCodeSetContext() == null && !giopVersion.equals(GIOPVersion.V1_0)) { synchronized(conn) { // Double checking. Don't let any other // threads use this connection until the // code sets are straight. if (conn.getCodeSetContext() != null) return; // This only looks at the first code set component. If // there can be multiple locations with multiple code sets, // this requires more work. IIOPProfileTemplate temp = (IIOPProfileTemplate)ior.getProfile(). getTaggedProfileTemplate(); Iterator iter = temp.iteratorById(TAG_CODE_SETS.value); if (!iter.hasNext()) { // Didn't have a code set component. The default will // be to use ISO8859-1 for char data and throw an // exception if wchar data is used. return; } // Get the native and conversion code sets the // server specified in its IOR CodeSetComponentInfo serverCodeSets = ((CodeSetsComponent)iter.next()).getCodeSetComponentInfo(); // Perform the negotiation between this ORB's code sets and // the ones from the IOR CodeSetComponentInfo.CodeSetContext result = CodeSetConversion.impl().negotiate( conn.getBroker().getORBData().getCodeSetComponentInfo(), serverCodeSets); conn.setCodeSetContext(result); } } }
Example 12
Source File: CorbaClientRequestDispatcherImpl.java From openjdk-8-source with GNU General Public License v2.0 | 4 votes |
protected void performCodeSetNegotiation(CorbaMessageMediator messageMediator) { CorbaConnection conn = (CorbaConnection) messageMediator.getConnection(); IOR ior = ((CorbaContactInfo)messageMediator.getContactInfo()) .getEffectiveTargetIOR(); GIOPVersion giopVersion = messageMediator.getGIOPVersion(); // XXX This seems to be a broken double checked locking idiom: FIX IT! // conn.getCodeSetContext() is null when no other requests have // been made on this connection to trigger code set negotation. if (conn != null && conn.getCodeSetContext() == null && !giopVersion.equals(GIOPVersion.V1_0)) { synchronized(conn) { // Double checking. Don't let any other // threads use this connection until the // code sets are straight. if (conn.getCodeSetContext() != null) return; // This only looks at the first code set component. If // there can be multiple locations with multiple code sets, // this requires more work. IIOPProfileTemplate temp = (IIOPProfileTemplate)ior.getProfile(). getTaggedProfileTemplate(); Iterator iter = temp.iteratorById(TAG_CODE_SETS.value); if (!iter.hasNext()) { // Didn't have a code set component. The default will // be to use ISO8859-1 for char data and throw an // exception if wchar data is used. return; } // Get the native and conversion code sets the // server specified in its IOR CodeSetComponentInfo serverCodeSets = ((CodeSetsComponent)iter.next()).getCodeSetComponentInfo(); // Perform the negotiation between this ORB's code sets and // the ones from the IOR CodeSetComponentInfo.CodeSetContext result = CodeSetConversion.impl().negotiate( conn.getBroker().getORBData().getCodeSetComponentInfo(), serverCodeSets); conn.setCodeSetContext(result); } } }
Example 13
Source File: CorbaClientRequestDispatcherImpl.java From hottub with GNU General Public License v2.0 | 4 votes |
protected void performCodeSetNegotiation(CorbaMessageMediator messageMediator) { CorbaConnection conn = (CorbaConnection) messageMediator.getConnection(); IOR ior = ((CorbaContactInfo)messageMediator.getContactInfo()) .getEffectiveTargetIOR(); GIOPVersion giopVersion = messageMediator.getGIOPVersion(); // XXX This seems to be a broken double checked locking idiom: FIX IT! // conn.getCodeSetContext() is null when no other requests have // been made on this connection to trigger code set negotation. if (conn != null && conn.getCodeSetContext() == null && !giopVersion.equals(GIOPVersion.V1_0)) { synchronized(conn) { // Double checking. Don't let any other // threads use this connection until the // code sets are straight. if (conn.getCodeSetContext() != null) return; // This only looks at the first code set component. If // there can be multiple locations with multiple code sets, // this requires more work. IIOPProfileTemplate temp = (IIOPProfileTemplate)ior.getProfile(). getTaggedProfileTemplate(); Iterator iter = temp.iteratorById(TAG_CODE_SETS.value); if (!iter.hasNext()) { // Didn't have a code set component. The default will // be to use ISO8859-1 for char data and throw an // exception if wchar data is used. return; } // Get the native and conversion code sets the // server specified in its IOR CodeSetComponentInfo serverCodeSets = ((CodeSetsComponent)iter.next()).getCodeSetComponentInfo(); // Perform the negotiation between this ORB's code sets and // the ones from the IOR CodeSetComponentInfo.CodeSetContext result = CodeSetConversion.impl().negotiate( conn.getBroker().getORBData().getCodeSetComponentInfo(), serverCodeSets); conn.setCodeSetContext(result); } } }
Example 14
Source File: CorbaClientRequestDispatcherImpl.java From openjdk-jdk9 with GNU General Public License v2.0 | 4 votes |
protected void performCodeSetNegotiation(CorbaMessageMediator messageMediator) { CorbaConnection conn = (CorbaConnection) messageMediator.getConnection(); IOR ior = ((CorbaContactInfo)messageMediator.getContactInfo()) .getEffectiveTargetIOR(); GIOPVersion giopVersion = messageMediator.getGIOPVersion(); // XXX This seems to be a broken double checked locking idiom: FIX IT! // conn.getCodeSetContext() is null when no other requests have // been made on this connection to trigger code set negotation. if (conn != null && conn.getCodeSetContext() == null && !giopVersion.equals(GIOPVersion.V1_0)) { synchronized(conn) { // Double checking. Don't let any other // threads use this connection until the // code sets are straight. if (conn.getCodeSetContext() != null) return; // This only looks at the first code set component. If // there can be multiple locations with multiple code sets, // this requires more work. IIOPProfileTemplate temp = (IIOPProfileTemplate)ior.getProfile(). getTaggedProfileTemplate(); Iterator iter = temp.iteratorById(TAG_CODE_SETS.value); if (!iter.hasNext()) { // Didn't have a code set component. The default will // be to use ISO8859-1 for char data and throw an // exception if wchar data is used. return; } // Get the native and conversion code sets the // server specified in its IOR CodeSetComponentInfo serverCodeSets = ((CodeSetsComponent)iter.next()).getCodeSetComponentInfo(); // Perform the negotiation between this ORB's code sets and // the ones from the IOR CodeSetComponentInfo.CodeSetContext result = CodeSetConversion.impl().negotiate( conn.getBroker().getORBData().getCodeSetComponentInfo(), serverCodeSets); conn.setCodeSetContext(result); } } }
Example 15
Source File: CorbaClientRequestDispatcherImpl.java From openjdk-jdk8u-backup with GNU General Public License v2.0 | 4 votes |
protected void performCodeSetNegotiation(CorbaMessageMediator messageMediator) { CorbaConnection conn = (CorbaConnection) messageMediator.getConnection(); IOR ior = ((CorbaContactInfo)messageMediator.getContactInfo()) .getEffectiveTargetIOR(); GIOPVersion giopVersion = messageMediator.getGIOPVersion(); // XXX This seems to be a broken double checked locking idiom: FIX IT! // conn.getCodeSetContext() is null when no other requests have // been made on this connection to trigger code set negotation. if (conn != null && conn.getCodeSetContext() == null && !giopVersion.equals(GIOPVersion.V1_0)) { synchronized(conn) { // Double checking. Don't let any other // threads use this connection until the // code sets are straight. if (conn.getCodeSetContext() != null) return; // This only looks at the first code set component. If // there can be multiple locations with multiple code sets, // this requires more work. IIOPProfileTemplate temp = (IIOPProfileTemplate)ior.getProfile(). getTaggedProfileTemplate(); Iterator iter = temp.iteratorById(TAG_CODE_SETS.value); if (!iter.hasNext()) { // Didn't have a code set component. The default will // be to use ISO8859-1 for char data and throw an // exception if wchar data is used. return; } // Get the native and conversion code sets the // server specified in its IOR CodeSetComponentInfo serverCodeSets = ((CodeSetsComponent)iter.next()).getCodeSetComponentInfo(); // Perform the negotiation between this ORB's code sets and // the ones from the IOR CodeSetComponentInfo.CodeSetContext result = CodeSetConversion.impl().negotiate( conn.getBroker().getORBData().getCodeSetComponentInfo(), serverCodeSets); conn.setCodeSetContext(result); } } }
Example 16
Source File: CorbaClientRequestDispatcherImpl.java From openjdk-jdk8u with GNU General Public License v2.0 | 4 votes |
protected void performCodeSetNegotiation(CorbaMessageMediator messageMediator) { CorbaConnection conn = (CorbaConnection) messageMediator.getConnection(); IOR ior = ((CorbaContactInfo)messageMediator.getContactInfo()) .getEffectiveTargetIOR(); GIOPVersion giopVersion = messageMediator.getGIOPVersion(); // XXX This seems to be a broken double checked locking idiom: FIX IT! // conn.getCodeSetContext() is null when no other requests have // been made on this connection to trigger code set negotation. if (conn != null && conn.getCodeSetContext() == null && !giopVersion.equals(GIOPVersion.V1_0)) { synchronized(conn) { // Double checking. Don't let any other // threads use this connection until the // code sets are straight. if (conn.getCodeSetContext() != null) return; // This only looks at the first code set component. If // there can be multiple locations with multiple code sets, // this requires more work. IIOPProfileTemplate temp = (IIOPProfileTemplate)ior.getProfile(). getTaggedProfileTemplate(); Iterator iter = temp.iteratorById(TAG_CODE_SETS.value); if (!iter.hasNext()) { // Didn't have a code set component. The default will // be to use ISO8859-1 for char data and throw an // exception if wchar data is used. return; } // Get the native and conversion code sets the // server specified in its IOR CodeSetComponentInfo serverCodeSets = ((CodeSetsComponent)iter.next()).getCodeSetComponentInfo(); // Perform the negotiation between this ORB's code sets and // the ones from the IOR CodeSetComponentInfo.CodeSetContext result = CodeSetConversion.impl().negotiate( conn.getBroker().getORBData().getCodeSetComponentInfo(), serverCodeSets); conn.setCodeSetContext(result); } } }
Example 17
Source File: CorbaClientRequestDispatcherImpl.java From JDKSourceCode1.8 with MIT License | 4 votes |
protected void performCodeSetNegotiation(CorbaMessageMediator messageMediator) { CorbaConnection conn = (CorbaConnection) messageMediator.getConnection(); IOR ior = ((CorbaContactInfo)messageMediator.getContactInfo()) .getEffectiveTargetIOR(); GIOPVersion giopVersion = messageMediator.getGIOPVersion(); // XXX This seems to be a broken double checked locking idiom: FIX IT! // conn.getCodeSetContext() is null when no other requests have // been made on this connection to trigger code set negotation. if (conn != null && conn.getCodeSetContext() == null && !giopVersion.equals(GIOPVersion.V1_0)) { synchronized(conn) { // Double checking. Don't let any other // threads use this connection until the // code sets are straight. if (conn.getCodeSetContext() != null) return; // This only looks at the first code set component. If // there can be multiple locations with multiple code sets, // this requires more work. IIOPProfileTemplate temp = (IIOPProfileTemplate)ior.getProfile(). getTaggedProfileTemplate(); Iterator iter = temp.iteratorById(TAG_CODE_SETS.value); if (!iter.hasNext()) { // Didn't have a code set component. The default will // be to use ISO8859-1 for char data and throw an // exception if wchar data is used. return; } // Get the native and conversion code sets the // server specified in its IOR CodeSetComponentInfo serverCodeSets = ((CodeSetsComponent)iter.next()).getCodeSetComponentInfo(); // Perform the negotiation between this ORB's code sets and // the ones from the IOR CodeSetComponentInfo.CodeSetContext result = CodeSetConversion.impl().negotiate( conn.getBroker().getORBData().getCodeSetComponentInfo(), serverCodeSets); conn.setCodeSetContext(result); } } }
Example 18
Source File: CorbaClientRequestDispatcherImpl.java From jdk8u60 with GNU General Public License v2.0 | 4 votes |
protected void performCodeSetNegotiation(CorbaMessageMediator messageMediator) { CorbaConnection conn = (CorbaConnection) messageMediator.getConnection(); IOR ior = ((CorbaContactInfo)messageMediator.getContactInfo()) .getEffectiveTargetIOR(); GIOPVersion giopVersion = messageMediator.getGIOPVersion(); // XXX This seems to be a broken double checked locking idiom: FIX IT! // conn.getCodeSetContext() is null when no other requests have // been made on this connection to trigger code set negotation. if (conn != null && conn.getCodeSetContext() == null && !giopVersion.equals(GIOPVersion.V1_0)) { synchronized(conn) { // Double checking. Don't let any other // threads use this connection until the // code sets are straight. if (conn.getCodeSetContext() != null) return; // This only looks at the first code set component. If // there can be multiple locations with multiple code sets, // this requires more work. IIOPProfileTemplate temp = (IIOPProfileTemplate)ior.getProfile(). getTaggedProfileTemplate(); Iterator iter = temp.iteratorById(TAG_CODE_SETS.value); if (!iter.hasNext()) { // Didn't have a code set component. The default will // be to use ISO8859-1 for char data and throw an // exception if wchar data is used. return; } // Get the native and conversion code sets the // server specified in its IOR CodeSetComponentInfo serverCodeSets = ((CodeSetsComponent)iter.next()).getCodeSetComponentInfo(); // Perform the negotiation between this ORB's code sets and // the ones from the IOR CodeSetComponentInfo.CodeSetContext result = CodeSetConversion.impl().negotiate( conn.getBroker().getORBData().getCodeSetComponentInfo(), serverCodeSets); conn.setCodeSetContext(result); } } }
Example 19
Source File: CorbaClientRequestDispatcherImpl.java From TencentKona-8 with GNU General Public License v2.0 | 4 votes |
protected void performCodeSetNegotiation(CorbaMessageMediator messageMediator) { CorbaConnection conn = (CorbaConnection) messageMediator.getConnection(); IOR ior = ((CorbaContactInfo)messageMediator.getContactInfo()) .getEffectiveTargetIOR(); GIOPVersion giopVersion = messageMediator.getGIOPVersion(); // XXX This seems to be a broken double checked locking idiom: FIX IT! // conn.getCodeSetContext() is null when no other requests have // been made on this connection to trigger code set negotation. if (conn != null && conn.getCodeSetContext() == null && !giopVersion.equals(GIOPVersion.V1_0)) { synchronized(conn) { // Double checking. Don't let any other // threads use this connection until the // code sets are straight. if (conn.getCodeSetContext() != null) return; // This only looks at the first code set component. If // there can be multiple locations with multiple code sets, // this requires more work. IIOPProfileTemplate temp = (IIOPProfileTemplate)ior.getProfile(). getTaggedProfileTemplate(); Iterator iter = temp.iteratorById(TAG_CODE_SETS.value); if (!iter.hasNext()) { // Didn't have a code set component. The default will // be to use ISO8859-1 for char data and throw an // exception if wchar data is used. return; } // Get the native and conversion code sets the // server specified in its IOR CodeSetComponentInfo serverCodeSets = ((CodeSetsComponent)iter.next()).getCodeSetComponentInfo(); // Perform the negotiation between this ORB's code sets and // the ones from the IOR CodeSetComponentInfo.CodeSetContext result = CodeSetConversion.impl().negotiate( conn.getBroker().getORBData().getCodeSetComponentInfo(), serverCodeSets); conn.setCodeSetContext(result); } } }
Example 20
Source File: CorbaClientRequestDispatcherImpl.java From jdk1.8-source-analysis with Apache License 2.0 | 4 votes |
protected void performCodeSetNegotiation(CorbaMessageMediator messageMediator) { CorbaConnection conn = (CorbaConnection) messageMediator.getConnection(); IOR ior = ((CorbaContactInfo)messageMediator.getContactInfo()) .getEffectiveTargetIOR(); GIOPVersion giopVersion = messageMediator.getGIOPVersion(); // XXX This seems to be a broken double checked locking idiom: FIX IT! // conn.getCodeSetContext() is null when no other requests have // been made on this connection to trigger code set negotation. if (conn != null && conn.getCodeSetContext() == null && !giopVersion.equals(GIOPVersion.V1_0)) { synchronized(conn) { // Double checking. Don't let any other // threads use this connection until the // code sets are straight. if (conn.getCodeSetContext() != null) return; // This only looks at the first code set component. If // there can be multiple locations with multiple code sets, // this requires more work. IIOPProfileTemplate temp = (IIOPProfileTemplate)ior.getProfile(). getTaggedProfileTemplate(); Iterator iter = temp.iteratorById(TAG_CODE_SETS.value); if (!iter.hasNext()) { // Didn't have a code set component. The default will // be to use ISO8859-1 for char data and throw an // exception if wchar data is used. return; } // Get the native and conversion code sets the // server specified in its IOR CodeSetComponentInfo serverCodeSets = ((CodeSetsComponent)iter.next()).getCodeSetComponentInfo(); // Perform the negotiation between this ORB's code sets and // the ones from the IOR CodeSetComponentInfo.CodeSetContext result = CodeSetConversion.impl().negotiate( conn.getBroker().getORBData().getCodeSetComponentInfo(), serverCodeSets); conn.setCodeSetContext(result); } } }