tlsgui

Check-in [95d194f97f]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:fix [1b28240517]

After analysis, the issue stem from TAO tao_tls_* implementations. Teach tlsgui to handle this bug.

Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:95d194f97fdafec425ec05eb92f302cabd043d23
User & Date: tgg 2012-04-09 13:09:28
References
2012-04-09
13:07 Fixed ticket [1b28240517]: log record iterator is not working plus 1 other change artifact: 459d37e00d user: tgg
Context
2012-04-09
18:12
fix [f99aa7c039]

Using information from chapter "Libraries and Packages" from: http://beedub.com/book/ check-in: 8461cbe851 user: tgg tags: trunk

13:09
fix [1b28240517]

After analysis, the issue stem from TAO tao_tls_* implementations. Teach tlsgui to handle this bug. check-in: 95d194f97f user: tgg tags: trunk

2012-04-07
22:38
complete [6941738bea]

We now have a working -ORBInitRef *and* a working Open... menu

So now it's possible to:

  • invoke tlsgui with -ORBInitRef argument, and that argument can be either a log factory (in which case no log is selected) or a log (in which case the log is automatically selected)
  • run it without argument, and see the CORBA Open... window to select either a log factory or a log (same rule applies)
check-in: cbb11901e5 user: tgg tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to src/tlsgui.

81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
..
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
...
267
268
269
270
271
272
273

274












275
276
277
278
279
280
281
282
283
284
285
}

proc lookup {name type {silent true}} {
    corba::try {
        set object [corba::resolve_initial_references $name]

    } catch {IDL:omg.org/CORBA/ORB/InvalidName:1.0 ex} {
        if {[lindex [lindex $ex 1] 0] != "no_such_initial_reference"} {
            error_box "Invalid \"$name\" initial reference!" "$ex"

        } elseif {!$silent} {
            error_box "Missing \"$name\" initial reference!" \
                      "Use -ORBInitRef $name=... to specify it"
        }

................................................................................
        set object ""

    } catch {... oops} {
        error_box "Invalid \"$name\" initial reference!" "$oops"
        set object ""
    }

    if {$object != ""} {
        if {[catch {set ok [$object _is_a $type]} oops] || !$ok} {
            error_box "Invalid \"$name\" initial reference!" \
                      "Specified initial reference is not a $type"
            set object ""
        }
    }

................................................................................
    set iterator {}
    set ::log_records [$::log query "EXTENDED_TCL" "" iterator]

    if {$iterator != 0} {
        set position 0

        while {true} {

            set chunks [$iterator get $position 10]












            set got [llength $chunks]

            if {$got == 0} {
                $iterator destroy
                corba::release $iterator
                break

            } else {
                set position [expr {$position + $got}]
                set ::log_records [concat $::log_records $chunks]
            }







|







 







|







 







>
|
>
>
>
>
>
>
>
>
>
>
>
>



<







81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
..
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
...
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290

291
292
293
294
295
296
297
}

proc lookup {name type {silent true}} {
    corba::try {
        set object [corba::resolve_initial_references $name]

    } catch {IDL:omg.org/CORBA/ORB/InvalidName:1.0 ex} {
        if {[lindex [lindex $ex 1] 0] ne "no_such_initial_reference"} {
            error_box "Invalid \"$name\" initial reference!" "$ex"

        } elseif {!$silent} {
            error_box "Missing \"$name\" initial reference!" \
                      "Use -ORBInitRef $name=... to specify it"
        }

................................................................................
        set object ""

    } catch {... oops} {
        error_box "Invalid \"$name\" initial reference!" "$oops"
        set object ""
    }

    if {$object ne ""} {
        if {[catch {set ok [$object _is_a $type]} oops] || !$ok} {
            error_box "Invalid \"$name\" initial reference!" \
                      "Specified initial reference is not a $type"
            set object ""
        }
    }

................................................................................
    set iterator {}
    set ::log_records [$::log query "EXTENDED_TCL" "" iterator]

    if {$iterator != 0} {
        set position 0

        while {true} {
            corba::try {
                set chunks [$iterator get $position 0]

            } catch {IDL:omg.org/DsLogAdmin/InvalidParam:1.0 ex} {
                # Work-around TAO bug
                if {$position == 0} {
                    set position [llength $::log_records]
                    set chunks [$iterator get $position 0]

                } else {
                    corba::throw ex
                }
            }

            set got [llength $chunks]

            if {$got == 0} {

                corba::release $iterator
                break

            } else {
                set position [expr {$position + $got}]
                set ::log_records [concat $::log_records $chunks]
            }