Java Code Examples for com.sun.corba.se.impl.encoding.CodeSetComponentInfo

The following examples show how to use com.sun.corba.se.impl.encoding.CodeSetComponentInfo. These examples are extracted from open source projects. 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 Project: JDKSourceCode1.8   Source File: CDROutputObject.java    License: MIT License 6 votes vote down vote up
/**
 * Override the default CDR factory behavior to get the
 * negotiated code sets from the connection.
 *
 * These are only called once per message, the first time needed.
 *
 * In the local case, there is no Connection, so use the
 * local code sets.
 */
protected CodeSetConversion.CTBConverter createCharCTBConverter() {
    CodeSetComponentInfo.CodeSetContext codesets = getCodeSets();

    // If the connection doesn't have its negotiated
    // code sets by now, fall back on the defaults defined
    // in CDRInputStream.
    if (codesets == null)
        return super.createCharCTBConverter();

    OSFCodeSetRegistry.Entry charSet
        = OSFCodeSetRegistry.lookupEntry(codesets.getCharCodeSet());

    if (charSet == null)
        throw wrapper.unknownCodeset( charSet ) ;

    return CodeSetConversion.impl().getCTBConverter(charSet,
                                                    isLittleEndian(),
                                                    false);
}
 
Example 2
Source Project: openjdk-jdk8u   Source File: CDRInputObject.java    License: GNU General Public License v2.0 6 votes vote down vote up
/**
 * Override the default CDR factory behavior to get the
 * negotiated code sets from the connection.
 *
 * These are only called once per message, the first time needed.
 *
 * In the local case, there is no Connection, so use the
 * local code sets.
 */
protected CodeSetConversion.BTCConverter createCharBTCConverter() {
    CodeSetComponentInfo.CodeSetContext codesets = getCodeSets();

    // If the connection doesn't have its negotiated
    // code sets by now, fall back on the defaults defined
    // in CDRInputStream.
    if (codesets == null)
        return super.createCharBTCConverter();

    OSFCodeSetRegistry.Entry charSet
        = OSFCodeSetRegistry.lookupEntry(codesets.getCharCodeSet());

    if (charSet == null)
        throw wrapper.unknownCodeset( charSet ) ;

    return CodeSetConversion.impl().getBTCConverter(charSet, isLittleEndian());
}
 
Example 3
Source Project: TencentKona-8   Source File: CDRInputObject.java    License: GNU General Public License v2.0 6 votes vote down vote up
/**
 * Override the default CDR factory behavior to get the
 * negotiated code sets from the connection.
 *
 * These are only called once per message, the first time needed.
 *
 * In the local case, there is no Connection, so use the
 * local code sets.
 */
protected CodeSetConversion.BTCConverter createCharBTCConverter() {
    CodeSetComponentInfo.CodeSetContext codesets = getCodeSets();

    // If the connection doesn't have its negotiated
    // code sets by now, fall back on the defaults defined
    // in CDRInputStream.
    if (codesets == null)
        return super.createCharBTCConverter();

    OSFCodeSetRegistry.Entry charSet
        = OSFCodeSetRegistry.lookupEntry(codesets.getCharCodeSet());

    if (charSet == null)
        throw wrapper.unknownCodeset( charSet ) ;

    return CodeSetConversion.impl().getBTCConverter(charSet, isLittleEndian());
}
 
Example 4
Source Project: JDKSourceCode1.8   Source File: CDRInputObject.java    License: MIT License 6 votes vote down vote up
/**
 * Override the default CDR factory behavior to get the
 * negotiated code sets from the connection.
 *
 * These are only called once per message, the first time needed.
 *
 * In the local case, there is no Connection, so use the
 * local code sets.
 */
protected CodeSetConversion.BTCConverter createCharBTCConverter() {
    CodeSetComponentInfo.CodeSetContext codesets = getCodeSets();

    // If the connection doesn't have its negotiated
    // code sets by now, fall back on the defaults defined
    // in CDRInputStream.
    if (codesets == null)
        return super.createCharBTCConverter();

    OSFCodeSetRegistry.Entry charSet
        = OSFCodeSetRegistry.lookupEntry(codesets.getCharCodeSet());

    if (charSet == null)
        throw wrapper.unknownCodeset( charSet ) ;

    return CodeSetConversion.impl().getBTCConverter(charSet, isLittleEndian());
}
 
Example 5
Source Project: openjdk-8   Source File: CDRInputObject.java    License: GNU General Public License v2.0 6 votes vote down vote up
/**
 * Override the default CDR factory behavior to get the
 * negotiated code sets from the connection.
 *
 * These are only called once per message, the first time needed.
 *
 * In the local case, there is no Connection, so use the
 * local code sets.
 */
