Merge lp:~jontai/openvista-gtm-integration/bug363162 into lp:openvista-gtm-integration

Proposed by Jon Tai
Status: Merged
Merged at revision: not available
Proposed branch: lp:~jontai/openvista-gtm-integration/bug363162
Merge into: lp:openvista-gtm-integration
Diff against target: None lines
To merge this branch: bzr merge lp:~jontai/openvista-gtm-integration/bug363162
Reviewer Review Type Date Requested Status
JSHER Approve
Review via email: mp+5677@code.launchpad.net
To post a comment you must log in.
Revision history for this message
JSHER (joel-sher) wrote :

Fixes the error when $l($ZB)=0

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'mumps/_ZTER.m'
2--- mumps/_ZTER.m 1970-01-01 00:00:00 +0000
3+++ mumps/_ZTER.m 2009-04-17 23:43:17 +0000
4@@ -0,0 +1,143 @@
5+%ZTER ; ISC-SF.SEA/JLI MSC/RHL - KERNEL ERROR TRAP TO LOG ERRORS ;11/23/2005
6+ ;;8.0;KERNEL;**8,18,32,24,36,63,73,79,86,112,118,162,275,392,MSC**;JUL 10, 1995;Build 5
7+ S ^TMP("$ZE",$J,1)=$$LGR^%ZOSV
8+ S ^TMP("$ZE",$J,0)=$$EC^%ZOSV ;$S(^%ZOSF("OS")["GT.M":$ZS,1:$ZE)
9+ S ^TMP("$ZE",$J,2)=$ETRAP,$ETRAP="D ERR^%ZTER"
10+ I (^TMP("$ZE",$J,0)["-ALLOC,")!(^TMP("$ZE",$J,0)["<STORE>")!(^TMP("$ZE",$J,0)["-MEMORY") D
11+ . I '$D(XUALLOC) D
12+ . . K (%ZTERLGR,DUZ,DT,DISYS,IO,IOBS,IOF,IOM,ION,IOSL,IOST,IOT,IOS,IOXY,U,XRTL,XQVOL,XQY,XQY0,XQDIC,XQPSM,XQPT,XQAUDIT,XQXFLG,ZTSTOP,ZTQUEUED,ZTREQ,DA,D0,DI,DIC,DIE)
13+ . S %ZTER12A="ALLOC"
14+ K XUALLOC
15+ S %ZTERZE=^TMP("$ZE",$J,0),%ZT("^XUTL(""XQ"",$J)")="" S:'$D(%ZTERLGR) %ZTERLGR=^TMP("$ZE",$J,1)
16+ G:$$SCREEN(%ZTERZE,1) EXIT ;Let site screen errors, count don't show
17+ ;Get a record.
18+ S %ZTERH1=+$H L +^%ZTER(1,%ZTERH1,0):15
19+ S %ZTER11N=$P($G(^%ZTER(1,%ZTERH1,0)),"^",2)+1,^%ZTER(1,%ZTERH1,0)=%ZTERH1_"^"_%ZTER11N,^(1,0)="^3.0751^"_%ZTER11N_"^"_%ZTER11N
20+ I %ZTER11N=1 S ^%ZTER(1,0)=$P(^%ZTER(1,0),"^",1,2)_"^"_%ZTERH1_"^"_($P(^%ZTER(1,0),"^",4)+1)
21+ L -^%ZTER(1,%ZTERH1,0)
22+ S %ZTERRT=$NA(^%ZTER(1,%ZTERH1,1,%ZTER11N))
23+ S @%ZTERRT@(0)=%ZTER11N,^("ZE")=%ZTERZE S:$D(%ZTERLGR) ^("GR")=%ZTERLGR K %ZTERLGR
24+ K %ZTER11B
25+ ;Get $ZB
26+ I ^%ZOSF("OS")["DSM"!(^%ZOSF("OS")["GT.M") D
27+ . Q:'$L($ZB) ; rhl/medsphere 20070518
28+ . F %ZTER11I=1:1:$L($ZB) S %ZTER11A=$E($ZB,%ZTER11I),%ZTER11B=$G(%ZTER11B)_$S(%ZTER11A?1C:$A(%ZTER11A),1:%ZTER11A)_","
29+ . S %ZTER11B=$E(%ZTER11B,1,$L(%ZTER11B)-1)
30+ . Q
31+ S:'$D(%ZTER11B) %ZTER11B=$ZB
32+ S %ZTER11I="" I $D(^%ZOSF("UCI")) K %ZTER11A S:$D(Y) %ZTER11A="" S:($D(Y)#2) %ZTER11A=Y X ^%ZOSF("UCI") S %ZTER11I=Y K:'$D(%ZTER11A) Y S:$D(%ZTER11A) Y=%ZTER11A
33+ S @%ZTERRT@("H")=$H,^("J")=$J_"^^^"_%ZTER11I_"^"_$J
34+ S @%ZTERRT@("I")=$I_"^"_$ZA_"^"_%ZTER11B_"^"_$G(IO("ZIO"))_"^"_$X_"^"_$Y_"^"_$P
35+ S %ZTERROR=$$ETXT
36+ S %ZTERCNT=0
37+ D STACK^%ZTER1 ;Save Special Variables
38+ D SAVE("$X $Y",$X_" "_$Y)
39+ I ^%ZOSF("OS")["OpenM" D
40+ . D SAVE("$ZU(56,2)",$ZU(56,2))
41+ . I $ZV["VMS" S $P(@%ZTERRT@("J"),"^",2,3)=$ZF("GETJPI",$J,"PRCNAM")_"^"_$ZF("GETJPI",$J,"USERNAME")
42+ D SAVE("$ZV",$ZV)
43+ ;End Special Variables
44+ I ^%ZOSF("OS")["VAX DSM" K %ZTER11A,%ZTER11B D VXD^%ZTER1 I 1
45+ E D
46+ . S %ZTERVAR="%" D:$D(%) VAR:$D(%)#2,SUBS:$D(%)>9
47+ . F %ZTER11Z=0:0 S %ZTERVAR=$O(@%ZTERVAR) Q:%ZTERVAR="" D VAR:$D(@%ZTERVAR)#2,SUBS:$D(@%ZTERVAR)>9
48+ D GLOB
49+ S:%ZTERCNT>0 @%ZTERRT@("ZV",0)="^3.0752^"_%ZTERCNT_"^"_%ZTERCNT
50+ S:'$D(^%ZTER(1,"B",%ZTERH1)) ^(%ZTERH1,%ZTERH1)=""
51+ S ^%ZTER(1,%ZTERH1,1,"B",%ZTER11N,%ZTER11N)=""
52+LIN ;Find the line of the error
53+ S %ZTERY=$P(%ZTERZE,","),%ZTERX=$P(%ZTERY,"^") S:%ZTERX[">" %ZTERX=$P(%ZTERX,">",2)
54+ I %ZTERX'="" D
55+ . N X,XCNP,DIF K ^TMP($J,"XTER1")
56+ . S X=$P($P(%ZTERY,"^",2),":") Q:X="" X ^%ZOSF("TEST") Q:'$T
57+ . S XCNP=0,DIF="^TMP($J,""XTER1""," X ^%ZOSF("LOAD") S %ZTERY=$P(%ZTERX,"+",1)
58+ . I %ZTERY'="" F X=0:0 S X=$O(^TMP($J,"XTER1",X)) Q:X'>0 I $P(^(X,0)," ")=%ZTERY S X=X+$P(%ZTERX,"+",2),%ZTZLIN=$G(^TMP($J,"XTER1",X,0)) Q
59+ . I %ZTERY="" S X=+$P(%ZTERX,"+",2) Q:X'>0 S %ZTZLIN=$G(^TMP($J,"XTER1",X,0))
60+ K ^TMP($J,"XTER1")
61+ S:$D(%ZTZLIN) @%ZTERRT@("LINE")=%ZTZLIN K %ZTZLIN
62+ I %ZTERROR'="",$D(^%ZTER(2,"B",%ZTERROR)) S %ZTERROR=%ZTERROR_"^"_$P(^%ZTER(2,+$O(^(%ZTERROR,0)),0),"^",2)
63+EXIT ;
64+ I $G(%ZTER12A)["ALLOC" HALT ;Don't allow job to go on.
65+ S $EC="",$ET=$G(^TMP("$ZE",$J,2))
66+ K ^TMP("$ZE",$J)
67+ K %ZTER11A,%ZTER11B,%ZTERCNT,%ZTER11S,%ZTER11Z,%ZTERVAP,%ZTERVAR,%ZTERSUB,%ZTER11I,%ZTER11D,%ZTER11L,%ZTER11Q,%,%ZTER111,%ZTER112,%ZTER11N
68+ K %ZTERRT,%ZTERH1
69+ Q
70+ ;
71+VAR I "%ZTER"'=$E(%ZTERVAR,1,5) D SAVE(%ZTERVAR,@%ZTERVAR) Q
72+ S %ZTERCNT=%ZTERCNT+1,@%ZTERRT@("ZV",%ZTERCNT,0)=%ZTERVAR D
73+ . I $L(@%ZTERVAR)'>255 S @%ZTERRT@("ZV",%ZTERCNT,"D")=@%ZTERVAR Q
74+ . S @%ZTERRT@("ZV",%ZTERCNT,"D")=" **** VALUE IS GREATER THAN 255 CHARACTERS (SEE SUBNODES FOR DATA) *** "
75+ . N %ZTER11,%ZTER12
76+ . F %ZTER11=1:1 S %ZTER12=$E(@%ZTERVAR,1,245) Q:%ZTER12="" S @%ZTERVAR=$E(@%ZTERVAR,246,$L(@%ZTERVAR)),@%ZTERRT@("ZV",%ZTERCNT,"D",%ZTER11)=%ZTER12
77+ . Q
78+ Q
79+ ;
80+SAVE(%n,%v) ;Save name and value into global, use special variables
81+ S %ZTERCNT=%ZTERCNT+1,@%ZTERRT@("ZV",%ZTERCNT,0)=%n
82+ I $L(%v)<256 S @%ZTERRT@("ZV",%ZTERCNT,"D")=%v Q
83+ ;Variable too long for global node
84+ S @%ZTERRT@("ZV",%ZTERCNT,"D")=$E(%v,1,255),^("L")=$L(%v)
85+ N %i S %v=$E(%v,256,$L(%v))
86+ F %i=1:1 Q:'$L(%v) S @%ZTERRT@("ZV",%ZTERCNT,"D",%i)=$E(%v,1,255),%v=$E(%v,256,$L(%v))
87+ Q
88+ ;
89+SUBS S %ZTER11S="" Q:"%ZT("=$E(%ZTERVAR,1,4) Q:",%ZTER11S,%ZTER11L,"[(","_%ZTERVAR_",") S %ZTERVAP=%ZTERVAR_"(",%ZTERSUB="%ZTER11S)"
90+ ;
91+ S %ZTER11S=%ZTERVAR
92+ F S %ZTER11S=$Q(@%ZTER11S) Q:%ZTER11S="" D SAVE(%ZTER11S,@%ZTER11S)
93+ Q
94+ ;
95+GLOB ; save off a list of global subtrees, %ZT is passed in subscripted by name
96+ ; %ZTERCNT passed in to count the nodes we traverse
97+ ; %ZTERNOD the nodes through which we $QUERY
98+ ; %ZTERNAM the names of the global subtrees we're saving
99+ ; %ZTEROPN is %ZTERNAM, evaluated, without close paren for $PIECEing
100+ N %ZTERNOD,%ZTERNAM,%ZTEROPN
101+ S %ZTERNAM="" ; the names of the global subtrees we're saving
102+ F S %ZTERNAM=$O(%ZT(%ZTERNAM)) Q:%ZTERNAM="" D
103+ . S %ZTERNOD=$NA(@%ZTERNAM) ; fully evaluate all the subscripts (incl. $J)
104+ . S %ZTEROPN=$E(%ZTERNOD,1,$L(%ZTERNOD)-1) ; save %ZTERNOD w/o close paren
105+ . ;S %ZTERSUB=$QL(%ZTERNOD) ; how many subscripts in the subtree root's name
106+ . F S %ZTERNOD=$Q(@%ZTERNOD) Q:%ZTERNOD="" Q:%ZTERNOD'[%ZTEROPN D ; traverse subtree
107+ . . S %ZTERCNT=%ZTERCNT+1 ; count each node
108+ . . S @%ZTERRT@("ZV",%ZTERCNT,0)=$P(%ZTERNAM,")")_$P(%ZTERNOD,%ZTEROPN,2) ; unevaluated name
109+ . . S @%ZTERRT@("ZV",%ZTERCNT,"D")=$G(@%ZTERNOD) ; value of node
110+ Q
111+ ;
112+ETXT() ;Return the Text of the error
113+ Q $S(%ZTERZE["%DSM-E":$P($P(%ZTERZE,"%DSM-E-",2),","),1:$P($P(%ZTERZE,"<",2),">"))
114+ ;
115+ERR ;Handle an error in %ZTER
116+ I $D(%ZTERH1),$D(%ZTER11N) S ^%ZTER(1,%ZTERH1,1,%ZTER11N,"ZE2")="%ZTER error: "_$ECODE
117+ ;Should ^TMP("$ZE",$J) be killed here
118+ HALT
119+ ;
120+SCREEN(ERR,%ZT3) ;Screen out certain errors.
121+ N %ZTE,%ZTI,%ZTJ S:'$D(ERR) ERR=$$EC^%ZOSV
122+ S %ZTE="",%ZTI=0
123+ F %ZTJ=2,1 D Q:%ZTI>0
124+ . F %ZTI=0:0 S %ZTI=$O(^%ZTER(2,"AC",%ZTJ,%ZTI)) Q:%ZTI="" S %ZTE=$S($G(^%ZTER(2,%ZTI,2))]"":^(2),1:$P(^(0),"^")) Q:ERR[%ZTE
125+ . Q
126+ ;Next see if we should count the error
127+ I %ZTI>0 S %ZTE=$G(^%ZTER(2,%ZTI,0)) D Q $P(%ZTE,"^",3)=2 ;See if we skip the recording of the error.
128+ . Q:(%ZTJ=1)&('$G(%ZT3))
129+ . I $P(%ZTE,"^",4) L +^%ZTER(2,%ZTI) S ^(3)=$G(^%ZTER(2,%ZTI,3))+1 L -^%ZTER(2,%ZTI)
130+ . Q
131+ Q 0 ;record error
132+ ;
133+UNWIND ;Unwind stack for new error trap. Called by app code.
134+ S $ECODE="" S $ETRAP="D UNW^%ZTER Q:'$QUIT Q -9" S $ECODE=",U1,"
135+UNW Q:$ESTACK>1 S $ECODE="" Q
136+ ;
137+NEWERR() ;Does this OS support the M95 error trapping
138+ Q 1 ;All current M system now support 95 error trapping
139+ N % S %=$G(^%ZOSF("OS")) Q:%="" 0
140+ I %["VAX DSM" Q 1
141+ I %["GT.M" Q 1
142+ I %["MSM",$P($ZV,"Version ",2)'<4.3 Q 1
143+ I %["OpenM" Q 1 ;For version >7.0 or NexGen or Cache
144+ Q 0
145+ABORT ;Pop the stack all the way.
146+ S $ETRAP="Q:$ST>1 S $ECODE="""" Q"
147+ Q

Subscribers

People subscribed via source and target branches