protected CodeSetConversion.BTCConverter createCharBTCConverter() {
    CodeSetComponentInfo.CodeSetContext codesets = getCodeSets();

    // If the connection doesn't have its negotiated
    // code sets by now, fall back on the defaults defined
    // in CDRInputStream.
    if (codesets == null)
        return super.createCharBTCConverter();

    OSFCodeSetRegistry.Entry charSet
        = OSFCodeSetRegistry.lookupEntry(codesets.getCharCodeSet());

    if (charSet == null)
        throw wrapper.unknownCodeset( charSet ) ;

    return CodeSetConversion.impl().getBTCConverter(charSet, isLittleEndian());
}
 
Example 6
public CodeSetComponentInfo.CodeSetContext getCodeSetContext() {
    // Needs to be synchronized for the following case when the client
    // doesn't send the code set context twice, and we have two threads
    // in ServerRequestDispatcher processCodeSetContext.
    //
    // Thread A checks to see if there is a context, there is none, so
    //     it calls setCodeSetContext, getting the synch lock.
    // Thread B checks to see if there is a context.  If we didn't synch,
    //     it might decide to outlaw wchar/wstring.
    if (codeSetContext == null) {
        synchronized(this) {
            return codeSetContext;
        }
    }

    return codeSetContext;
}
 
Example 7
public CodeSetComponentInfo.CodeSetContext getCodeSetContext() {
    // Needs to be synchronized for the following case when the client
    // doesn't send the code set context twice, and we have two threads
    // in ServerRequestDispatcher processCodeSetContext.
    //
    // Thread A checks to see if there is a context, there is none, so
    //     it calls setCodeSetContext, getting the synch lock.
    // Thread B checks to see if there is a context.  If we didn't synch,
    //     it might decide to outlaw wchar/wstring.
    if (codeSetContext == null) {
        synchronized(this) {
            return codeSetContext;
        }
    }

    return codeSetContext;
}
 
Example 8
Source Project: openjdk-8-source   Source File: ParserTable.java    License: GNU General Public License v2.0 5 votes vote down vote up
private Operation makeCSOperation()
{
    Operation csop = new Operation() {
        public Object operate( Object value )
        {
            String val = (String)value ;
            return CodeSetComponentInfo.createFromString( val ) ;
        }
    } ;

    return csop ;
}
 
Example 9
Source Project: JDKSourceCode1.8   Source File: SocketOrChannelConnectionImpl.java    License: MIT License 5 votes vote down vote up
public synchronized void setCodeSetContext(CodeSetComponentInfo.CodeSetContext csc) {
    // Double check whether or not we need to do this
    if (codeSetContext == null) {

        if (OSFCodeSetRegistry.lookupEntry(csc.getCharCodeSet()) == null ||
            OSFCodeSetRegistry.lookupEntry(csc.getWCharCodeSet()) == null) {
            // If the client says it's negotiated a code set that
            // isn't a fallback and we never said we support, then
            // it has a bug.
            throw wrapper.badCodesetsFromClient() ;
        }

        codeSetContext = csc;
    }
}
 
Example 10
Source Project: jdk1.8-source-analysis   Source File: ParserTable.java    License: Apache License 2.0 5 votes vote down vote up
private Operation makeCSOperation()
{
    Operation csop = new Operation() {
        public Object operate( Object value )
        {
            String val = (String)value ;
            return CodeSetComponentInfo.createFromString( val ) ;
        }
    } ;

    return csop ;
}
 
Example 11
public CodeSetsComponentImpl(com.sun.corba.se.spi.orb.ORB orb)
{
    if (orb == null)
        csci = new CodeSetComponentInfo();
    else
        csci = orb.getORBData().getCodeSetComponentInfo();
}
 
Example 12
public CodeSetsComponentImpl(com.sun.corba.se.spi.orb.ORB orb)
{
    if (orb == null)
        csci = new CodeSetComponentInfo();
    else
        csci = orb.getORBData().getCodeSetComponentInfo();
}
 
Example 13
public synchronized void setCodeSetContext(CodeSetComponentInfo.CodeSetContext csc) {
    // Double check whether or not we need to do this
    if (codeSetContext == null) {

        if (OSFCodeSetRegistry.lookupEntry(csc.getCharCodeSet()) == null ||
            OSFCodeSetRegistry.lookupEntry(csc.getWCharCodeSet()) == null) {
            // If the client says it's negotiated a code set that
            // isn't a fallback and we never said we support, then
            // it has a bug.
            throw wrapper.badCodesetsFromClient() ;
        }

        codeSetContext = csc;
    }
}
 
Example 14
protected CodeSetConversion.BTCConverter createWCharBTCConverter() {

        CodeSetComponentInfo.CodeSetContext codesets = getCodeSets();

        // If the connection doesn't have its negotiated
        // code sets by now, we have to throw an exception.
        // See CORBA formal 00-11-03 13.9.2.6.
        if (codesets == null) {
            if (getConnection().isServer())
                throw omgWrapper.noClientWcharCodesetCtx() ;
            else
                throw omgWrapper.noServerWcharCodesetCmp() ;
        }

        OSFCodeSetRegistry.Entry wcharSet
            = OSFCodeSetRegistry.lookupEntry(codesets.getWCharCodeSet());

        if (wcharSet == null)
            throw wrapper.unknownCodeset( wcharSet ) ;

        // For GIOP 1.2 and UTF-16, use big endian if there is no byte
        // order marker.  (See issue 3405b)
        //
        // For GIOP 1.1 and UTF-16, use the byte order the stream if
        // there isn't (and there shouldn't be) a byte order marker.
        //
        // GIOP 1.0 doesn't have wchars.  If we're talking to a legacy ORB,
        // we do what our old ORBs did.
        if (wcharSet == OSFCodeSetRegistry.UTF_16) {
            if (getGIOPVersion().equals(GIOPVersion.V1_2))
                return CodeSetConversion.impl().getBTCConverter(wcharSet, false);
        }

        return CodeSetConversion.impl().getBTCConverter(wcharSet, isLittleEndian());
    }
 
Example 15
private Operation makeCSOperation()
{
    Operation csop = new Operation() {
        public Object operate( Object value )
        {
            String val = (String)value ;
            return CodeSetComponentInfo.createFromString( val ) ;
        }
    } ;

    return csop ;
}
 
Example 16
public synchronized void setCodeSetContext(CodeSetComponentInfo.CodeSetContext csc) {
    // Double check whether or not we need to do this
    if (codeSetContext == null) {

        if (OSFCodeSetRegistry.lookupEntry(csc.getCharCodeSet()) == null ||
            OSFCodeSetRegistry.lookupEntry(csc.getWCharCodeSet()) == null) {
            // If the client says it's negotiated a code set that
            // isn't a fallback and we never said we support, then
            // it has a bug.
            throw wrapper.badCodesetsFromClient() ;
        }

        codeSetContext = csc;
    }
}
 
Example 17
public synchronized void setCodeSetContext(CodeSetComponentInfo.CodeSetContext csc) {
    // Double check whether or not we need to do this
    if (codeSetContext == null) {

        if (OSFCodeSetRegistry.lookupEntry(csc.getCharCodeSet()) == null ||
            OSFCodeSetRegistry.lookupEntry(csc.getWCharCodeSet()) == null) {
            // If the client says it's negotiated a code set that
            // isn't a fallback and we never said we support, then
            // it has a bug.
            throw wrapper.badCodesetsFromClient() ;
        }

        codeSetContext = csc;
    }
}
 
Example 18
public synchronized void setCodeSetContext(CodeSetComponentInfo.CodeSetContext csc) {
    // Double check whether or not we need to do this
    if (codeSetContext == null) {

        if (OSFCodeSetRegistry.lookupEntry(csc.getCharCodeSet()) == null ||
            OSFCodeSetRegistry.lookupEntry(csc.getWCharCodeSet()) == null) {
            // If the client says it's negotiated a code set that
            // isn't a fallback and we never said we support, then
            // it has a bug.
            throw wrapper.badCodesetsFromClient() ;
        }

        codeSetContext = csc;
    }
}
 
Example 19
Source Project: jdk8u60   Source File: CDRInputObject.java    License: GNU General Public License v2.0 5 votes vote down vote up
protected CodeSetConversion.BTCConverter createWCharBTCConverter() {

        CodeSetComponentInfo.CodeSetContext codesets = getCodeSets();

        // If the connection doesn't have its negotiated
        // code sets by now, we have to throw an exception.
        // See CORBA formal 00-11-03 13.9.2.6.
        if (codesets == null) {
            if (getConnection().isServer())
                throw omgWrapper.noClientWcharCodesetCtx() ;
            else
                throw omgWrapper.noServerWcharCodesetCmp() ;
        }

        OSFCodeSetRegistry.Entry wcharSet
            = OSFCodeSetRegistry.lookupEntry(codesets.getWCharCodeSet());

        if (wcharSet == null)
            throw wrapper.unknownCodeset( wcharSet ) ;

        // For GIOP 1.2 and UTF-16, use big endian if there is no byte
        // order marker.  (See issue 3405b)
        //
        // For GIOP 1.1 and UTF-16, use the byte order the stream if
        // there isn't (and there shouldn't be) a byte order marker.
        //
        // GIOP 1.0 doesn't have wchars.  If we're talking to a legacy ORB,
        // we do what our old ORBs did.
        if (wcharSet == OSFCodeSetRegistry.UTF_16) {
            if (getGIOPVersion().equals(GIOPVersion.V1_2))
                return CodeSetConversion.impl().getBTCConverter(wcharSet, false);
        }

        return CodeSetConversion.impl().getBTCConverter(wcharSet, isLittleEndian());
    }
 
Example 20
Source Project: jdk8u60   Source File: ParserTable.java    License: GNU General Public License v2.0 5 votes vote down vote up
private Operation makeCSOperation()
{
    Operation csop = new Operation() {
        public Object operate( Object value )
        {
            String val = (String)value ;
            return CodeSetComponentInfo.createFromString( val ) ;
        }
    } ;

    return csop ;
}
 
Example 21
public synchronized void setCodeSetContext(CodeSetComponentInfo.CodeSetContext csc) {
    // Double check whether or not we need to do this
    if (codeSetContext == null) {

        if (OSFCodeSetRegistry.lookupEntry(csc.getCharCodeSet()) == null ||
            OSFCodeSetRegistry.lookupEntry(csc.getWCharCodeSet()) == null) {
            // If the client says it's negotiated a code set that
            // isn't a fallback and we never said we support, then
            // it has a bug.
            throw wrapper.badCodesetsFromClient() ;
        }

        codeSetContext = csc;
    }
}
 
Example 22
Source Project: openjdk-jdk8u   Source File: CDRInputObject.java    License: GNU General Public License v2.0 5 votes vote down vote up
protected CodeSetConversion.BTCConverter createWCharBTCConverter() {

        CodeSetComponentInfo.CodeSetContext codesets = getCodeSets();

        // If the connection doesn't have its negotiated
        // code sets by now, we have to throw an exception.
        // See CORBA formal 00-11-03 13.9.2.6.
        if (codesets == null) {
            if (getConnection().isServer())
                throw omgWrapper.noClientWcharCodesetCtx() ;
            else
                throw omgWrapper.noServerWcharCodesetCmp() ;
        }

        OSFCodeSetRegistry.Entry wcharSet
            = OSFCodeSetRegistry.lookupEntry(codesets.getWCharCodeSet());

        if (wcharSet == null)
            throw wrapper.unknownCodeset( wcharSet ) ;

        // For GIOP 1.2 and UTF-16, use big endian if there is no byte
        // order marker.  (See issue 3405b)
        //
        // For GIOP 1.1 and UTF-16, use the byte order the stream if
        // there isn't (and there shouldn't be) a byte order marker.
        //
        // GIOP 1.0 doesn't have wchars.  If we're talking to a legacy ORB,
        // we do what our old ORBs did.
        if (wcharSet == OSFCodeSetRegistry.UTF_16) {
            if (getGIOPVersion().equals(GIOPVersion.V1_2))
                return CodeSetConversion.impl().getBTCConverter(wcharSet, false);
        }

        return CodeSetConversion.impl().getBTCConverter(wcharSet, isLittleEndian());
    }
 
Example 23
public void complete()
{
    codesets = new CodeSetComponentInfo(charData, wcharData);
}
 
Example 24
public CodeSetServiceContext(InputStream is, GIOPVersion gv)
{
    super(is, gv) ;
    csc = new CodeSetComponentInfo.CodeSetContext() ;
    csc.read( (MarshalInputStream)in ) ;
}
 
Example 25
public CodeSetComponentInfo.CodeSetContext getCodeSetContext()
{
    return csc ;
}
 
Example 26
public CodeSetComponentInfo.CodeSetContext getCodeSetContext()
{
    return csc ;
}
 
Example 27
public CodeSetsComponentImpl()
{
    // Uses our default code sets (see CodeSetComponentInfo)
    csci = new CodeSetComponentInfo() ;
}
 
Example 28
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 29
Source Project: openjdk-jdk9   Source File: CDRInputObject.java    License: GNU General Public License v2.0 4 votes vote down vote up
private CodeSetComponentInfo.CodeSetContext getCodeSets() {
    if (getConnection() == null)
        return CodeSetComponentInfo.LOCAL_CODE_SETS;
    else
        return getConnection().getCodeSetContext();
}
 
Example 30
Source Project: hottub   Source File: CodeSetsComponentImpl.java    License: GNU General Public License v2.0 4 votes vote down vote up
public CodeSetComponentInfo getCodeSetComponentInfo()
{
    return csci ;
}