%!PS-Adobe-3.0 %%BoundingBox: (atend) %%Pages: (atend) %%PageOrder: (atend) %%DocumentFonts: (atend) %%Creator: Frame 5.0 %%DocumentData: Clean7Bit %%EndComments %%BeginProlog % % Frame ps_prolog 5.0, for use with Frame 5.0 products % This ps_prolog file is Copyright (c) 1986-1995 Frame Technology % Corporation. All rights reserved. This ps_prolog file may be % freely copied and distributed in conjunction with documents created % using FrameMaker, FrameMaker/SGML and FrameViewer as long as this % copyright notice is preserved. % % FrameMaker users specify the proper paper size for each print job in the % "Print" dialog's "Printer Paper Size" "Width" and "Height~ fields. If the % printer that the PS file is sent to does not support the requested paper % size, or if there is no paper tray of the proper size currently installed, % then the job will not be printed. The following flag, if set to true, will % cause the job to print on the default paper in such cases. /FMAllowPaperSizeMismatch false def % % Frame products normally print colors as their true color on a color printer % or as shades of gray, based on luminance, on a black-and white printer. The % following flag, if set to true, forces all non-white colors to print as pure % black. This has no effect on bitmap images. /FMPrintAllColorsAsBlack false def % % Frame products can either set their own line screens or use a printer's % default settings. Three flags below control this separately for no % separations, spot separations and process separations. If a flag % is true, then the default printer settings will not be changed. If it is % false, Frame products will use their own settings from a table based on % the printer's resolution. /FMUseDefaultNoSeparationScreen true def /FMUseDefaultSpotSeparationScreen true def /FMUseDefaultProcessSeparationScreen false def % % For any given PostScript printer resolution, Frame products have two sets of % screen angles and frequencies for printing process separations, which are % recomended by Adobe. The following variable chooses the higher frequencies % when set to true or the lower frequencies when set to false. This is only % effective if the appropriate FMUseDefault...SeparationScreen flag is false. /FMUseHighFrequencyScreens true def % % The following is a set of predefined optimal frequencies and angles for various % common dpi settings. This is taken from "Advances in Color Separation Using % PostScript Software Technology," from Adobe Systems (3/13/89 P.N. LPS 0043) % and corrolated with information which is in various PPD (4.0) files. % % The "dpiranges" figure is the minimum dots per inch device resolution which % can support this setting. The "low" and "high" values are controlled by the % setting of the FMUseHighFrequencyScreens flag above. The "TDot" flags control % the use of the "Yellow Triple Dot" feature whereby the frequency id divided by % three, but the dot function is "trippled" giving a block of 3x3 dots per cell. % % PatFreq is a compromise pattern frequency for ps Level 2 printers which is close % to the ideal WYSIWYG pattern frequency of 9 repetitions/inch but does not beat % (too badly) against the screen frequencies of any separations for that DPI. /dpiranges [ 2540 2400 1693 1270 1200 635 600 0 ] def /CMLowFreqs [ 100.402 94.8683 89.2289 100.402 94.8683 66.9349 63.2456 47.4342 ] def /YLowFreqs [ 95.25 90.0 84.65 95.25 90.0 70.5556 66.6667 50.0 ] def /KLowFreqs [ 89.8026 84.8528 79.8088 89.8026 84.8528 74.8355 70.7107 53.033 ] def /CLowAngles [ 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 ] def /MLowAngles [ 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 ] def /YLowTDot [ true true false true true false false false ] def /CMHighFreqs [ 133.87 126.491 133.843 108.503 102.523 100.402 94.8683 63.2456 ] def /YHighFreqs [ 127.0 120.0 126.975 115.455 109.091 95.25 90.0 60.0 ] def /KHighFreqs [ 119.737 113.137 119.713 128.289 121.218 89.8026 84.8528 63.6395 ] def /CHighAngles [ 71.5651 71.5651 71.5651 70.0169 70.0169 71.5651 71.5651 71.5651 ] def /MHighAngles [ 18.4349 18.4349 18.4349 19.9831 19.9831 18.4349 18.4349 18.4349 ] def /YHighTDot [ false false true false false true true false ] def /PatFreq [ 10.5833 10.0 9.4055 10.5833 10.0 10.5833 10.0 9.375 ] def % % PostScript Level 2 printers contain an "Accurate Screens" feature which can % improve process separation rendering at the expense of compute time. This % flag is ignored by PostScript Level 1 printers. /FMUseAcccurateScreens true def % % The following PostScript procedure defines the spot function that Frame % products will use for process separations. You may un-comment-out one of % the alternative functions below, or use your own. % % Dot function /FMSpotFunction {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1 sub } {dup mul exch dup mul add 1 exch sub }ifelse } def % % Line function % /FMSpotFunction { pop } def % % Elipse function % /FMSpotFunction { dup 5 mul 8 div mul exch dup mul exch add % sqrt 1 exch sub } def % % /FMversion (5.0) def /fMLevel1 /languagelevel where {pop languagelevel} {1} ifelse 2 lt def /FMPColor fMLevel1 { false /colorimage where {pop pop true} if } { true } ifelse def /FrameDict 400 dict def systemdict /errordict known not {/errordict 10 dict def errordict /rangecheck {stop} put} if % The readline in PS 23.0 doesn't recognize cr's as nl's on AppleTalk FrameDict /tmprangecheck errordict /rangecheck get put errordict /rangecheck {FrameDict /bug true put} put FrameDict /bug false put mark % Some PS machines read past the CR, so keep the following 3 lines together! currentfile 5 string readline 00 0000000000 cleartomark errordict /rangecheck FrameDict /tmprangecheck get put FrameDict /bug get { /readline { /gstring exch def /gfile exch def /gindex 0 def { gfile read pop dup 10 eq {exit} if dup 13 eq {exit} if gstring exch gindex exch put /gindex gindex 1 add def } loop pop gstring 0 gindex getinterval true } bind def } if /FMshowpage /showpage load def /FMquit /quit load def /FMFAILURE { dup = flush FMshowpage /Helvetica findfont 12 scalefont setfont 72 200 moveto show 72 220 moveto show FMshowpage FMquit } def /FMVERSION { FMversion ne { (Frame product version does not match ps_prolog! Check installation;) (also check ~/fminit and ./fminit for old versions) FMFAILURE } if } def /FMBADEPSF { (Adobe's PostScript Language Reference Manual, 2nd Edition, section H.2.4) (says your EPS file is not valid, as it calls X ) dup dup (X) search pop exch pop exch pop length 5 -1 roll putinterval FMFAILURE } def /fmConcatProcs { /proc2 exch cvlit def/proc1 exch cvlit def/newproc proc1 length proc2 length add array def newproc 0 proc1 putinterval newproc proc1 length proc2 putinterval newproc cvx }def FrameDict begin [ /ALDsave /FMdicttop /FMoptop /FMpointsize /FMsaveobject /b /bitmapsave /blut /bpside /bs /bstring /bwidth /c /cf /cs /cynu /depth /edown /fh /fillvals /fw /fx /fy /g /gfile /gindex /grnt /gryt /gstring /height /hh /i /im /indx /is /k /kk /landscape /lb /len /llx /lly /m /magu /manualfeed /n /offbits /onbits /organgle /orgbangle /orgbfreq /orgbproc /orgbxfer /orgfreq /orggangle /orggfreq /orggproc /orggxfer /orgmatrix /orgproc /orgrangle /orgrfreq /orgrproc /orgrxfer /orgxfer /pagesave /paperheight /papersizedict /paperwidth /pos /pwid /r /rad /redt /sl /str /tran /u /urx /ury /val /width /width /ws /ww /x /x1 /x2 /xindex /xpoint /xscale /xx /y /y1 /y2 /yelu /yindex /ypoint /yscale /yy ] { 0 def } forall /FmBD {bind def} bind def systemdict /pdfmark known { /fMAcrobat true def /FmPD /pdfmark load def /FmPT /show load def currentdistillerparams /CoreDistVersion get 2000 ge { /FmPD2 /pdfmark load def /FmPA { mark exch /Dest exch 5 3 roll /View [ /XYZ null 6 -2 roll FmDC exch pop null] /DEST FmPD }FmBD } { /FmPD2 /cleartomark load def /FmPA {pop pop pop}FmBD } ifelse } { /fMAcrobat false def /FmPD /cleartomark load def /FmPD2 /cleartomark load def /FmPT /pop load def /FmPA {pop pop pop}FmBD } ifelse /FmDC { transform fMDefaultMatrix itransform cvi exch cvi exch }FmBD /FmBx { dup 3 index lt {3 1 roll exch} if 1 index 4 index lt {4 -1 roll 3 1 roll exch 4 1 roll} if }FmBD /FMnone 0 def /FMcyan 1 def /FMmagenta 2 def /FMyellow 3 def /FMblack 4 def /FMcustom 5 def /fMNegative false def /FrameSepIs FMnone def /FrameSepBlack 0 def /FrameSepYellow 0 def /FrameSepMagenta 0 def /FrameSepCyan 0 def /FrameSepRed 1 def /FrameSepGreen 1 def /FrameSepBlue 1 def /FrameCurGray 1 def /FrameCurPat null def /FrameCurColors [ 0 0 0 1 0 0 0 ] def /FrameColorEpsilon .001 def /eqepsilon { sub dup 0 lt {neg} if FrameColorEpsilon le } bind def /FrameCmpColorsCMYK { 2 copy 0 get exch 0 get eqepsilon { 2 copy 1 get exch 1 get eqepsilon { 2 copy 2 get exch 2 get eqepsilon { 3 get exch 3 get eqepsilon } {pop pop false} ifelse }{pop pop false} ifelse } {pop pop false} ifelse } bind def /FrameCmpColorsRGB { 2 copy 4 get exch 0 get eqepsilon { 2 copy 5 get exch 1 get eqepsilon { 6 get exch 2 get eqepsilon }{pop pop false} ifelse } {pop pop false} ifelse } bind def /RGBtoCMYK { 1 exch sub 3 1 roll 1 exch sub 3 1 roll 1 exch sub 3 1 roll 3 copy 2 copy le { pop } { exch pop } ifelse 2 copy le { pop } { exch pop } ifelse dup dup dup 6 1 roll 4 1 roll 7 1 roll sub 6 1 roll sub 5 1 roll sub 4 1 roll } bind def /CMYKtoRGB { dup dup 4 -1 roll add 5 1 roll 3 -1 roll add 4 1 roll add 1 exch sub dup 0 lt {pop 0} if 3 1 roll 1 exch sub dup 0 lt {pop 0} if exch 1 exch sub dup 0 lt {pop 0} if exch } bind def /FrameSepInit { 1.0 RealSetgray } bind def /FrameSetSepColor { /FrameSepBlue exch def /FrameSepGreen exch def /FrameSepRed exch def /FrameSepBlack exch def /FrameSepYellow exch def /FrameSepMagenta exch def /FrameSepCyan exch def /FrameSepIs FMcustom def setCurrentScreen } bind def /FrameSetCyan { /FrameSepBlue 1.0 def /FrameSepGreen 1.0 def /FrameSepRed 0.0 def /FrameSepBlack 0.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 1.0 def /FrameSepIs FMcyan def setCurrentScreen } bind def /FrameSetMagenta { /FrameSepBlue 1.0 def /FrameSepGreen 0.0 def /FrameSepRed 1.0 def /FrameSepBlack 0.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 1.0 def /FrameSepCyan 0.0 def /FrameSepIs FMmagenta def setCurrentScreen } bind def /FrameSetYellow { /FrameSepBlue 0.0 def /FrameSepGreen 1.0 def /FrameSepRed 1.0 def /FrameSepBlack 0.0 def /FrameSepYellow 1.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 0.0 def /FrameSepIs FMyellow def setCurrentScreen } bind def /FrameSetBlack { /FrameSepBlue 0.0 def /FrameSepGreen 0.0 def /FrameSepRed 0.0 def /FrameSepBlack 1.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 0.0 def /FrameSepIs FMblack def setCurrentScreen } bind def /FrameNoSep { /FrameSepIs FMnone def setCurrentScreen } bind def /FrameSetSepColors { FrameDict begin [ exch 1 add 1 roll ] /FrameSepColors exch def end } bind def /FrameColorInSepListCMYK { FrameSepColors { exch dup 3 -1 roll FrameCmpColorsCMYK { pop true exit } if } forall dup true ne {pop false} if } bind def /FrameColorInSepListRGB { FrameSepColors { exch dup 3 -1 roll FrameCmpColorsRGB { pop true exit } if } forall dup true ne {pop false} if } bind def /RealSetgray /setgray load def /RealSetrgbcolor /setrgbcolor load def /RealSethsbcolor /sethsbcolor load def end /setgray { FrameDict begin FrameSepIs FMnone eq { RealSetgray } { FrameSepIs FMblack eq { RealSetgray } { FrameSepIs FMcustom eq FrameSepRed 0 eq and FrameSepGreen 0 eq and FrameSepBlue 0 eq and { RealSetgray } { 1 RealSetgray pop } ifelse } ifelse } ifelse end } bind def /setrgbcolor { FrameDict begin FrameSepIs FMnone eq { RealSetrgbcolor } { 3 copy [ 4 1 roll ] FrameColorInSepListRGB { FrameSepBlue eq exch FrameSepGreen eq and exch FrameSepRed eq and { 0 } { 1 } ifelse } { FMPColor { RealSetrgbcolor currentcmykcolor } { RGBtoCMYK } ifelse FrameSepIs FMblack eq {1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse RealSetgray } ifelse end } bind def /sethsbcolor { FrameDict begin FrameSepIs FMnone eq { RealSethsbcolor } { RealSethsbcolor currentrgbcolor setrgbcolor } ifelse end } bind def FrameDict begin /setcmykcolor where { pop /RealSetcmykcolor /setcmykcolor load def } { /RealSetcmykcolor { 4 1 roll 3 { 3 index add 0 max 1 min 1 exch sub 3 1 roll} repeat RealSetrgbcolor pop } bind def } ifelse userdict /setcmykcolor { FrameDict begin FrameSepIs FMnone eq { RealSetcmykcolor } { 4 copy [ 5 1 roll ] FrameColorInSepListCMYK { FrameSepBlack eq exch FrameSepYellow eq and exch FrameSepMagenta eq and exch FrameSepCyan eq and { 0 } { 1 } ifelse } { FrameSepIs FMblack eq {1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse RealSetgray } ifelse end } bind put fMLevel1 { /patScreenDict 7 dict dup begin <0f1e3c78f0e1c387> [ 45 { pop } {exch pop} .5 2 sqrt] FmBD <0f87c3e1f0783c1e> [ 135 { pop } {exch pop} .5 2 sqrt] FmBD [ 0 { pop } dup .5 2 ] FmBD [ 90 { pop } dup .5 2 ] FmBD <8142241818244281> [ 45 { 2 copy lt {exch} if pop} dup .75 2 sqrt] FmBD <03060c183060c081> [ 45 { pop } {exch pop} .875 2 sqrt] FmBD <8040201008040201> [ 135 { pop } {exch pop} .875 2 sqrt] FmBD end def } { /patProcDict 5 dict dup begin <0f1e3c78f0e1c387> { 3 setlinewidth -1 -1 moveto 9 9 lineto stroke 4 -4 moveto 12 4 lineto stroke -4 4 moveto 4 12 lineto stroke} bind def <0f87c3e1f0783c1e> { 3 setlinewidth -1 9 moveto 9 -1 lineto stroke -4 4 moveto 4 -4 lineto stroke 4 12 moveto 12 4 lineto stroke} bind def <8142241818244281> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke -1 -1 moveto 9 9 lineto stroke } bind def <03060c183060c081> { 1 setlinewidth -1 -1 moveto 9 9 lineto stroke 4 -4 moveto 12 4 lineto stroke -4 4 moveto 4 12 lineto stroke} bind def <8040201008040201> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke -4 4 moveto 4 -4 lineto stroke 4 12 moveto 12 4 lineto stroke} bind def end def /patDict 15 dict dup begin /PatternType 1 def /PaintType 2 def /TilingType 3 def /BBox [ 0 0 8 8 ] def /XStep 8 def /YStep 8 def /PaintProc { begin patProcDict bstring known { patProcDict bstring get exec } { 8 8 true [1 0 0 -1 0 8] bstring imagemask } ifelse end } bind def end def } ifelse /combineColor { FrameSepIs FMnone eq { graymode fMLevel1 or not { [/Pattern [/DeviceCMYK]] setcolorspace FrameCurColors 0 4 getinterval aload pop FrameCurPat setcolor } { FrameCurColors 3 get 1.0 ge { FrameCurGray RealSetgray } { fMAcrobat not FMPColor graymode and and { 0 1 3 { FrameCurColors exch get 1 FrameCurGray sub mul } for RealSetcmykcolor } { 4 1 6 { FrameCurColors exch get graymode { 1 exch sub 1 FrameCurGray sub mul 1 exch sub } { 1.0 lt {FrameCurGray} {1} ifelse } ifelse } for RealSetrgbcolor } ifelse } ifelse } ifelse } { FrameCurColors 0 4 getinterval aload FrameColorInSepListCMYK { FrameSepBlack eq exch FrameSepYellow eq and exch FrameSepMagenta eq and exch FrameSepCyan eq and FrameSepIs FMcustom eq and { FrameCurGray } { 1 } ifelse } { FrameSepIs FMblack eq {FrameCurGray 1.0 exch sub mul 1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop FrameCurGray 1.0 exch sub mul 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse graymode fMLevel1 or not { [/Pattern [/DeviceGray]] setcolorspace FrameCurPat setcolor } { graymode not fMLevel1 and { dup 1 lt {pop FrameCurGray} if } if RealSetgray } ifelse } ifelse } bind def /savematrix { orgmatrix currentmatrix pop } bind def /restorematrix { orgmatrix setmatrix } bind def /fMDefaultMatrix matrix defaultmatrix def /fMatrix2 matrix def /dpi 72 0 fMDefaultMatrix dtransform dup mul exch dup mul add sqrt def /freq dpi dup 72 div round dup 0 eq {pop 1} if 8 mul div def /sangle 1 0 fMDefaultMatrix dtransform exch atan def sangle fMatrix2 rotate fMDefaultMatrix fMatrix2 concatmatrix dup 0 get /sflipx exch def 3 get /sflipy exch def /screenIndex { 0 1 dpiranges length 1 sub { dup dpiranges exch get 1 sub dpi le {exit} {pop} ifelse } for } bind def /getCyanScreen { FMUseHighFrequencyScreens { CHighAngles CMHighFreqs} {CLowAngles CMLowFreqs} ifelse screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load } bind def /getMagentaScreen { FMUseHighFrequencyScreens { MHighAngles CMHighFreqs } {MLowAngles CMLowFreqs} ifelse screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load } bind def /getYellowScreen { FMUseHighFrequencyScreens { YHighTDot YHighFreqs} { YLowTDot YLowFreqs } ifelse screenIndex dup 3 1 roll get 3 1 roll get { 3 div {2 { 1 add 2 div 3 mul dup floor sub 2 mul 1 sub exch} repeat FMSpotFunction } } {/FMSpotFunction load } ifelse 0.0 exch } bind def /getBlackScreen { FMUseHighFrequencyScreens { KHighFreqs } { KLowFreqs } ifelse screenIndex get 45.0 /FMSpotFunction load } bind def /getSpotScreen { getBlackScreen } bind def /getCompositeScreen { getBlackScreen } bind def /FMSetScreen fMLevel1 { /setscreen load }{ { 8 dict begin /HalftoneType 1 def /SpotFunction exch def /Angle exch def /Frequency exch def /AccurateScreens FMUseAcccurateScreens def currentdict end sethalftone } bind } ifelse def /setDefaultScreen { FMPColor { orgrxfer cvx orggxfer cvx orgbxfer cvx orgxfer cvx setcolortransfer } { orgxfer cvx settransfer } ifelse orgfreq organgle orgproc cvx setscreen } bind def /setCurrentScreen { FrameSepIs FMnone eq { FMUseDefaultNoSeparationScreen { setDefaultScreen } { getCompositeScreen FMSetScreen } ifelse } { FrameSepIs FMcustom eq { FMUseDefaultSpotSeparationScreen { setDefaultScreen } { getSpotScreen FMSetScreen } ifelse } { FMUseDefaultProcessSeparationScreen { setDefaultScreen } { FrameSepIs FMcyan eq { getCyanScreen FMSetScreen } { FrameSepIs FMmagenta eq { getMagentaScreen FMSetScreen } { FrameSepIs FMyellow eq { getYellowScreen FMSetScreen } { getBlackScreen FMSetScreen } ifelse } ifelse } ifelse } ifelse } ifelse } ifelse } bind def end /FMDOCUMENT { array /FMfonts exch def /#copies exch def FrameDict begin 0 ne /manualfeed exch def /paperheight exch def /paperwidth exch def 0 ne /fMNegative exch def 0 ne /edown exch def /yscale exch def /xscale exch def fMLevel1 { manualfeed {setmanualfeed} if /FMdicttop countdictstack 1 add def /FMoptop count def setpapername manualfeed {true} {papersize} ifelse {manualpapersize} {false} ifelse {desperatepapersize} {false} ifelse {papersizefailure} if count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for } {2 dict dup /PageSize [paperwidth paperheight] put manualfeed {dup /ManualFeed manualfeed put} if {setpagedevice} stopped {papersizefailure} if } ifelse FMPColor { currentcolorscreen cvlit /orgproc exch def /organgle exch def /orgfreq exch def cvlit /orgbproc exch def /orgbangle exch def /orgbfreq exch def cvlit /orggproc exch def /orggangle exch def /orggfreq exch def cvlit /orgrproc exch def /orgrangle exch def /orgrfreq exch def currentcolortransfer fMNegative { 1 1 4 { pop { 1 exch sub } fmConcatProcs 4 1 roll } for 4 copy setcolortransfer } if cvlit /orgxfer exch def cvlit /orgbxfer exch def cvlit /orggxfer exch def cvlit /orgrxfer exch def } { currentscreen cvlit /orgproc exch def /organgle exch def /orgfreq exch def currenttransfer fMNegative { { 1 exch sub } fmConcatProcs dup settransfer } if cvlit /orgxfer exch def } ifelse end } def /FMBEGINPAGE { FrameDict begin /pagesave save def 3.86 setmiterlimit /landscape exch 0 ne def landscape { 90 rotate 0 exch dup /pwid exch def neg translate pop }{ pop /pwid exch def } ifelse edown { [-1 0 0 1 pwid 0] concat } if 0 0 moveto paperwidth 0 lineto paperwidth paperheight lineto 0 paperheight lineto 0 0 lineto 1 setgray fill xscale yscale scale /orgmatrix matrix def gsave } def /FMENDPAGE { grestore pagesave restore end showpage } def /FMFONTDEFINE { FrameDict begin findfont ReEncode 1 index exch definefont FMfonts 3 1 roll put end } def /FMFILLS { FrameDict begin dup array /fillvals exch def dict /patCache exch def end } def /FMFILL { FrameDict begin fillvals 3 1 roll put end } def /FMNORMALIZEGRAPHICS { newpath 1 setlinewidth 0 setlinecap 0 0 0 sethsbcolor 0 setgray } bind def /FMBEGINEPSF { end /FMEPSF save def /showpage {} def % See Adobe's "PostScript Language Reference Manual, 2nd Edition", page 714. % "...the following operators MUST NOT be used in an EPS file:" (emphasis ours) /banddevice {(banddevice) FMBADEPSF} def /clear {(clear) FMBADEPSF} def /cleardictstack {(cleardictstack) FMBADEPSF} def /copypage {(copypage) FMBADEPSF} def /erasepage {(erasepage) FMBADEPSF} def /exitserver {(exitserver) FMBADEPSF} def /framedevice {(framedevice) FMBADEPSF} def /grestoreall {(grestoreall) FMBADEPSF} def /initclip {(initclip) FMBADEPSF} def /initgraphics {(initgraphics) FMBADEPSF} def /quit {(quit) FMBADEPSF} def /renderbands {(renderbands) FMBADEPSF} def /setglobal {(setglobal) FMBADEPSF} def /setpagedevice {(setpagedevice) FMBADEPSF} def /setshared {(setshared) FMBADEPSF} def /startjob {(startjob) FMBADEPSF} def /lettertray {(lettertray) FMBADEPSF} def /letter {(letter) FMBADEPSF} def /lettersmall {(lettersmall) FMBADEPSF} def /11x17tray {(11x17tray) FMBADEPSF} def /11x17 {(11x17) FMBADEPSF} def /ledgertray {(ledgertray) FMBADEPSF} def /ledger {(ledger) FMBADEPSF} def /legaltray {(legaltray) FMBADEPSF} def /legal {(legal) FMBADEPSF} def /statementtray {(statementtray) FMBADEPSF} def /statement {(statement) FMBADEPSF} def /executivetray {(executivetray) FMBADEPSF} def /executive {(executive) FMBADEPSF} def /a3tray {(a3tray) FMBADEPSF} def /a3 {(a3) FMBADEPSF} def /a4tray {(a4tray) FMBADEPSF} def /a4 {(a4) FMBADEPSF} def /a4small {(a4small) FMBADEPSF} def /b4tray {(b4tray) FMBADEPSF} def /b4 {(b4) FMBADEPSF} def /b5tray {(b5tray) FMBADEPSF} def /b5 {(b5) FMBADEPSF} def FMNORMALIZEGRAPHICS [/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall fx fw 2 div add fy fh 2 div add translate rotate fw 2 div neg fh 2 div neg translate fw urx llx sub div fh ury lly sub div scale llx neg lly neg translate /FMdicttop countdictstack 1 add def /FMoptop count def } bind def /FMENDEPSF { count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for FMEPSF restore FrameDict begin } bind def FrameDict begin /setmanualfeed { %%BeginFeature *ManualFeed True statusdict /manualfeed true put %%EndFeature } bind def /max {2 copy lt {exch} if pop} bind def /min {2 copy gt {exch} if pop} bind def /inch {72 mul} def /pagedimen { paperheight sub abs 16 lt exch paperwidth sub abs 16 lt and {/papername exch def} {pop} ifelse } bind def /setpapername { /papersizedict 14 dict def papersizedict begin /papername /unknown def /Letter 8.5 inch 11.0 inch pagedimen /LetterSmall 7.68 inch 10.16 inch pagedimen /Tabloid 11.0 inch 17.0 inch pagedimen /Ledger 17.0 inch 11.0 inch pagedimen /Legal 8.5 inch 14.0 inch pagedimen /Statement 5.5 inch 8.5 inch pagedimen /Executive 7.5 inch 10.0 inch pagedimen /A3 11.69 inch 16.5 inch pagedimen /A4 8.26 inch 11.69 inch pagedimen /A4Small 7.47 inch 10.85 inch pagedimen /B4 10.125 inch 14.33 inch pagedimen /B5 7.16 inch 10.125 inch pagedimen end } bind def /papersize { papersizedict begin /Letter {lettertray letter} def /LetterSmall {lettertray lettersmall} def /Tabloid {11x17tray 11x17} def /Ledger {ledgertray ledger} def /Legal {legaltray legal} def /Statement {statementtray statement} def /Executive {executivetray executive} def /A3 {a3tray a3} def /A4 {a4tray a4} def /A4Small {a4tray a4small} def /B4 {b4tray b4} def /B5 {b5tray b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end statusdict begin stopped end } bind def /manualpapersize { papersizedict begin /Letter {letter} def /LetterSmall {lettersmall} def /Tabloid {11x17} def /Ledger {ledger} def /Legal {legal} def /Statement {statement} def /Executive {executive} def /A3 {a3} def /A4 {a4} def /A4Small {a4small} def /B4 {b4} def /B5 {b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end stopped } bind def /desperatepapersize { statusdict /setpageparams known { paperwidth paperheight 0 1 statusdict begin {setpageparams} stopped end } {true} ifelse } bind def /papersizefailure { FMAllowPaperSizeMismatch not { (The requested paper size is not available in any currently-installed tray) (Edit the PS file to "FMAllowPaperSizeMismatch true" to use default tray) FMFAILURE } if } def /DiacriticEncoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute /Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis /atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis /iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex /udieresis /dagger /.notdef /cent /sterling /section /bullet /paragraph /germandbls /registered /copyright /trademark /acute /dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef /yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown /exclamdown /logicalnot /.notdef /florin /.notdef /.notdef /guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde /Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright /quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis /fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl /periodcentered /quotesinglbase /quotedblbase /perthousand /Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron ] def /ReEncode { dup length dict begin { 1 index /FID ne {def} {pop pop} ifelse } forall 0 eq {/Encoding DiacriticEncoding def} if currentdict end } bind def FMPColor { /BEGINBITMAPCOLOR { BITMAPCOLOR} def /BEGINBITMAPCOLORc { BITMAPCOLORc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUECOLOR } def /BEGINBITMAPTRUECOLORc { BITMAPTRUECOLORc } def /BEGINBITMAPCMYK { BITMAPCMYK } def /BEGINBITMAPCMYKc { BITMAPCMYKc } def } { /BEGINBITMAPCOLOR { BITMAPGRAY} def /BEGINBITMAPCOLORc { BITMAPGRAYc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUEGRAY } def /BEGINBITMAPTRUECOLORc { BITMAPTRUEGRAYc } def /BEGINBITMAPCMYK { BITMAPCMYKGRAY } def /BEGINBITMAPCMYKc { BITMAPCMYKGRAYc } def } ifelse /K { FMPrintAllColorsAsBlack { dup 1 eq 2 index 1 eq and 3 index 1 eq and not {7 {pop} repeat 0 0 0 1 0 0 0} if } if FrameCurColors astore pop combineColor } bind def /graymode true def fMLevel1 { /fmGetFlip { fMatrix2 exch get mul 0 lt { -1 } { 1 } ifelse } FmBD } if /setPatternMode { fMLevel1 { 2 index patScreenDict exch known { pop pop patScreenDict exch get aload pop freq mul 5 2 roll fMatrix2 currentmatrix 1 get 0 ne { 3 -1 roll 90 add 3 1 roll sflipx 1 fmGetFlip sflipy 2 fmGetFlip neg mul } { sflipx 0 fmGetFlip sflipy 3 fmGetFlip mul } ifelse 0 lt {exch pop} {pop} ifelse fMNegative { {neg} fmConcatProcs } if bind systemdict /setscreen get exec /FrameCurGray exch def } { /bwidth exch def /bpside exch def /bstring exch def /onbits 0 def /offbits 0 def freq sangle landscape {90 add} if {/ypoint exch def /xpoint exch def /xindex xpoint 1 add 2 div bpside mul cvi def /yindex ypoint 1 add 2 div bpside mul cvi def bstring yindex bwidth mul xindex 8 idiv add get 1 7 xindex 8 mod sub bitshift and 0 ne fMNegative {not} if {/onbits onbits 1 add def 1} {/offbits offbits 1 add def 0} ifelse } setscreen offbits offbits onbits add div fMNegative {1.0 exch sub} if /FrameCurGray exch def } ifelse } { pop pop dup patCache exch known { patCache exch get } { dup patDict /bstring 3 -1 roll put patDict 9 PatFreq screenIndex get div dup matrix scale makepattern dup patCache 4 -1 roll 3 -1 roll put } ifelse /FrameCurGray 0 def /FrameCurPat exch def } ifelse /graymode false def combineColor } bind def /setGrayScaleMode { graymode not { /graymode true def fMLevel1 { setCurrentScreen } if } if /FrameCurGray exch def combineColor } bind def /normalize { transform round exch round exch itransform } bind def /dnormalize { dtransform round exch round exch idtransform } bind def /lnormalize { 0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop } bind def /H { lnormalize setlinewidth } bind def /Z { setlinecap } bind def /PFill { graymode fMLevel1 or not { gsave 1 setgray eofill grestore } if } bind def /PStroke { graymode fMLevel1 or not { gsave 1 setgray stroke grestore } if stroke } bind def /X { fillvals exch get dup type /stringtype eq {8 1 setPatternMode} {setGrayScaleMode} ifelse } bind def /V { PFill gsave eofill grestore } bind def /Vclip { clip } bind def /Vstrk { currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /N { PStroke } bind def /Nclip { strokepath clip newpath } bind def /Nstrk { currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /M {newpath moveto} bind def /E {lineto} bind def /D {curveto} bind def /O {closepath} bind def /L { /n exch def newpath normalize moveto 2 1 n {pop normalize lineto} for } bind def /Y { L closepath } bind def /R { /y2 exch def /x2 exch def /y1 exch def /x1 exch def x1 y1 x2 y1 x2 y2 x1 y2 4 Y } bind def /rarc {rad arcto } bind def /RR { /rad exch def normalize /y2 exch def /x2 exch def normalize /y1 exch def /x1 exch def mark newpath { x1 y1 rad add moveto x1 y2 x2 y2 rarc x2 y2 x2 y1 rarc x2 y1 x1 y1 rarc x1 y1 x1 y2 rarc closepath } stopped {x1 y1 x2 y2 R} if cleartomark } bind def /RRR { /rad exch def normalize /y4 exch def /x4 exch def normalize /y3 exch def /x3 exch def normalize /y2 exch def /x2 exch def normalize /y1 exch def /x1 exch def newpath normalize moveto mark { x2 y2 x3 y3 rarc x3 y3 x4 y4 rarc x4 y4 x1 y1 rarc x1 y1 x2 y2 rarc closepath } stopped {x1 y1 x2 y2 x3 y3 x4 y4 newpath moveto lineto lineto lineto closepath} if cleartomark } bind def /C { grestore gsave R clip setCurrentScreen } bind def /CP { grestore gsave Y clip setCurrentScreen } bind def /F { FMfonts exch get FMpointsize scalefont setfont } bind def /Q { /FMpointsize exch def F } bind def /T { moveto show } bind def /RF { rotate 0 ne {-1 1 scale} if } bind def /TF { gsave moveto RF show grestore } bind def /P { moveto 0 32 3 2 roll widthshow } bind def /PF { gsave moveto RF 0 32 3 2 roll widthshow grestore } bind def /S { moveto 0 exch ashow } bind def /SF { gsave moveto RF 0 exch ashow grestore } bind def /B { moveto 0 32 4 2 roll 0 exch awidthshow } bind def /BF { gsave moveto RF 0 32 4 2 roll 0 exch awidthshow grestore } bind def /G { gsave newpath normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath PFill fill grestore } bind def /Gstrk { savematrix newpath 2 index 2 div add exch 3 index 2 div sub exch normalize 2 index 2 div sub exch 3 index 2 div add exch translate scale 0.0 0.0 1.0 5 3 roll arc restorematrix currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /Gclip { newpath savematrix normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath clip newpath restorematrix } bind def /GG { gsave newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath PFill fill grestore } bind def /GGclip { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath clip newpath restorematrix } bind def /GGstrk { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath restorematrix currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /A { gsave savematrix newpath 2 index 2 div add exch 3 index 2 div sub exch normalize 2 index 2 div sub exch 3 index 2 div add exch translate scale 0.0 0.0 1.0 5 3 roll arc restorematrix PStroke grestore } bind def /Aclip { newpath savematrix normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath strokepath clip newpath restorematrix } bind def /Astrk { Gstrk } bind def /AA { gsave savematrix newpath 3 index 2 div add exch 4 index 2 div sub exch normalize 3 index 2 div sub exch 4 index 2 div add exch translate rotate scale 0.0 0.0 1.0 5 3 roll arc restorematrix PStroke grestore } bind def /AAclip { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath strokepath clip newpath restorematrix } bind def /AAstrk { GGstrk } bind def /BEGINPRINTCODE { /FMdicttop countdictstack 1 add def /FMoptop count 7 sub def /FMsaveobject save def userdict begin /showpage {} def FMNORMALIZEGRAPHICS 3 index neg 3 index neg translate } bind def /ENDPRINTCODE { count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for FMsaveobject restore } bind def /gn { 0 { 46 mul cf read pop 32 sub dup 46 lt {exit} if 46 sub add } loop add } bind def /cfs { /str sl string def 0 1 sl 1 sub {str exch val put} for str def } bind def /ic [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 {0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx} {10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx} {19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12} {13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh} {4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh} {13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl} {7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl} {0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl} {10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl} ] def /ms { /sl exch def /val 255 def /ws cfs /im cfs /val 0 def /bs cfs /cs cfs } bind def 400 ms /ip { is 0 cf cs readline pop { ic exch get exec add } forall pop } bind def /rip { bis ris copy pop is 0 cf cs readline pop { ic exch get exec add } forall pop pop ris gis copy pop dup is exch cf cs readline pop { ic exch get exec add } forall pop pop gis bis copy pop dup add is exch cf cs readline pop { ic exch get exec add } forall pop } bind def /rip4 { kis cis copy pop is 0 cf cs readline pop { ic exch get exec add } forall pop pop cis mis copy pop dup is exch cf cs readline pop { ic exch get exec add } forall pop pop mis yis copy pop dup dup add is exch cf cs readline pop { ic exch get exec add } forall pop pop yis kis copy pop 3 mul is exch cf cs readline pop { ic exch get exec add } forall pop } bind def /wh { /len exch def /pos exch def ws 0 len getinterval im pos len getinterval copy pop pos len } bind def /bl { /len exch def /pos exch def bs 0 len getinterval im pos len getinterval copy pop pos len } bind def /s1 1 string def /fl { /len exch def /pos exch def /val cf s1 readhexstring pop 0 get def pos 1 pos len add 1 sub {im exch val put} for pos len } bind def /hx { 3 copy getinterval cf exch readhexstring pop pop } bind def /wbytes { dup dup 8 gt { pop 8 idiv mul } { 8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse } ifelse } bind def /BEGINBITMAPBWc { 1 {} COMMONBITMAPc } bind def /BEGINBITMAPGRAYc { 8 {} COMMONBITMAPc } bind def /BEGINBITMAP2BITc { 2 {} COMMONBITMAPc } bind def /COMMONBITMAPc { /cvtProc exch def /depth exch def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def cvtProc /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height depth [width 0 0 height neg 0 height] {ip} image bitmapsave restore grestore } bind def /BEGINBITMAPBW { 1 {} COMMONBITMAP } bind def /BEGINBITMAPGRAY { 8 {} COMMONBITMAP } bind def /BEGINBITMAP2BIT { 2 {} COMMONBITMAP } bind def /COMMONBITMAP { /cvtProc exch def /depth exch def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def cvtProc /is width depth wbytes string def /cf currentfile def width height depth [width 0 0 height neg 0 height] {cf is readhexstring pop} image bitmapsave restore grestore } bind def /ngrayt 256 array def /nredt 256 array def /nbluet 256 array def /ngreent 256 array def fMLevel1 { /colorsetup { currentcolortransfer /gryt exch def /blut exch def /grnt exch def /redt exch def 0 1 255 { /indx exch def /cynu 1 red indx get 255 div sub def /magu 1 green indx get 255 div sub def /yelu 1 blue indx get 255 div sub def /kk cynu magu min yelu min def /u kk currentundercolorremoval exec def % /u 0 def nredt indx 1 0 cynu u sub max sub redt exec put ngreent indx 1 0 magu u sub max sub grnt exec put nbluet indx 1 0 yelu u sub max sub blut exec put ngrayt indx 1 kk currentblackgeneration exec sub gryt exec put } for {255 mul cvi nredt exch get} {255 mul cvi ngreent exch get} {255 mul cvi nbluet exch get} {255 mul cvi ngrayt exch get} setcolortransfer {pop 0} setundercolorremoval {} setblackgeneration } bind def } { /colorSetup2 { [ /Indexed /DeviceRGB 255 {dup red exch get 255 div exch dup green exch get 255 div exch blue exch get 255 div} ] setcolorspace } bind def } ifelse /fakecolorsetup { /tran 256 string def 0 1 255 {/indx exch def tran indx red indx get 77 mul green indx get 151 mul blue indx get 28 mul add add 256 idiv put} for currenttransfer {255 mul cvi tran exch get 255.0 div} exch fmConcatProcs settransfer } bind def /BITMAPCOLOR { /depth 8 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def fMLevel1 { colorsetup /is width depth wbytes string def /cf currentfile def width height depth [width 0 0 height neg 0 height] {cf is readhexstring pop} {is} {is} true 3 colorimage } { colorSetup2 /is width depth wbytes string def /cf currentfile def 7 dict dup begin /ImageType 1 def /Width width def /Height height def /ImageMatrix [width 0 0 height neg 0 height] def /DataSource {cf is readhexstring pop} bind def /BitsPerComponent depth def /Decode [0 255] def end image } ifelse bitmapsave restore grestore } bind def /BITMAPCOLORc { /depth 8 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def fMLevel1 { colorsetup /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height depth [width 0 0 height neg 0 height] {ip} {is} {is} true 3 colorimage } { colorSetup2 /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def 7 dict dup begin /ImageType 1 def /Width width def /Height height def /ImageMatrix [width 0 0 height neg 0 height] def /DataSource {ip} bind def /BitsPerComponent depth def /Decode [0 255] def end image } ifelse bitmapsave restore grestore } bind def /BITMAPTRUECOLORc { /depth 24 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /ris im 0 width getinterval def /gis im width width getinterval def /bis im width 2 mul width getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height 8 [width 0 0 height neg 0 height] {width rip pop ris} {gis} {bis} true 3 colorimage bitmapsave restore grestore } bind def /BITMAPCMYKc { /depth 32 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /cis im 0 width getinterval def /mis im width width getinterval def /yis im width 2 mul width getinterval def /kis im width 3 mul width getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height 8 [width 0 0 height neg 0 height] {width rip4 pop cis} {mis} {yis} {kis} true 4 colorimage bitmapsave restore grestore } bind def /BITMAPTRUECOLOR { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def /is width string def /gis width string def /bis width string def /cf currentfile def width height 8 [width 0 0 height neg 0 height] { cf is readhexstring pop } { cf gis readhexstring pop } { cf bis readhexstring pop } true 3 colorimage bitmapsave restore grestore } bind def /BITMAPCMYK { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def /is width string def /mis width string def /yis width string def /kis width string def /cf currentfile def width height 8 [width 0 0 height neg 0 height] { cf is readhexstring pop } { cf mis readhexstring pop } { cf yis readhexstring pop } { cf kis readhexstring pop } true 4 colorimage bitmapsave restore grestore } bind def /BITMAPTRUEGRAYc { /depth 24 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /ris im 0 width getinterval def /gis im width width getinterval def /bis im width 2 mul width getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height 8 [width 0 0 height neg 0 height] {width rip pop ris gis bis width gray} image bitmapsave restore grestore } bind def /BITMAPCMYKGRAYc { /depth 32 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /cis im 0 width getinterval def /mis im width width getinterval def /yis im width 2 mul width getinterval def /kis im width 3 mul width getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height 8 [width 0 0 height neg 0 height] {width rip pop cis mis yis kis width cgray} image bitmapsave restore grestore } bind def /cgray { /ww exch def /k exch def /y exch def /m exch def /c exch def 0 1 ww 1 sub { /i exch def c i get m i get y i get k i get CMYKtoRGB .144 mul 3 1 roll .587 mul 3 1 roll .299 mul add add c i 3 -1 roll floor cvi put } for c } bind def /gray { /ww exch def /b exch def /g exch def /r exch def 0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul b i get .114 mul add add r i 3 -1 roll floor cvi put } for r } bind def /BITMAPTRUEGRAY { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def /is width string def /gis width string def /bis width string def /cf currentfile def width height 8 [width 0 0 height neg 0 height] { cf is readhexstring pop cf gis readhexstring pop cf bis readhexstring pop width gray} image bitmapsave restore grestore } bind def /BITMAPCMYKGRAY { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def /is width string def /yis width string def /mis width string def /kis width string def /cf currentfile def width height 8 [width 0 0 height neg 0 height] { cf is readhexstring pop cf mis readhexstring pop cf yis readhexstring pop cf kis readhexstring pop width cgray} image bitmapsave restore grestore } bind def /BITMAPGRAY { 8 {fakecolorsetup} COMMONBITMAP } bind def /BITMAPGRAYc { 8 {fakecolorsetup} COMMONBITMAPc } bind def /ENDBITMAP { } bind def end /ALDmatrix matrix def ALDmatrix currentmatrix pop /StartALD { /ALDsave save def savematrix ALDmatrix setmatrix } bind def /InALD { restorematrix } bind def /DoneALD { ALDsave restore } bind def /I { setdash } bind def /J { [] 0 setdash } bind def %%EndProlog %%BeginSetup (5.0) FMVERSION 1 1 0 0 612 792 0 1 25 FMDOCUMENT 0 0 /Palatino-Italic FMFONTDEFINE 1 0 /Palatino-Roman FMFONTDEFINE 2 0 /Times-Roman FMFONTDEFINE 3 0 /Helvetica FMFONTDEFINE 4 0 /Helvetica-Bold FMFONTDEFINE 5 0 /Palatino-Bold FMFONTDEFINE 6 0 /Times-Bold FMFONTDEFINE 7 0 /Courier FMFONTDEFINE 8 0 /Times-Italic FMFONTDEFINE 32 FMFILLS 0 0 FMFILL 1 0.1 FMFILL 2 0.3 FMFILL 3 0.5 FMFILL 4 0.7 FMFILL 5 0.9 FMFILL 6 0.97 FMFILL 7 1 FMFILL 8 <0f1e3c78f0e1c387> FMFILL 9 <0f87c3e1f0783c1e> FMFILL 10 FMFILL 11 FMFILL 12 <8142241818244281> FMFILL 13 <03060c183060c081> FMFILL 14 <8040201008040201> FMFILL 16 1 FMFILL 17 0.9 FMFILL 18 0.7 FMFILL 19 0.5 FMFILL 20 0.3 FMFILL 21 0.1 FMFILL 22 0.03 FMFILL 23 0 FMFILL 24 FMFILL 25 FMFILL 26 <3333333333333333> FMFILL 27 <0000ffff0000ffff> FMFILL 28 <7ebddbe7e7dbbd7e> FMFILL 29 FMFILL 30 <7fbfdfeff7fbfdfe> FMFILL %%EndSetup %%Page: "1" 1 %%BeginPaperSize: Letter %%EndPaperSize 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K J 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 522 99 576 117 R V 0.3 H 0 Z N 54 619.13 558 641.38 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 72 612 720 C 0 20 Q 0 X 0 0 0 1 0 0 0 K -2.5 (Java\252 Object Serialization Speci\336cation) 198 605.79 P 1 10 Q -1.3 0.1 (Object serialization in the Java\252 system) 198 281.33 B 2 F -1.3 0.1 (is the process of creating a serialized) 373.97 281.33 B -1.3 0.1 (representation of objects or a graph of objects. Object v) 198 270.33 B -1.3 0.1 (alues and types are serialized with) 413.92 270.33 B -1.3 0.1 (suf) 198 259.33 B -1.3 0.1 (\336cient information to insure that the equi) 210.27 259.33 B -1.3 0.1 (v) 370.3 259.33 B -1.3 0.1 (alent typed object can be recreated.) 375.15 259.33 B -1.3 0.1 (Deserialization is the symmetric process of recreating the object or graph of objects from) 198 248.33 B -1.3 0.1 (the serialized representation. Dif) 198 237.33 B -1.3 0.1 (ferent v) 327.77 237.33 B -1.3 0.1 (ersions of a class can write and read compatible) 357.94 237.33 B 0.1 (streams.) 198 226.33 S 1 7 Q (Revision) 198 195.33 T (1.4.1,) 226.67 195.33 T (October 8, 1997) 244.17 195.33 T 34 182 36 200 R V 54 322.69 558 517.34 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 182 505 394 609 212 104 200 368.02 FMBEGINEPSF %%BeginDocument: %!PS-Adobe-2.0 EPSF-2.0 %%Creator: Adobe Illustrator(TM) 3.2 %%For: (Mike Quillman) (Sun Microsystems) %%Title: (beta.draft.type) %%CreationDate: (9/2/94) (3:42 PM) %%BoundingBox: 182 505 394 609 %%DocumentProcessColors: Black %%DocumentSuppliedResources: procset Adobe_packedarray 2.0 0 %%+ procset Adobe_cmykcolor 1.1 0 %%+ procset Adobe_cshow 1.1 0 %%+ procset Adobe_customcolor 1.0 0 %%+ procset Adobe_IllustratorA_AI3 1.0 1 %AI3_ColorUsage: Black&White %AI3_TemplateBox: 306 396 306 396 %AI3_TileBox: 30 31 582 761 %AI3_DocumentPreview: Macintosh_Pic %%EndComments %%BeginProlog %%BeginResource: procset Adobe_packedarray 2.0 0 %%Title: (Packed Array Operators) %%Version: 2.0 %%CreationDate: (8/2/90) () %%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved) userdict /Adobe_packedarray 5 dict dup begin put /initialize % - initialize - { /packedarray where { pop } { Adobe_packedarray begin Adobe_packedarray { dup xcheck { bind } if userdict 3 1 roll put } forall end } ifelse } def /terminate % - terminate - { } def /packedarray % arguments count packedarray array { array astore readonly } def /setpacking % boolean setpacking - { pop } def /currentpacking % - setpacking boolean { false } def currentdict readonly pop end %%EndResource Adobe_packedarray /initialize get exec %%BeginResource: procset Adobe_cmykcolor 1.1 0 %%Title: (CMYK Color Operators) %%Version: 1.1 %%CreationDate: (1/23/89) () %%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved) currentpacking true setpacking userdict /Adobe_cmykcolor 4 dict dup begin put /initialize % - initialize - { /setcmykcolor where { pop } { userdict /Adobe_cmykcolor_vars 2 dict dup begin put /_setrgbcolor /setrgbcolor load def /_currentrgbcolor /currentrgbcolor load def Adobe_cmykcolor begin Adobe_cmykcolor { dup xcheck { bind } if pop pop } forall end end Adobe_cmykcolor begin } ifelse } def /terminate % - terminate - { currentdict Adobe_cmykcolor eq { end } if } def /setcmykcolor % cyan magenta yellow black setcmykcolor - { 1 sub 4 1 roll 3 { 3 index add neg dup 0 lt { pop 0 } if 3 1 roll } repeat Adobe_cmykcolor_vars /_setrgbcolor get exec pop } def /currentcmykcolor % - currentcmykcolor cyan magenta yellow black { Adobe_cmykcolor_vars /_currentrgbcolor get exec 3 { 1 sub neg 3 1 roll } repeat 0 } def currentdict readonly pop end setpacking %%EndResource %%BeginResource: procset Adobe_cshow 1.1 0 %%Title: (cshow Operator) %%Version: 1.1 %%CreationDate: (1/23/89) () %%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved) currentpacking true setpacking userdict /Adobe_cshow 3 dict dup begin put /initialize % - initialize - { /cshow where { pop } { userdict /Adobe_cshow_vars 1 dict dup begin put /_cshow % - _cshow proc {} def Adobe_cshow begin Adobe_cshow { dup xcheck { bind } if userdict 3 1 roll put } forall end end } ifelse } def /terminate % - terminate - { } def /cshow % proc string cshow - { exch Adobe_cshow_vars exch /_cshow exch put { 0 0 Adobe_cshow_vars /_cshow get exec } forall } def currentdict readonly pop end setpacking %%EndResource %%BeginResource: procset Adobe_customcolor 1.0 0 %%Title: (Custom Color Operators) %%Version: 1.0 %%CreationDate: (5/9/88) () %%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved) currentpacking true setpacking userdict /Adobe_customcolor 5 dict dup begin put /initialize % - initialize - { /setcustomcolor where { pop } { Adobe_customcolor begin Adobe_customcolor { dup xcheck { bind } if pop pop } forall end Adobe_customcolor begin } ifelse } def /terminate % - terminate - { currentdict Adobe_customcolor eq { end } if } def /findcmykcustomcolor % cyan magenta yellow black name findcmykcustomcolor object { 5 packedarray } def /setcustomcolor % object tint setcustomcolor - { exch aload pop pop 4 { 4 index mul 4 1 roll } repeat 5 -1 roll pop setcmykcolor } def /setoverprint % boolean setoverprint - { pop } def currentdict readonly pop end setpacking %%EndResource %%BeginResource: procset Adobe_IllustratorA_AI3 1.0 2 %%Title: (Adobe Illustrator (R) Version 3.0 Abbreviated Prolog) %%Version: 1.0 %%CreationDate: (7/22/89) () %%Copyright: ((C) 1987-1990 Adobe Systems Incorporated All Rights Reserved) currentpacking true setpacking userdict /Adobe_IllustratorA_AI3 61 dict dup begin put % initialization /initialize % - initialize - { % 47 vars, but leave slack of 10 entries for custom Postscript fragments userdict /Adobe_IllustratorA_AI3_vars 57 dict dup begin put % paint operands /_lp /none def /_pf {} def /_ps {} def /_psf {} def /_pss {} def /_pjsf {} def /_pjss {} def /_pola 0 def /_doClip 0 def % paint operators /cf currentflat def % - cf flatness % typography operands /_tm matrix def /_renderStart [/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0] def /_renderEnd [null null null null /i1 /i1 /i1 /i1] def /_render -1 def /_rise 0 def /_ax 0 def % x character spacing (_ax, _ay, _cx, _cy follows awidthshow naming convention) /_ay 0 def % y character spacing /_cx 0 def % x word spacing /_cy 0 def % y word spacing /_leading [0 0] def /_ctm matrix def /_mtx matrix def /_sp 16#020 def /_hyphen (-) def /_fScl 0 def /_cnt 0 def /_hs 1 def /_nativeEncoding 0 def /_useNativeEncoding 0 def /_tempEncode 0 def /_pntr 0 def /_tDict 2 dict def % typography operators /Tx {} def /Tj {} def % compound path operators /CRender {} def % printing /_AI3_savepage {} def % color operands /_gf null def /_cf 4 array def /_if null def /_of false def /_fc {} def /_gs null def /_cs 4 array def /_is null def /_os false def /_sc {} def /_i null def Adobe_IllustratorA_AI3 begin Adobe_IllustratorA_AI3 { dup xcheck { bind } if pop pop } forall end end Adobe_IllustratorA_AI3 begin Adobe_IllustratorA_AI3_vars begin newpath } def /terminate % - terminate - { end end } def % definition operators /_ % - _ null null def /ddef % key value ddef - { Adobe_IllustratorA_AI3_vars 3 1 roll put } def /xput % key value literal xput - { dup load dup length exch maxlength eq { dup dup load dup length 2 mul dict copy def } if load begin def end } def /npop % integer npop - { { pop } repeat } def % marking operators /sw % ax ay string sw x y { dup length exch stringwidth exch 5 -1 roll 3 index 1 sub mul add 4 1 roll 3 1 roll 1 sub mul add } def /swj % cx cy fillchar ax ay string swj x y { dup 4 1 roll dup length exch stringwidth exch 5 -1 roll 3 index 1 sub mul add 4 1 roll 3 1 roll 1 sub mul add 6 2 roll /_cnt 0 ddef {1 index eq {/_cnt _cnt 1 add ddef} if} forall pop exch _cnt mul exch _cnt mul 2 index add 4 1 roll 2 index add 4 1 roll pop pop } def /ss % ax ay string matrix ss - { 4 1 roll { % matrix ax ay char 0 0 {proc} - 2 npop (0) exch 2 copy 0 exch put pop gsave false charpath currentpoint 4 index setmatrix stroke grestore moveto 2 copy rmoveto } exch cshow 3 npop } def /jss % cx cy fillchar ax ay string matrix jss - { 4 1 roll { % cx cy fillchar matrix ax ay char 0 0 {proc} - 2 npop (0) exch 2 copy 0 exch put gsave _sp eq { exch 6 index 6 index 6 index 5 -1 roll widthshow currentpoint } { false charpath currentpoint 4 index setmatrix stroke }ifelse grestore moveto 2 copy rmoveto } exch cshow 6 npop } def % path operators /sp % ax ay string sp - { { 2 npop (0) exch 2 copy 0 exch put pop false charpath 2 copy rmoveto } exch cshow 2 npop } def /jsp % cx cy fillchar ax ay string jsp - { { % cx cy fillchar ax ay char 0 0 {proc} - 2 npop (0) exch 2 copy 0 exch put _sp eq { exch 5 index 5 index 5 index 5 -1 roll widthshow } { false charpath }ifelse 2 copy rmoveto } exch cshow 5 npop } def % path construction operators /pl % x y pl x y { transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add exch itransform } def /setstrokeadjust where { pop true setstrokeadjust /c % x1 y1 x2 y2 x3 y3 c - { curveto } def /C /c load def /v % x2 y2 x3 y3 v - { currentpoint 6 2 roll curveto } def /V /v load def /y % x1 y1 x2 y2 y - { 2 copy curveto } def /Y /y load def /l % x y l - { lineto } def /L /l load def /m % x y m - { moveto } def } {%else /c { pl curveto } def /C /c load def /v { currentpoint 6 2 roll pl curveto } def /V /v load def /y { pl 2 copy curveto } def /Y /y load def /l { pl lineto } def /L /l load def /m { pl moveto } def }ifelse % graphic state operators /d % array phase d - { setdash } def /cf {} def % - cf flatness /i % flatness i - { dup 0 eq { pop cf } if setflat } def /j % linejoin j - { setlinejoin } def /J % linecap J - { setlinecap } def /M % miterlimit M - { setmiterlimit } def /w % linewidth w - { setlinewidth } def % path painting operators /H % - H - {} def /h % - h - { closepath } def /N % - N - { _pola 0 eq { _doClip 1 eq {clip /_doClip 0 ddef} if newpath } { /CRender {N} ddef }ifelse } def /n % - n - {N} def /F % - F - { _pola 0 eq { _doClip 1 eq { gsave _pf grestore clip newpath /_lp /none ddef _fc /_doClip 0 ddef } { _pf }ifelse } { /CRender {F} ddef }ifelse } def /f % - f - { closepath F } def /S % - S - { _pola 0 eq { _doClip 1 eq { gsave _ps grestore clip newpath /_lp /none ddef _sc /_doClip 0 ddef } { _ps }ifelse } { /CRender {S} ddef }ifelse } def /s % - s - { closepath S } def /B % - B - { _pola 0 eq { _doClip 1 eq % F clears _doClip gsave F grestore { gsave S grestore clip newpath /_lp /none ddef _sc /_doClip 0 ddef } { S }ifelse } { /CRender {B} ddef }ifelse } def /b % - b - { closepath B } def /W % - W - { /_doClip 1 ddef } def /* % - [string] * - { count 0 ne { dup type (stringtype) eq {pop} if } if _pola 0 eq {newpath} if } def % group operators /u % - u - {} def /U % - U - {} def /q % - q - { _pola 0 eq {gsave} if } def /Q % - Q - { _pola 0 eq {grestore} if } def /*u % - *u - { _pola 1 add /_pola exch ddef } def /*U % - *U - { _pola 1 sub /_pola exch ddef _pola 0 eq {CRender} if } def /D % polarized D - {pop} def /*w % - *w - {} def /*W % - *W - {} def % place operators /` % matrix llx lly urx ury string ` - { /_i save ddef 6 1 roll 4 npop concat pop userdict begin /showpage {} def 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [] 0 setdash newpath 0 setgray false setoverprint } def /~ % - ~ - { end _i restore } def % color operators /O % flag O - { 0 ne /_of exch ddef /_lp /none ddef } def /R % flag R - { 0 ne /_os exch ddef /_lp /none ddef } def /g % gray g - { /_gf exch ddef /_fc { _lp /fill ne { _of setoverprint _gf setgray /_lp /fill ddef } if } ddef /_pf { _fc fill } ddef /_psf { _fc ashow } ddef /_pjsf { _fc awidthshow } ddef /_lp /none ddef } def /G % gray G - { /_gs exch ddef /_sc { _lp /stroke ne { _os setoverprint _gs setgray /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /k % cyan magenta yellow black k - { _cf astore pop /_fc { _lp /fill ne { _of setoverprint _cf aload pop setcmykcolor /_lp /fill ddef } if } ddef /_pf { _fc fill } ddef /_psf { _fc ashow } ddef /_pjsf { _fc awidthshow } ddef /_lp /none ddef } def /K % cyan magenta yellow black K - { _cs astore pop /_sc { _lp /stroke ne { _os setoverprint _cs aload pop setcmykcolor /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /x % cyan magenta yellow black name gray x - { /_gf exch ddef findcmykcustomcolor /_if exch ddef /_fc { _lp /fill ne { _of setoverprint _if _gf 1 exch sub setcustomcolor /_lp /fill ddef } if } ddef /_pf { _fc fill } ddef /_psf { _fc ashow } ddef /_pjsf { _fc awidthshow } ddef /_lp /none ddef } def /X % cyan magenta yellow black name gray X - { /_gs exch ddef findcmykcustomcolor /_is exch ddef /_sc { _lp /stroke ne { _os setoverprint _is _gs 1 exch sub setcustomcolor /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def % locked object operator /A % value A - { pop } def currentdict readonly pop end setpacking % annotate page operator /annotatepage { } def %%EndResource %%EndProlog %%BeginSetup Adobe_cmykcolor /initialize get exec Adobe_cshow /initialize get exec Adobe_customcolor /initialize get exec Adobe_IllustratorA_AI3 /initialize get exec %%EndSetup 0 A *u 0 R 0 G 0 i 0 J 0 j 1 w 4 M []0 d %AI3_Note: 0 D 195.4735 531.6999 m 195.5641 531.7314 L 196.0254 533.6199 197.1568 536.5039 201.2373 537.9233 c 206.5419 539.7686 212.6766 537.3283 215.5786 528.986 c 217.8812 522.3665 217.0968 514.9782 209.9333 512.4863 c 207.3036 511.5716 204.1615 511.5458 201.6736 513.7299 c 201.583 513.6984 L 202.6397 510.6607 L 196.4282 508.5 L 185.1043 541.0532 L 191.4517 543.2613 L 195.4735 531.6999 l s 1 D 201.2414 531.775 m 196.8889 530.2609 197.1571 525.9832 198.4977 522.1294 c 199.7436 518.5477 202.4976 515.7446 206.5327 517.1483 c 210.6132 518.5677 210.2011 523.4052 209.2075 526.2615 c 207.8827 530.07 205.2766 533.1786 201.2414 531.775 c s *U *u 0 D 241.6552 532.1613 m 241.9964 525.7744 237.8529 522.1984 233.7271 520.7632 c 226.9263 518.3975 220.5768 519.8481 217.1228 529.7773 c 216.1134 532.679 213.8777 542.3204 224.4417 545.9952 c 229.2023 547.6512 236.565 547.6711 240.3974 536.6538 c 240.7917 535.5203 L 224.2431 529.7637 L 225.0553 528.0133 226.8374 524.0589 231.9607 525.8411 c 233.7289 526.4562 235.227 527.9938 235.1264 529.8902 C 241.6552 532.1613 l s 1 D 232.8277 537.3751 m 231.1087 541.148 228.205 541.4594 226.1647 540.7497 c 223.1724 539.7088 222.2479 537.2525 222.9892 533.9526 C 232.8277 537.3751 l s *U *u 0 D 246.4194 552.9287 m 250.3638 554.3009 L 251.941 549.767 L 247.9965 548.3949 L 252.5545 535.2919 L 253.0434 533.8864 253.278 533.3582 255.8623 534.2571 c 256.2703 534.3991 256.7079 534.6021 257.1456 534.8052 c 258.8173 529.9993 L 257.8357 529.607 256.854 529.2146 255.8565 528.8677 c 255.0404 528.5838 L 249.5544 526.6754 247.8315 528.4141 246.7433 531.5424 c 241.6491 546.1869 L 238.3847 545.0513 L 236.8075 549.5852 L 240.0719 550.7207 L 237.8008 557.2495 L 244.1483 559.4575 L 246.4194 552.9287 l s *U *u 279.772 542.7776 m 280.7656 539.9213 281.6211 539.5073 282.4865 539.5034 c 282.8177 538.5513 L 275.9716 536.1698 L 275.2145 537.1771 274.9977 537.5083 274.3885 538.8211 c 273.4582 536.8202 272.1119 534.1156 267.8047 532.6174 c 264.1776 531.3556 259.7501 532.1026 258.0152 537.0899 c 256.375 541.8051 258.5315 545.249 262.3616 547.242 c 267.7746 550.0907 L 268.7248 550.5737 269.8069 551.4076 269.3338 552.7677 c 268.4033 555.4427 265.817 554.6955 264.1848 554.1278 c 261.0111 553.0238 261.1452 550.8849 261.4527 549.4163 c 255.332 547.2872 L 253.4867 554.9298 258.2472 557.7547 263.1891 559.4738 c 266.5895 560.6567 273.1637 561.7746 275.2298 555.8352 C 279.772 542.7776 l s 1 D 271.116 547.6444 m 270.6547 546.9249 269.7539 546.1541 267.2662 544.8313 c 265.0505 543.6032 263.3059 542.3356 264.2207 539.7059 c 264.9935 537.4843 266.953 537.4036 268.1771 537.8294 c 270.9881 538.8072 273.2136 541.6144 272.1884 544.5614 C 271.116 547.6444 l s *U *u 0 D 319.891 551.4475 m 313.6795 549.2868 L 312.6228 552.3245 L 312.5322 552.293 L 311.9369 549.0364 309.4571 547.1065 306.8275 546.1917 c 299.664 543.6999 294.4636 549.0064 292.161 555.6258 c 289.259 563.9682 292.5548 569.6889 297.8594 571.5342 c 301.9399 572.9536 304.617 571.3944 306.1506 570.1999 c 306.2413 570.2314 L 302.2196 581.7928 L 308.567 584.0008 L 319.891 551.4475 l s 1 D 306.6006 551.9577 m 310.6358 553.3614 311.0555 557.2684 309.8096 560.8502 c 308.469 564.704 306.0245 568.2246 301.672 566.7106 c 297.6369 565.3069 297.5226 561.252 298.8474 557.4435 c 299.841 554.5872 302.5201 550.5383 306.6006 551.9577 c s *U *u 0 D 316.2067 577.2049 m 322.2821 579.3182 L 323.7331 575.1471 L 323.8237 575.1786 L 324.2869 578.0843 324.9176 580.9466 328.7714 582.2872 c 329.1795 582.4291 329.6033 582.5257 330.0271 582.6223 c 332.2667 576.1842 L 331.6911 576.0856 331.011 575.849 330.4216 575.644 c 325.4797 573.9249 325.6453 570.5265 326.5758 567.8515 c 330.9445 555.2926 L 324.5971 553.0846 L 316.2067 577.2049 l s *U *u 359.2685 570.4311 m 360.2621 567.5748 361.1176 567.1609 361.983 567.1569 c 362.3143 566.2048 L 355.4681 563.8233 L 354.7111 564.8306 354.4942 565.1618 353.8851 566.4746 c 352.9547 564.4738 351.6084 561.7692 347.3012 560.2709 c 343.6741 559.0092 339.2466 559.7561 337.5117 564.7434 c 335.8715 569.4586 338.028 572.9025 341.8581 574.8956 c 347.2711 577.7442 L 348.2213 578.2272 349.3035 579.0611 348.8303 580.4212 c 347.8998 583.0962 345.3135 582.3491 343.6813 581.7813 c 340.5076 580.6773 340.6417 578.5384 340.9493 577.0699 c 334.8285 574.9407 L 332.9832 582.5833 337.7438 585.4082 342.6857 587.1273 c 346.0861 588.3102 352.6602 589.4281 354.7263 583.4887 C 359.2685 570.4311 l s 1 D 350.6125 575.298 m 350.1512 574.5784 349.2504 573.8076 346.7627 572.4848 c 344.547 571.2567 342.8025 569.9891 343.7172 567.3595 c 344.49 565.1379 346.4495 565.0571 347.6736 565.4829 c 350.4846 566.4608 352.7101 569.2679 351.685 572.2149 C 350.6125 575.298 l s *U *u 0 D 373.0084 569.9249 m 366.661 567.7169 L 359.8477 587.3032 L 356.3566 586.0888 L 354.7795 590.6227 L 358.2706 591.8371 L 357.5924 593.7867 L 355.8575 598.774 357.9154 601.6245 362.268 603.1385 c 364.1269 603.7852 365.0041 604.0395 365.5639 604.1834 c 367.3461 599.0601 L 365.5779 598.445 L 363.4016 597.688 363.5929 596.9921 364.2868 594.9972 c 364.618 594.0451 L 368.7438 595.4803 L 370.321 590.9465 L 366.1952 589.5113 L 373.0084 569.9249 l s *U *u 378.3348 598.8166 m 382.2793 600.1887 L 383.8564 595.6549 L 379.9119 594.2827 L 384.4699 581.1798 L 384.9588 579.7743 385.1934 579.246 387.7777 580.145 c 388.1858 580.287 388.6234 580.49 389.061 580.6931 c 390.7328 575.8871 L 389.7511 575.4948 388.7694 575.1026 387.772 574.7556 c 386.9559 574.4717 L 381.4699 572.5633 379.7469 574.302 378.6587 577.4303 c 373.5645 592.0747 L 370.3001 590.9392 L 368.723 595.4731 L 371.9874 596.6086 L 369.7163 603.1374 L 376.0637 605.3454 L 378.3348 598.8166 l s *U %%PageTrailer gsave annotatepage grestore showpage %%Trailer Adobe_IllustratorA_AI3 /terminate get exec Adobe_customcolor /terminate get exec Adobe_cshow /terminate get exec Adobe_cmykcolor /terminate get exec Adobe_packedarray /terminate get exec %%EOF %%EndDocument FMENDEPSF 0 72 612 720 C 0 0 0 1 0 0 0 K [/Creator(FrameMaker xm5.1P2a)/DOCINFO FmPD2 [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.1/DEST FmPD2 [/Dest/F.serialtitledoc/DEST FmPD2 [/Title(A)/Rect[45 540 567 650]/ARTICLE FmPD2 [/Title(A)/Rect[45 294 567 540]/ARTICLE FmPD2 [/Title(A)/Rect[45 171 567 297]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "1" 1 %%Page: "2" 2 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.2/DEST FmPD2 [/Dest/L.serialtitledoc/DEST FmPD2 [/Title(A)/Rect[45 99 567 675]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "2" 2 %%Page: "iii" 3 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 3 8 Q 0 X 0 0 0 1 0 0 0 K (Contents) 489.31 101.67 T 4 F (iii) 533.33 101.67 T 102 571.68 540 666 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 36 72 576 720 C 102 522.88 540 551.68 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 102 525.21 570 525.21 2 L 0.5 H 2 Z 0 X 0 0 0 1 0 0 0 K N 36 72 576 720 C 1 20 Q 0 X 0 0 0 1 0 0 0 K -0.52 0.2 ( Contents) 174 558.35 B 5 10 Q 0.1 (1.) 154.5 490.21 S 0.1 (System Architecture) 174 490.21 S 0.1 (1) 278.48 490.21 S 1 F 0.1 (Overview) 174 471.21 S 0.1 (1) 228.84 471.21 S 0.1 (W) 174 452.21 S 0.1 (riting to an Object Str) 183.36 452.21 S 0.1 (eam) 280.11 452.21 S 0.1 (2) 309.13 452.21 S 0.1 (Reading fr) 174 433.21 S 0.1 (om an Object Str) 221.47 433.21 S 0.1 (eam) 296.18 433.21 S 0.1 (3) 325.2 433.21 S 0.1 (Object Str) 174 414.21 S 0.1 (eams as Containers) 218 414.21 S 0.1 (4) 315.34 414.21 S 0.1 (Specifying Serializable Persistent Fields and Data for a Class) 174 395.21 S 0.1 (5) 456.8 395.21 S 0.1 (De\336ning Serializable Persistent Fields for a Class) 174 376.21 S 0.1 (6) 404.78 376.21 S 0.1 (Accessing Serializable Fields of a Class) 174 357.21 S 0.1 (7) 359.56 357.21 S 0.1 (The ObjectOutput Interface) 174 338.21 S 0.1 (7) 307.86 338.21 S 0.1 (The ObjectInput Interface) 174 319.21 S 0.1 (8) 299.8 319.21 S 0.1 (The Serializable Interface) 174 300.21 S 0.1 (9) 298.14 300.21 S 0.1 (The Externalizable Interface) 174 281.21 S 0.1 (9) 310.53 281.21 S 0.1 (The Replaceable & Resolvable Interfaces) 174 262.21 S 0.1 (10) 366.32 262.21 S 0.1 (Pr) 174 243.21 S 0.1 (otecting Sensitive Information) 184.01 243.21 S 0.1 (1) 330.44 243.21 S 0.1 (1) 334.99 243.21 S 5 F 0.1 (2.) 154.5 215.21 S 0.1 (Object Output Classes) 174 215.21 S 0.1 (13) 288.93 215.21 S 1 F 0.1 (The ObjectOutputStr) 174 196.21 S 0.1 (eam Class) 268.09 196.21 S 0.1 (13) 323.69 196.21 S 0.1 (The ObjectOutputStr) 174 177.21 S 0.1 (eam.PutField Class) 268.09 177.21 S 0.1 (20) 364.7 177.21 S 0.1 (The writeObject Method) 174 158.21 S 0.1 (20) 294.41 158.21 S 0.1 (The writeExternal Method) 174 139.21 S 0.1 (20) 303.39 139.21 S 0 0 0 1 0 0 0 K [/CropBox[36 72 FmDC 576 720 FmDC FmBx]/PAGE FmPD [/Dest/P.iii/DEST FmPD2 [/Dest/F.serialTOCdoc/DEST FmPD2 [/Rect[174 486 278 497]/Border[0 0 0]/Dest/G4.5800/LNK FmPD2 [/Rect[174 467 229 478]/Border[0 0 0]/Dest/G4.5846/LNK FmPD2 [/Rect[174 448 309 459]/Border[0 0 0]/Dest/G4.4176/LNK FmPD2 [/Rect[174 429 325 440]/Border[0 0 0]/Dest/G4.4188/LNK FmPD2 [/Rect[174 410 315 421]/Border[0 0 0]/Dest/G4.962/LNK FmPD2 [/Rect[174 391 457 402]/Border[0 0 0]/Dest/G4.5251/LNK FmPD2 [/Rect[174 372 405 383]/Border[0 0 0]/Dest/G4.5522/LNK FmPD2 [/Rect[174 353 360 364]/Border[0 0 0]/Dest/G4.5253/LNK FmPD2 [/Rect[174 334 308 345]/Border[0 0 0]/Dest/G4.4542/LNK FmPD2 [/Rect[174 315 300 326]/Border[0 0 0]/Dest/G4.4548/LNK FmPD2 [/Rect[174 296 298 307]/Border[0 0 0]/Dest/G4.4539/LNK FmPD2 [/Rect[174 277 311 288]/Border[0 0 0]/Dest/G4.4333/LNK FmPD2 [/Rect[174 258 366 269]/Border[0 0 0]/Dest/G4.4160/LNK FmPD2 [/Rect[174 239 330 250]/Border[0 0 0]/Dest/G4.5292/LNK FmPD2 [/Rect[174 211 289 222]/Border[0 0 0]/Dest/G5.60/LNK FmPD2 [/Rect[174 192 324 203]/Border[0 0 0]/Dest/G5.933/LNK FmPD2 [/Rect[174 173 365 184]/Border[0 0 0]/Dest/G5.4581/LNK FmPD2 [/Rect[174 154 294 165]/Border[0 0 0]/Dest/G5.861/LNK FmPD2 [/Rect[174 135 303 146]/Border[0 0 0]/Dest/G5.3146/LNK FmPD2 [/Title(A)/Rect[93 117 549 675]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "iii" 3 %%Page: "iv" 4 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 4 8 Q 0 X 0 0 0 1 0 0 0 K (iv) 72 101.67 T 3 F (Book Title) 90.67 101.67 T (\245) 130.24 101.67 T (Month 1996) 137.04 101.67 T 5 10 Q 0.1 (3.) 124.5 659.33 S 0.1 (Object Input Classes) 144 659.33 S 0.1 (21) 251.06 659.33 S 1 F 0.1 (The ObjectInputStr) 144 640.33 S 0.1 (eam Class) 230.03 640.33 S 0.1 (21) 285.63 640.33 S 0.1 (The ObjectInputStr) 144 621.33 S 0.1 (eam.GetField Class) 230.03 621.33 S 0.1 (28) 326.99 621.33 S 0.1 (The ObjectInputV) 144 602.33 S 0.1 (alidation Interface) 223.85 602.33 S 0.1 (29) 316.48 602.33 S 0.1 (The r) 144 583.33 S 0.1 (eadObject Method) 167.51 583.33 S 0.1 (29) 260.73 583.33 S 0.1 (The r) 144 564.33 S 0.1 (eadExternal Method) 167.51 564.33 S 0.1 (30) 269.71 564.33 S 5 F 0.1 (4.) 124.5 536.33 S 0.1 (Class Descriptors) 144 536.33 S 0.1 (31) 235.49 536.33 S 1 F 0.1 (The ObjectStr) 144 517.33 S 0.1 (eamClass Class) 205.04 517.33 S 0.1 (31) 284.62 517.33 S 0.1 (The ObjectStr) 144 498.33 S 0.1 (eamField Class) 205.04 498.33 S 0.1 (33) 283.42 498.33 S 0.1 (Inspecting Serializable Classes) 144 479.33 S 0.1 (34) 291.88 479.33 S 0.1 (Str) 144 460.33 S 0.1 (eam Unique Identi\336ers) 156.58 460.33 S 0.1 (34) 270.62 460.33 S 5 F 0.1 (5.) 124.5 432.33 S 0.1 (V) 144 432.33 S 0.1 (ersioning of Serializable Objects) 150.77 432.33 S 0.1 (37) 313.86 432.33 S 1 F 0.1 (Overview) 144 413.33 S 0.1 (37) 198.84 413.33 S 0.1 (Goals) 144 394.33 S 0.1 (38) 179.84 394.33 S 0.1 (Assumptions) 144 375.33 S 0.1 (38) 214.02 375.33 S 0.1 (Who\325s Responsible for V) 144 356.33 S 0.1 (ersioning of Str) 254.33 356.33 S 0.1 (eams) 323.46 356.33 S 0.1 (39) 356.82 356.33 S 0.1 (Compatible Java T) 144 337.33 S 0.1 (ype Evolution) 226.7 337.33 S 0.1 (40) 300.57 337.33 S 0.1 (T) 144 318.33 S 0.1 (ype Changes Af) 149.33 318.33 S 0.1 (fecting Serialization) 221.34 318.33 S 0.1 (42) 321.32 318.33 S 5 F 0.1 (6.) 124.5 290.33 S 0.1 (Object Serialization Stream Protocol) 144 290.33 S 0.1 (45) 324.06 290.33 S 1 F 0.1 (Overview) 144 271.33 S 0.1 (45) 198.84 271.33 S 0.1 (Str) 144 252.33 S 0.1 (eam Elements) 156.58 252.33 S 0.1 (45) 229.75 252.33 S 0.1 (Grammar for the Str) 144 233.33 S 0.1 (eam Format) 235.48 233.33 S 0.1 (47) 299.76 233.33 S 5 F 0.1 (A.) 124.5 207.33 S 0.1 (Security in Object Serialization) 144 207.33 S 0.1 (55) 300.87 207.33 S 1 F 0.1 (Overview) 144 189.33 S 0.1 (56) 198.84 189.33 S 0.1 (Design Goals) 144 169.33 S 0.1 (56) 214.1 169.33 S 0.1 (Using transient to Pr) 144 149.33 S 0.1 (otect Important System Resour) 237.49 149.33 S 0.1 (ces) 376.96 149.33 S 0.1 (57) 400.83 149.33 S 0.1 (W) 144 129.33 S 0.1 (riting Class-Speci\336c Serializing Methods) 153.36 129.33 S 0.1 (57) 346.22 129.33 S 0 0 0 1 0 0 0 K [/CropBox[36 72 FmDC 576 720 FmDC FmBx]/PAGE FmPD [/Dest/P.iv/DEST FmPD2 [/Rect[144 655 251 666]/Border[0 0 0]/Dest/G6.60/LNK FmPD2 [/Rect[144 636 286 647]/Border[0 0 0]/Dest/G6.961/LNK FmPD2 [/Rect[144 617 327 628]/Border[0 0 0]/Dest/G6.4936/LNK FmPD2 [/Rect[144 598 316 609]/Border[0 0 0]/Dest/G6.3403/LNK FmPD2 [/Rect[72 579 510 590]/Border[0 0 0]/Dest/G6.2971/LNK FmPD2 [/Rect[144 560 270 571]/Border[0 0 0]/Dest/G6.5208/LNK FmPD2 [/Rect[144 532 235 543]/Border[0 0 0]/Dest/G7.60/LNK FmPD2 [/Rect[144 513 285 524]/Border[0 0 0]/Dest/G7.5132/LNK FmPD2 [/Rect[144 494 283 505]/Border[0 0 0]/Dest/G7.3127/LNK FmPD2 [/Rect[144 475 292 486]/Border[0 0 0]/Dest/G7.5023/LNK FmPD2 [/Rect[144 456 271 467]/Border[0 0 0]/Dest/G7.5139/LNK FmPD2 [/Rect[144 428 314 439]/Border[0 0 0]/Dest/G8.9419/LNK FmPD2 [/Rect[144 409 199 420]/Border[0 0 0]/Dest/G8.8130/LNK FmPD2 [/Rect[144 390 180 401]/Border[0 0 0]/Dest/G8.4569/LNK FmPD2 [/Rect[144 371 214 382]/Border[0 0 0]/Dest/G8.4595/LNK FmPD2 [/Rect[144 352 357 363]/Border[0 0 0]/Dest/G8.4602/LNK FmPD2 [/Rect[144 333 301 344]/Border[0 0 0]/Dest/G8.6519/LNK FmPD2 [/Rect[144 314 321 325]/Border[0 0 0]/Dest/G8.6678/LNK FmPD2 [/Rect[144 286 324 297]/Border[0 0 0]/Dest/G9.8101/LNK FmPD2 [/Rect[144 267 199 278]/Border[0 0 0]/Dest/G9.8130/LNK FmPD2 [/Rect[144 248 230 259]/Border[0 0 0]/Dest/G9.8299/LNK FmPD2 [/Rect[144 229 300 240]/Border[0 0 0]/Dest/G9.5849/LNK FmPD2 [/Rect[144 203 301 214]/Border[0 0 0]/Dest/G10.2527/LNK FmPD2 [/Rect[144 185 199 196]/Border[0 0 0]/Dest/G10.3435/LNK FmPD2 [/Rect[144 165 214 176]/Border[0 0 0]/Dest/G10.2630/LNK FmPD2 [/Rect[144 145 401 156]/Border[0 0 0]/Dest/G10.2595/LNK FmPD2 [/Rect[144 125 346 136]/Border[0 0 0]/Dest/G10.2605/LNK FmPD2 [/Title(A)/Rect[63 117 519 675]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "iv" 4 %%Page: "v" 5 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 3 8 Q 0 X 0 0 0 1 0 0 0 K (Contents) 491.54 101.67 T 4 F (v) 535.55 101.67 T 1 10 Q 0.1 (Encrypting a Bytestr) 174 659.33 S 0.1 (eam) 266.43 659.33 S 0.1 (57) 295.45 659.33 S 5 F 0.1 (B.) 154.5 632.33 S 0.1 (Exceptions In Object Serialization) 174 632.33 S 0.1 (59) 343.29 632.33 S 0.1 (C.) 154.5 605.33 S 0.1 (Example of Serializable Fields) 174 605.33 S 0.1 (61) 325.69 605.33 S 1 F 0.1 (Example Alternate Implementation of java.lang.File) 174 587.33 S 0.1 (61) 417.77 587.33 S 0 0 0 1 0 0 0 K [/CropBox[36 72 FmDC 576 720 FmDC FmBx]/PAGE FmPD [/Dest/P.v/DEST FmPD2 [/Rect[174 655 295 666]/Border[0 0 0]/Dest/G10.2492/LNK FmPD2 [/Rect[174 628 343 639]/Border[0 0 0]/Dest/G11.3601/LNK FmPD2 [/Rect[174 601 326 612]/Border[0 0 0]/Dest/G12.3601/LNK FmPD2 [/Rect[174 583 418 594]/Border[0 0 0]/Dest/G12.4324/LNK FmPD2 [/Title(A)/Rect[93 117 549 675]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "v" 5 %%Page: "vi" 6 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 4 8 Q 0 X 0 0 0 1 0 0 0 K (vi) 72 101.67 T 3 F (Book Title) 90.67 101.67 T (\245) 130.24 101.67 T (Month 1996) 137.04 101.67 T 0 0 0 1 0 0 0 K [/CropBox[36 72 FmDC 576 720 FmDC FmBx]/PAGE FmPD [/Dest/P.vi/DEST FmPD2 [/Dest/L.serialTOCdoc/DEST FmPD2 [/Title(A)/Rect[63 117 519 675]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "vi" 6 %%Page: "vii" 7 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 526.04 108.7 B -0.58 0.09 (vii) 547.41 108.7 B 0 0 0 1 0 0 0 K 198 500.18 558 500.18 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 54 522.64 558 589.39 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 72 612 720 C 0 20 Q 0 X 0 0 0 1 0 0 0 K -2.5 (Change History) 198 509.31 P 54 653/G3.4398 FmPA 2 10 Q -0.1 (July 3, 1997) 126 459.68 S -0.1 (Updates for JDK 1.2) 198 459.68 S 6 14 Q 0.14 (\245) 198 442.68 S 1 10 Q 0.25 0.1 (Documents the r) 210.6 442.68 B 0.25 0.1 (equir) 285.86 442.68 B 0.25 0.1 (ements for speci\336ng the serializable persistent state of) 309.46 442.68 B 0.52 0.1 (classes. See Section) 210.6 430.28 B 0.52 0.1 (1.5, \322Specifying Serializable Persistent Fields and Data) 300.36 430.28 B 0.52 0.1 (for a Class\323.) 210.6 417.88 B 6 14 Q 0.14 (\245) 198 399.48 S 1 10 Q 0.52 0.1 (Added the Serializable Fields API to allow classes mor) 210.6 399.48 B 0.52 0.1 (e \337exibility in) 460.85 399.48 B 0.52 0.1 (accessing the serialized \336elds of a class. The str) 210.6 387.08 B 0.52 0.1 (eam pr) 426.91 387.08 B 0.52 0.1 (otocol is unchanged.) 458.93 387.08 B 0.52 0.1 (See Section) 210.6 374.68 B 0.52 0.1 (1.7, \322Accessing Serializable Fields of a Class, Section) 264.08 374.68 B 0.52 0.1 (2.2, \322The) 506.71 374.68 B 0.52 0.1 (ObjectOutputStr) 210.6 362.28 B 0.52 0.1 (eam.PutField Class\323, Section) 285.05 362.28 B 0.52 0.1 (3.2, \322The) 418.13 362.28 B 0.52 0.1 (ObjectInputStr) 210.6 349.88 B 0.52 0.1 (eam.GetField Class\323.) 276.99 349.88 B 6 14 Q 0.14 (\245) 198 331.48 S 1 10 Q 0.52 0.1 (Clari\336ed that \336eld descriptors and data ar) 210.6 331.48 B 0.52 0.1 (e written to and r) 403.36 331.48 B 0.52 0.1 (ead fr) 483.78 331.48 B 0.52 0.1 (om the) 510.4 331.48 B 0.52 0.1 (str) 210.6 319.08 B 0.52 0.1 (eam in canonical or) 222.17 319.08 B 0.52 0.1 (der) 311.51 319.08 B 0.52 0.1 (. See Section) 325.92 319.08 B 0.52 0.1 (4.1, \322The ObjectStr) 385.12 319.08 B 0.52 0.1 (eamClass Class\323) 470.3 319.08 B 2 F -0.1 (Sept. 4, 1997) 126 295.68 S -0.1 (Updates for JDK 1.2) 198 295.68 S 6 14 Q 0.14 (\245) 198 278.68 S 1 10 Q 0.52 0.1 (Separate Replaceable interface into two interfaces, Replaceable and) 210.6 278.68 B 0.52 0.1 (Resolvable. The Replaceable interface allows a class to nominate its own) 210.6 266.28 B 0.52 0.1 (r) 210.6 253.88 B 0.52 0.1 (eplacement just befor) 214.47 253.88 B 0.52 0.1 (e serializing the object to the str) 312 253.88 B 0.52 0.1 (eam. The Resolvable) 457.96 253.88 B 0.52 0.1 (interface allows a class to nominate its own r) 210.6 241.48 B 0.52 0.1 (eplacement when r) 416.75 241.48 B 0.52 0.1 (eading an) 503.67 241.48 B 0.52 0.1 (object fr) 210.6 229.08 B 0.52 0.1 (om the str) 247.44 229.08 B 0.52 0.1 (eam. See Section) 293.91 229.08 B 0.52 0.1 (1.12, \322The Replaceable & Resolvable) 372.03 229.08 B 0.1 (Interfaces\323.) 210.6 216.68 S 6 14 Q 0.14 (\245) 198 198.28 S 1 10 Q 0.52 0.1 (Updated serialization to use JDK 1.2 security model. Rather than r) 210.6 198.28 B 0.52 0.1 (equir) 514.18 198.28 B 0.52 0.1 (e) 537.78 198.28 B 0.52 0.1 (that a class be loaded by the null classloader) 210.6 185.88 B 0.52 0.1 (, the r) 414.17 185.88 B 0.52 0.1 (equir) 441.05 185.88 B 0.52 0.1 (ement is that the) 464.65 185.88 B 0.52 0.1 (calling sequences to methods, ObjectInputStr) 210.6 173.48 B 0.52 0.1 (eam.enableReplace and) 419.21 173.48 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.vii/DEST FmPD2 [/Dest/F.changelogdoc/DEST FmPD2 [/Rect[265 426 558 437]/Border[0 0 0]/Dest/M4.9.15020.Head1.15.Specifying.Serializable.Persistent.Fields.and.Data.for.a.Class/LNK FmPD2 [/Rect[54 414 259 426]/Border[0 0 0]/Dest/M4.9.15020.Head1.15.Specifying.Serializable.Persistent.Fields.and.Data.for.a.Class/LNK FmPD2 [/Rect[229 371 466 382]/Border[0 0 0]/Dest/M4.9.24154.Head1.17.Accessing.Serializable.Fields.of.a.Class/LNK FmPD2 [/Rect[471 371 558 382]/Border[0 0 0]/Dest/M5.9.11869.Head1.23.Method.writeObject/LNK FmPD2 [/Rect[54 358 372 371]/Border[0 0 0]/Dest/M5.9.11869.Head1.23.Method.writeObject/LNK FmPD2 [/Rect[383 358 558 369]/Border[0 0 0]/Dest/M6.9.22900.Head1.27.The.ObjectGetFields.Interface/LNK FmPD2 [/Rect[54 346 364 358]/Border[0 0 0]/Dest/M6.9.22900.Head1.27.The.ObjectGetFields.Interface/LNK FmPD2 [/Rect[350 315 540 326]/Border[0 0 0]/Dest/M7.9.28989.Head1.41.The.ObjectStreamClass.Class/LNK FmPD2 [/Rect[337 225 558 236]/Border[0 0 0]/Dest/M4.9.37204.Head1.112.The.Replaceable.Interface/LNK FmPD2 [/Rect[54 213 255 225]/Border[0 0 0]/Dest/M4.9.37204.Head1.112.The.Replaceable.Interface/LNK FmPD2 [/Title(A)/Rect[45 488 567 598]/ARTICLE FmPD2 [/Title(A)/Rect[45 135 567 475]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "vii" 7 %%Page: "viii" 8 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (viii) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Object Serialization Speci\336cation) 265.69 108.7 B 1 F -0.58 0.09 (\321) 414.6 108.7 B 0 F -0.58 0.09 (JDK Playgr) 423.69 108.7 B -0.58 0.09 (ound Alpha, July 3, 1997) 466.59 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (ObjectOutputStr) 210.6 641.33 B 0.52 0.1 (eam.enableResolve, has SerializablePermission) 285.05 641.33 B 0.52 0.1 (\322enableSubstitution\323. See Section) 210.6 628.93 B 0.52 0.1 (2.1, \322The ObjectOutputStr) 364.6 628.93 B 0.52 0.1 (eam Class \322and) 482.83 628.93 B 0.52 0.1 (Section) 210.6 616.53 B 0.52 0.1 (3.1, \322The ObjectInputStr) 245.83 616.53 B 0.52 0.1 (eam Class\323.) 356 616.53 B 6 14 Q 0.14 (\245) 198 598.13 S 1 10 Q 0.52 0.1 (Updated writeObject\325s exception handler to write handled IOExceptions) 210.6 598.13 B 0.52 0.1 (into the str) 210.6 585.73 B 0.52 0.1 (eam. See Section) 260.43 585.73 B 0.52 0.1 (2.1, \322The ObjectOutputStr) 338.55 585.73 B 0.52 0.1 (eam Class\323.) 456.78 585.73 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.viii/DEST FmPD2 [/Dest/L.changelogdoc/DEST FmPD2 [/Rect[303 582 503 593]/Border[0 0 0]/Dest/M5.9.25992.Head1.21.Interface.ObjectOutput/LNK FmPD2 [/Rect[54 613 402 624]/Border[0 0 0]/Dest/M6.9.17548.Head1.31.The.InputObject.Interface/LNK FmPD2 [/Rect[329 625 529 636]/Border[0 0 0]/Dest/M5.9.25992.Head1.21.Interface.ObjectOutput/LNK FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "viii" 8 %%Page: "1" 9 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 532.04 108.7 B -0.58 0.09 (1) 553.41 108.7 B 0 0 0 1 0 0 0 K 198 500.18 558 500.18 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 540.76 521.07 558.36 524.92 R 0 X 1 1 0 0 0 0 1 K V 540.76 514.65 558.36 518.5 R V 540.76 508.42 558.36 512.27 R V 540.76 518.61 558.36 521.29 R 7 X V 540.76 512.4 558.36 514.87 R V 0 0 0 1 0 0 0 K 54 522.64 558 589.39 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 72 612 720 C 0 20 Q 0 X 0 0 0 1 0 0 0 K -2.5 (System Ar) 198 509.31 P -2.5 (chitectur) 281.26 509.31 P -2.5 (e) 352.74 509.31 P 54 653/G4.5800 FmPA 1 1 0 0 0 0 1 K 0 24 Q 1 1 0 0 0 0 1 K -3.12 (1) 525.14 508.64 S 0 0 0 1 0 0 0 K 0 13 Q 0 0 0 1 0 0 0 K 0.13 (T) 198 457.68 S 0.13 (opics:) 204.63 457.68 S 6 14 Q 0.14 (\245) 198 438.68 S 1 10 Q 0.1 (Overview) 210.6 438.68 S 6 14 Q 0.14 (\245) 198 420.28 S 1 10 Q 0.52 0.1 (W) 210.6 420.28 B 0.52 0.1 (riting to an Object Str) 219.96 420.28 B 0.52 0.1 (eam) 318.79 420.28 B 6 14 Q 0.14 (\245) 198 401.88 S 1 10 Q 0.52 0.1 (Reading fr) 210.6 401.88 B 0.52 0.1 (om an Object Str) 258.59 401.88 B 0.52 0.1 (eam) 334.86 401.88 B 6 14 Q 0.14 (\245) 198 383.48 S 1 10 Q 0.52 0.1 (Object Str) 210.6 383.48 B 0.52 0.1 (eams as Containers) 255.12 383.48 B 6 14 Q 0.14 (\245) 198 365.08 S 1 10 Q 0.52 0.1 (Specifying Serializable Persistent Fields and Data for a Class) 210.6 365.08 B 6 14 Q 0.14 (\245) 198 346.68 S 1 10 Q 0.52 0.1 (De\336ning Serializable Persistent Fields for a Class) 210.6 346.68 B 6 14 Q 0.14 (\245) 198 328.28 S 1 10 Q 0.52 0.1 (Accessing Serializable Fields of a Class) 210.6 328.28 B 6 14 Q 0.14 (\245) 198 309.88 S 1 10 Q 0.52 0.1 (The ObjectOutput Interface) 210.6 309.88 B 6 14 Q 0.14 (\245) 198 291.48 S 1 10 Q 0.52 0.1 (The ObjectInput Interface) 210.6 291.48 B 6 14 Q 0.14 (\245) 198 273.08 S 1 10 Q 0.52 0.1 (The Serializable Interface) 210.6 273.08 B 6 14 Q 0.14 (\245) 198 254.68 S 1 10 Q 0.52 0.1 (The Externalizable Interface) 210.6 254.68 B 6 14 Q 0.14 (\245) 198 236.28 S 1 10 Q 0.52 0.1 (The Replaceable & Resolvable Interfaces) 210.6 236.28 B 6 14 Q 0.14 (\245) 198 217.88 S 1 10 Q 0.52 0.1 (Pr) 210.6 217.88 B 0.52 0.1 (otecting Sensitive Information) 220.61 217.88 B 34 306.54 36 390.14 R V 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.1/DEST FmPD2 [/Dest/F.serialarchdoc/DEST FmPD2 [/Rect[211 434 255 449]/Border[0 0 0]/Page 10/View[/XYZ null 97 792 FmDC exch pop null]/LNK FmPD [/Rect[211 415 338 430]/Border[0 0 0]/Page 10/View[/XYZ null 97 424 FmDC exch pop null]/LNK FmPD [/Rect[211 397 354 412]/Border[0 0 0]/Page 11/View[/XYZ null 97 420 FmDC exch pop null]/LNK FmPD [/Rect[211 250 338 265]/Border[0 0 0]/Page 17/View[/XYZ null 123 393 FmDC exch pop null]/LNK FmPD [/Rect[211 378 343 393]/Border[0 0 0]/Page 12/View[/XYZ null 97 552 FmDC exch pop null]/LNK FmPD [/Rect[211 268 326 283]/Border[0 0 0]/Page 17/View[/XYZ null 97 792 FmDC exch pop null]/LNK FmPD [/Rect[211 213 358 228]/Border[0 0 0]/Page 19/View[/XYZ null 97 406 FmDC exch pop null]/LNK FmPD [/Rect[211 286 327 301]/Border[0 0 0]/Page 16/View[/XYZ null 97 660 FmDC exch pop null]/LNK FmPD [/Rect[211 305 335 320]/Border[0 0 0]/Page 15/View[/XYZ null 97 497 FmDC exch pop null]/LNK FmPD [/Rect[211 231 395 246]/Border[0 0 0]/Page 18/View[/XYZ null 97 449 FmDC exch pop null]/LNK FmPD [/Rect[211 360 487 375]/Border[0 0 0]/Page 13/View[/XYZ null 97 654 FmDC exch pop null]/LNK FmPD [/Rect[211 342 434 357]/Border[0 0 0]/Page 14/View[/XYZ null 97 613 FmDC exch pop null]/LNK FmPD [/Rect[211 323 389 338]/Border[0 0 0]/Page 15/View[/XYZ null 97 792 FmDC exch pop null]/LNK FmPD [/Title(A)/Rect[45 488 567 598]/ARTICLE FmPD2 [/Title(A)/Rect[45 135 567 475]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "1" 9 %%Page: "2" 10 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (2) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Object Serialization Speci\336cation) 265.69 108.7 B 1 F -0.58 0.09 (\321) 414.6 108.7 B 0 F -0.58 0.09 (JDK Playgr) 423.69 108.7 B -0.58 0.09 (ound Alpha, July 3, 1997) 466.59 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (1) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 15 Q 0 X 0 0 0 1 0 0 0 K (1.1) 67.47 638 T (Overview) 97.27 638 T 54 782/G4.5846 FmPA 1 10 Q 0.52 0.1 (The capability to stor) 198 616.33 B 0.52 0.1 (e and r) 294.98 616.33 B 0.52 0.1 (etrieve Java objects is essential to building all but) 327.21 616.33 B 0.52 0.1 (the most transient applications. The key to storing and r) 198 603.93 B 0.52 0.1 (etrieving objects in a) 455.33 603.93 B 0.52 0.1 (serialized form is r) 198 591.53 B 0.52 0.1 (epr) 284.16 591.53 B 0.52 0.1 (esenting the state of objects suf) 299.03 591.53 B 0.52 0.1 (\336cient to r) 441.31 591.53 B 0.52 0.1 (econstr) 488.21 591.53 B 0.52 0.1 (uct the) 520.78 591.53 B 0.52 0.1 (object\050s\051. Objects to be saved in the str) 198 579.13 B 0.52 0.1 (eam may support either the) 373.62 579.13 B 7 F 1.2 (Serializable) 198 566.73 P 1 F 0.52 0.1 ( or the) 270 566.73 B 7 F 1.2 (Externalizable) 303.14 566.73 P 1 F 0.52 0.1 ( interface. For Java objects, the) 387.14 566.73 B 0.52 0.1 (serialized form must be able to identify and verify the Java class fr) 198 554.33 B 0.52 0.1 (om which) 503.54 554.33 B 0.52 0.1 (the object\325s contents wer) 198 541.93 B 0.52 0.1 (e saved and to r) 310.26 541.93 B 0.52 0.1 (estor) 383.94 541.93 B 0.52 0.1 (e the contents to a new instance.) 405.96 541.93 B -0.04 0.1 (For serializable objects, the str) 198 529.53 B -0.04 0.1 (eam includes suf) 333.73 529.53 B -0.04 0.1 (\336cient information to r) 409.53 529.53 B -0.04 0.1 (estor) 511.71 529.53 B -0.04 0.1 (e the) 533.73 529.53 B 0.52 0.1 (\336elds in the str) 198 517.13 B 0.52 0.1 (eam to a compatible version of the class. For Externalizable) 266.63 517.13 B 0.52 0.1 (objects, the class is solely r) 198 504.73 B 0.52 0.1 (esponsible for the external format of its contents.) 320.15 504.73 B 0.19 0.1 (Objects to be stor) 198 484.33 B 0.19 0.1 (ed and r) 276.1 484.33 B 0.19 0.1 (etrieved fr) 313.87 484.33 B 0.19 0.1 (equently r) 361.01 484.33 B 0.19 0.1 (efer to other objects. Those other) 407.23 484.33 B 0.52 0.1 (objects must be stor) 198 471.93 B 0.52 0.1 (ed and r) 288.53 471.93 B 0.52 0.1 (etrieved at the same time to maintain the) 326.97 471.93 B 0.52 0.1 (r) 198 459.53 B 0.52 0.1 (elationships between the objects. When an object is stor) 201.87 459.53 B 0.52 0.1 (ed, all of the objects) 455.7 459.53 B 0.52 0.1 (that ar) 198 447.13 B 0.52 0.1 (e r) 227.83 447.13 B 0.52 0.1 (eachable fr) 239.71 447.13 B 0.52 0.1 (om that object ar) 289.21 447.13 B 0.52 0.1 (e stor) 366.19 447.13 B 0.52 0.1 (ed as well.) 391.33 447.13 B 0.52 0.1 (The goals for serializing Java objects ar) 198 426.73 B 0.52 0.1 (e to:) 376.68 426.73 B 6 14 Q 0.14 (\245) 198 408.33 S 1 10 Q 0.52 0.1 (Have a simple yet extensible mechanism.) 210.6 408.33 B 6 14 Q 0.14 (\245) 198 389.93 S 1 10 Q 0.52 0.1 (Maintain the Java object type and safety pr) 210.6 389.93 B 0.52 0.1 (operties in the serialized form.) 407.4 389.93 B 6 14 Q 0.14 (\245) 198 371.53 S 1 10 Q -0.04 0.1 (Be extensible to support marshaling and unmarshaling as needed for r) 210.6 371.53 B -0.04 0.1 (emote) 527.81 371.53 B 0.1 (objects.) 210.6 359.13 S 6 14 Q 0.14 (\245) 198 340.73 S 1 10 Q 0.52 0.1 (Be extensible to support simple persistence of Java objects.) 210.6 340.73 B 6 14 Q 0.14 (\245) 198 322.33 S 1 10 Q 0.52 0.1 (Requir) 210.6 322.33 B 0.52 0.1 (e per class implementation only for customization.) 240.98 322.33 B 6 14 Q 0.14 (\245) 198 303.93 S 1 10 Q 0.52 0.1 (Allow the object to de\336ne its external format.) 210.6 303.93 B 0 15 Q (1.2) 67.47 270.2 T -0.94 (W) 97.27 270.2 P -0.94 (riting to an Object Str) 111.13 270.2 P -0.94 (eam) 242.67 270.2 P 54 414/G4.4176 FmPA 1 10 Q 0.52 0.1 (W) 198 248.53 B 0.52 0.1 (riting objects and primitives to a str) 207.36 248.53 B 0.52 0.1 (eam is a straight-forwar) 371.13 248.53 B 0.52 0.1 (d pr) 480.54 248.53 B 0.52 0.1 (ocess. For) 499.85 248.53 B 0.1 (example:) 198 236.13 S 7 9 Q (// Serialize today\325s date to a file.) 198 220.4 T (FileOutputStream f = new FileOutputStream\050"tmp"\051;) 218.16 209.4 T (ObjectOutput) 218.16 198.4 T (s) 288.36 198.4 T (=) 299.16 198.4 T (new) 309.96 198.4 T (ObjectOutputStream\050f\051;) 331.56 198.4 T (s.writeObject\050"Today"\051;) 218.16 187.4 T (s.writeObject\050new Date\050\051\051;) 218.16 176.4 T (s.flush\050\051;) 218.16 165.4 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.2/DEST FmPD2 97 792/M4.9.23867.Head1.11.Overview FmPA 97 792/I4.1.4894 FmPA 97 424/M4.9.38370.Head1.12.Writing.Objects.to.a.Stream FmPA 97 424/I4.1.4175 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "2" 10 %%Page: "3" 11 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 54 108.7 B -0.58 0.09 (1) 88.71 108.7 B -0.58 0.09 (:) 93.3 108.7 B 0 F -0.58 0.09 (System Ar) 97.4 108.7 B -0.58 0.09 (chitectur) 136.21 108.7 B -0.58 0.09 (e) 169.19 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 532.04 108.7 B -0.58 0.09 (3) 553.41 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (1) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.16 0.1 (First an) 198 641.33 B 7 9.5 Q 0.35 (OutputStream) 234.96 641.33 P 1 10 Q 0.16 0.1 (, in this case a) 303.36 641.33 B 7 9.5 Q 0.35 (FileOutputStream) 369.28 641.33 P 1 10 Q 0.16 0.1 (, is needed to r) 460.48 641.33 B 0.16 0.1 (eceive) 527.27 641.33 B 0.52 0.1 (the bytes. Then an) 198 628.93 B 7 9.5 Q 1.14 (ObjectOutputStream) 285.11 628.93 P 1 10 Q 0.52 0.1 ( is cr) 387.71 628.93 B 0.52 0.1 (eated that writes to the) 409.71 628.93 B 7 F 0.27 (FileOutputStream) 198 616.53 P 1 F 0.12 0.1 (. Next, the string \322T) 294 616.53 B 0.12 0.1 (oday\323 and a Date object ar) 382.9 616.53 B 0.12 0.1 (e written to) 503.02 616.53 B 0.52 0.1 (the str) 198 604.13 B 0.52 0.1 (eam. Mor) 226.86 604.13 B 0.52 0.1 (e generally) 270.49 604.13 B 0.52 0.1 (, objects ar) 319.58 604.13 B 0.52 0.1 (e written with the) 368.15 604.13 B 7 9.5 Q 1.14 (writeObject) 453.45 604.13 P 1 10 Q 0.52 0.1 ( method) 516.15 604.13 B 0.52 0.1 (and primitives ar) 198 591.73 B 0.52 0.1 (e written to the str) 276.9 591.73 B 0.52 0.1 (eam with the methods of) 361.96 591.73 B 7 9.5 Q 1.14 (DataOutput) 479.58 591.73 P 1 10 Q 0.52 0.1 (.) 536.58 591.73 B 0.52 0.1 (The) 198 571.33 B 7 9.5 Q 1.14 (writeObject) 218.16 571.33 P 1 10 Q 0.52 0.1 ( method \050see Section) 280.86 571.33 B 0.52 0.1 (2.3, \322The writeObject Method\051) 377.87 571.33 B 0.22 0.1 (serializes the speci\336ed object and traverses its r) 198 558.93 B 0.22 0.1 (efer) 412.77 558.93 B 0.22 0.1 (ences to other objects in the) 429.85 558.93 B 0.52 0.1 (object graph r) 198 546.53 B 0.52 0.1 (ecursively to cr) 261.37 546.53 B 0.52 0.1 (eate a complete serialized r) 331.21 546.53 B 0.52 0.1 (epr) 455.8 546.53 B 0.52 0.1 (esentation of the) 470.67 546.53 B 0.52 0.1 (graph. W) 198 534.13 B 0.52 0.1 (ithin a str) 240.11 534.13 B 0.52 0.1 (eam, the \336rst r) 284.24 534.13 B 0.52 0.1 (efer) 351.06 534.13 B 0.52 0.1 (ence to any object r) 368.14 534.13 B 0.52 0.1 (esults in the object) 456.75 534.13 B 0.34 0.1 (being serialized or externalized and the assignment of a handle for that object.) 198 521.73 B 0.52 0.1 (Subsequent r) 198 509.33 B 0.52 0.1 (efer) 257.33 509.33 B 0.52 0.1 (ences to that object ar) 274.41 509.33 B 0.52 0.1 (e encoded as the handle. Using object) 373.52 509.33 B 0.24 0.1 (handles pr) 198 496.93 B 0.24 0.1 (eserves sharing and cir) 246.21 496.93 B 0.24 0.1 (cular r) 350.52 496.93 B 0.24 0.1 (efer) 380.06 496.93 B 0.24 0.1 (ences that occur naturally in object) 397.14 496.93 B 0.18 0.1 (graphs. Subsequent r) 198 484.53 B 0.18 0.1 (efer) 293.54 484.53 B 0.18 0.1 (ences to an object use only the handle allowing a very) 310.62 484.53 B 0.52 0.1 (compact r) 198 472.13 B 0.52 0.1 (epr) 243.13 472.13 B 0.52 0.1 (esentation.) 258 472.13 B 0.52 0.1 (Special handling is r) 198 451.73 B 0.52 0.1 (equir) 291.34 451.73 B 0.52 0.1 (ed for objects of type) 314.94 451.73 B 7 F 1.2 (Class) 414.45 451.73 P 1 F 0.52 0.1 (,) 444.45 451.73 B 7 F 1.2 (ObjectStreamClass) 450.17 451.73 P 1 F 0.52 0.1 (,) 552.17 451.73 B -0.06 0.1 (strings, and arrays. Other objects must implement either the) 198 439.33 B 7 F -0.14 (Serializable) 471.31 439.33 P 1 F -0.06 0.1 ( or) 543.31 439.33 B 0.52 0.1 (the) 198 426.93 B 7 F 1.2 (Externalizable) 215.29 426.93 P 1 F 0.52 0.1 ( interface to be saved in or r) 299.29 426.93 B 0.52 0.1 (estor) 428.46 426.93 B 0.52 0.1 (ed fr) 450.48 426.93 B 0.52 0.1 (om a str) 472 426.93 B 0.52 0.1 (eam.) 509.4 426.93 B 0.52 0.1 (Primitive data types ar) 198 406.53 B 0.52 0.1 (e written to the str) 302.61 406.53 B 0.52 0.1 (eam with the methods in the) 387.67 406.53 B 7 F 1.2 (DataOutput) 198 394.13 P 1 F 0.52 0.1 ( interface, such as) 258 394.13 B 7 F 1.2 (writeInt) 342.64 394.13 P 1 F 0.52 0.1 (,) 390.64 394.13 B 7 F 1.2 (writeFloat) 396.36 394.13 P 1 F 0.52 0.1 (, or) 456.36 394.13 B 7 F 1.2 (writeUTF) 474.81 394.13 P 1 F 0.52 0.1 (.) 521.89 394.13 B 0.52 0.1 (Individual bytes and arrays of bytes ar) 198 381.73 B 0.52 0.1 (e written with the methods of) 375.79 381.73 B 7 F -0.24 (OutputStream) 198 369.33 P 1 F -0.1 0.1 (. Primitive data, excluding serializable \336elds and externalizable) 270 369.33 B 0.52 0.1 (data, is written to the str) 198 356.93 B 0.52 0.1 (eam in block-data r) 311.01 356.93 B 0.52 0.1 (ecor) 399.69 356.93 B 0.52 0.1 (ds pr) 418.55 356.93 B 0.52 0.1 (e\336xed by a marker and) 442.2 356.93 B 0.52 0.1 (the number of bytes in the r) 198 344.53 B 0.52 0.1 (ecor) 326.28 344.53 B 0.52 0.1 (d.) 345.14 344.53 B 7 F 1.2 (ObjectOutputStream) 198 324.13 P 1 F 0.52 0.1 ( can be extended to customize the information about) 306 324.13 B 0.52 0.1 (classes in the str) 198 311.73 B 0.52 0.1 (eam or to r) 272.59 311.73 B 0.52 0.1 (eplace objects to be serialized. Refer to the) 323.27 311.73 B 7 9.5 Q 1.14 (annotateClass) 198 299.33 P 1 10 Q 0.52 0.1 ( and) 272.1 299.33 B 7 9.5 Q 1.14 (replaceObject) 295.57 299.33 P 1 10 Q 0.52 0.1 ( method descriptions for details.) 369.67 299.33 B 0 15 Q (1.3) 67.47 265.6 T -0.94 (Reading fr) 97.27 265.6 P -0.94 (om an Object Str) 159.83 265.6 P -0.94 (eam) 260.22 265.6 P 54 410/G4.4188 FmPA 1 10 Q 0.52 0.1 (Reading an object fr) 198 243.93 B 0.52 0.1 (om a str) 289.67 243.93 B 0.52 0.1 (eam, like writing, is straight-forwar) 327.07 243.93 B 0.52 0.1 (d:) 489.72 243.93 B 7 9 Q (// Deserialize a string and date from a file.) 198 228.2 T (FileInputStream in = new FileInputStream\050\322tmp\323\051;) 218.16 217.2 T (ObjectInputStream s = new ObjectInputStream\050in\051;) 218.16 206.2 T (String today = \050String\051s.readObject\050\051;) 218.16 195.2 T (Date date = \050Date\051s.readObject\050\051;) 218.16 184.2 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.3/DEST FmPD2 [/Rect[218 567 281 578]/Border[0 0 0]/Dest/M5.8.newlink.writeObject/LNK FmPD2 97 420/M4.9.29231.Head1.13.Reading.Objects.from.a.Stream FmPA 97 420/I4.1.4187 FmPA [/Rect[343 567 513 578]/Border[0 0 0]/Dest/M5.9.28596.Head1.23.The.writeObject.Method/LNK FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "3" 11 %%Page: "4" 12 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (4) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Object Serialization Speci\336cation) 265.69 108.7 B 1 F -0.58 0.09 (\321) 414.6 108.7 B 0 F -0.58 0.09 (JDK Playgr) 423.69 108.7 B -0.58 0.09 (ound Alpha, July 3, 1997) 466.59 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (1) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (First an) 198 641.33 B 7 9.5 Q 1.14 (InputStream) 235.68 641.33 P 1 10 Q 0.52 0.1 (, in this case a) 298.38 641.33 B 7 9.5 Q 1.14 (FileInputStream) 366.11 641.33 P 1 10 Q 0.52 0.1 (, is needed as the) 451.61 641.33 B 0.52 0.1 (sour) 198 628.93 B 0.52 0.1 (ce str) 217.9 628.93 B 0.52 0.1 (eam. Then an) 242.02 628.93 B 7 9.5 Q 1.14 (ObjectInputStream) 306.88 628.93 P 1 10 Q 0.52 0.1 ( is cr) 403.78 628.93 B 0.52 0.1 (eated that r) 425.78 628.93 B 0.52 0.1 (eads fr) 478.08 628.93 B 0.52 0.1 (om the) 509.04 628.93 B 7 9.5 Q 1.14 (InputStream) 198 616.53 P 1 10 Q 0.52 0.1 (. Next, the string \322T) 260.7 616.53 B 0.52 0.1 (oday\323 and a Date object ar) 351.22 616.53 B 0.52 0.1 (e r) 473.36 616.53 B 0.52 0.1 (ead fr) 485.24 616.53 B 0.52 0.1 (om the) 511.86 616.53 B 0.52 0.1 (str) 198 604.13 B 0.52 0.1 (eam. Generally) 209.57 604.13 B 0.52 0.1 (, objects ar) 277.36 604.13 B 0.52 0.1 (e r) 325.93 604.13 B 0.52 0.1 (ead with the) 337.81 604.13 B 7 9.5 Q 1.14 (readObject) 398.27 604.13 P 1 10 Q 0.52 0.1 ( method and) 455.27 604.13 B 0.52 0.1 (primitives ar) 198 591.73 B 0.52 0.1 (e r) 256.55 591.73 B 0.52 0.1 (ead fr) 268.43 591.73 B 0.52 0.1 (om the str) 295.05 591.73 B 0.52 0.1 (eam with the methods of) 341.52 591.73 B 7 9.5 Q 1.14 (DataInput) 459.14 591.73 P 1 10 Q 0.52 0.1 (.) 510.44 591.73 B 0.52 0.1 (The) 198 571.33 B 7 9.5 Q 1.14 (readObject) 218.16 571.33 P 1 10 Q 0.52 0.1 ( method deserializes the next object in the str) 275.16 571.33 B 0.52 0.1 (eam and) 482.52 571.33 B 0.03 0.1 (traverses its r) 198 558.93 B 0.03 0.1 (efer) 258.6 558.93 B 0.03 0.1 (ences to other objects r) 275.68 558.93 B 0.03 0.1 (ecursively to cr) 378.1 558.93 B 0.03 0.1 (eate the complete graph) 446.95 558.93 B 0.52 0.1 (of objects serialized.) 198 546.53 B 0.52 0.1 (Primitive data types ar) 198 526.13 B 0.52 0.1 (e r) 302.61 526.13 B 0.52 0.1 (ead fr) 314.49 526.13 B 0.52 0.1 (om the str) 341.11 526.13 B 0.52 0.1 (eam with the methods in the) 387.58 526.13 B 7 F 1.2 (DataInput) 198 513.73 P 1 F 0.52 0.1 ( interface, such as) 252 513.73 B 7 F 1.2 (readInt) 336.64 513.73 P 1 F 0.52 0.1 (,) 378.64 513.73 B 7 F 1.2 (readFloat) 384.36 513.73 P 1 F 0.52 0.1 (, or) 438.36 513.73 B 7 F 1.2 (readUTF) 456.81 513.73 P 1 F 0.52 0.1 (. Individual) 497.89 513.73 B 0.52 0.1 (bytes and arrays of bytes ar) 198 501.33 B 0.52 0.1 (e r) 324.85 501.33 B 0.52 0.1 (ead with the methods of) 336.73 501.33 B 7 F 1.2 (InputStream) 451.63 501.33 P 1 F 0.52 0.1 (.) 517.63 501.33 B 0.52 0.1 (Primitive data, excluding serializable \336elds and externalizable data, is r) 198 488.93 B 0.52 0.1 (ead) 525.01 488.93 B 0.52 0.1 (fr) 198 476.53 B 0.52 0.1 (om block-data r) 205.3 476.53 B 0.52 0.1 (ecor) 277.5 476.53 B 0.52 0.1 (ds.) 296.36 476.53 B 0.52 0.1 (ObjectInputStr) 198 456.13 B 0.52 0.1 (eam can be extended to utilize customized information in the) 264.39 456.13 B 0.51 0.1 (str) 198 443.73 B 0.51 0.1 (eam about classes or to r) 209.57 443.73 B 0.51 0.1 (eplace objects that have been deserialized. Refer to) 322.8 443.73 B 0.52 0.1 (the) 198 431.33 B 7 9.5 Q 1.14 (resolveClass) 215.29 431.33 P 1 10 Q 0.52 0.1 ( and) 283.69 431.33 B 7 9.5 Q 1.14 (resolveObject) 307.16 431.33 P 1 10 Q 0.52 0.1 ( method descriptions for details.) 381.26 431.33 B 0 15 Q (1.4) 67.47 397.6 T -0.94 (Object Str) 97.27 397.6 P -0.94 (eams as Containers) 158.7 397.6 P 54 542/G4.962 FmPA 1 10 Q 0.33 0.1 (Object Serialization pr) 198 375.93 B 0.33 0.1 (oduces and consumes a str) 299.14 375.93 B 0.33 0.1 (eam of bytes that contain one) 421.09 375.93 B 0.33 0.1 (or mor) 198 363.53 B 0.33 0.1 (e primitives and objects. The objects written to the str) 228.9 363.53 B 0.33 0.1 (eam, in turn, r) 472.66 363.53 B 0.33 0.1 (efer) 537.81 363.53 B 0.52 0.1 (to other objects which ar) 198 351.13 B 0.52 0.1 (e also r) 310.74 351.13 B 0.52 0.1 (epr) 343.75 351.13 B 0.52 0.1 (esented in the str) 358.62 351.13 B 0.52 0.1 (eam. Object Serialization) 437.15 351.13 B 0.32 0.1 (pr) 198 338.73 B 0.32 0.1 (oduces just one str) 207.98 338.73 B 0.32 0.1 (eam format that encodes and stor) 292.63 338.73 B 0.32 0.1 (es the contained objects.) 445.04 338.73 B 0.25 0.1 (Object Serialization has been designed to pr) 198 326.33 B 0.25 0.1 (ovide a rich set of featur) 397.13 326.33 B 0.25 0.1 (es for Java) 507.79 326.33 B 0.52 0.1 (classes.) 198 313.93 B -0.09 0.1 (Each object acting as a container implements an interface that allows primitives) 198 293.53 B 0.52 0.1 (and objects to be stor) 198 281.13 B 0.52 0.1 (ed in or r) 295.04 281.13 B 0.52 0.1 (etrieved fr) 337.91 281.13 B 0.52 0.1 (om it. These ar) 385.38 281.13 B 0.52 0.1 (e the) 453.44 281.13 B 7 F 1.2 (ObjectOutput) 478.74 281.13 P 1 F 0.52 0.1 (and) 198 268.73 B 7 F 1.2 (ObjectInput) 218.35 268.73 P 1 F 0.52 0.1 ( interfaces which:) 284.35 268.73 B 6 14 Q 0.14 (\245) 198 250.33 S 1 10 Q 0.52 0.1 (Pr) 210.6 250.33 B 0.52 0.1 (ovide a str) 220.61 250.33 B 0.52 0.1 (eam to write to and r) 268.94 250.33 B 0.52 0.1 (ead fr) 366.15 250.33 B 0.52 0.1 (om) 392.77 250.33 B 6 14 Q 0.14 (\245) 198 231.93 S 1 10 Q 0.52 0.1 (Handle r) 210.6 231.93 B 0.52 0.1 (equests to write primitive types and objects to the str) 251.14 231.93 B 0.52 0.1 (eam,) 494.67 231.93 B 0.52 0.1 (Each object which is to be stor) 198 211.53 B 0.52 0.1 (ed in a str) 336.66 211.53 B 0.52 0.1 (eam must explicitly allow itself to be) 382.72 211.53 B 0.52 0.1 (stor) 198 199.13 B 0.52 0.1 (ed and must implement the pr) 215.13 199.13 B 0.52 0.1 (otocols needed to save and r) 355.02 199.13 B 0.52 0.1 (estor) 485.66 199.13 B 0.52 0.1 (e its state.) 507.68 199.13 B 0.52 0.1 (Object Serialization de\336nes two such pr) 198 186.73 B 0.52 0.1 (otocols. The pr) 379.56 186.73 B 0.52 0.1 (otocols allow the) 447.35 186.73 B 0.36 0.1 (container to ask the object to write and r) 198 174.33 B 0.36 0.1 (ead its state. T) 382.41 174.33 B 0.36 0.1 (o be stor) 447.16 174.33 B 0.36 0.1 (ed in an Object) 486.29 174.33 B 0.52 0.1 (Str) 198 161.93 B 0.52 0.1 (eam, each object must implement either the) 210.58 161.93 B 7 F 1.2 (Serializable) 412.91 161.93 P 1 F 0.52 0.1 ( or the) 484.91 161.93 B 7 F 1.2 (Externalizable) 198 149.53 P 1 F 0.52 0.1 ( interface.) 282 149.53 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.4/DEST FmPD2 97 552/M4.9.20318.Head1.14.Object.Streams.as.Containers FmPA 97 552/I4.1.4522 FmPA [/Rect[218 567 275 578]/Border[0 0 0]/Dest/M6.8.newlink.readObject/LNK FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "4" 12 %%Page: "5" 13 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 54 108.7 B -0.58 0.09 (1) 88.71 108.7 B -0.58 0.09 (:) 93.3 108.7 B 0 F -0.58 0.09 (System Ar) 97.4 108.7 B -0.58 0.09 (chitectur) 136.21 108.7 B -0.58 0.09 (e) 169.19 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 532.04 108.7 B -0.58 0.09 (5) 553.41 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (1) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.47 0.1 (For a serializable class, Object Serialization can automatically save and r) 198 641.33 B 0.47 0.1 (estor) 528.02 641.33 B 0.47 0.1 (e) 550.04 641.33 B 0.15 0.1 (\336elds of each class of an object and automatically handle classes that evolve by) 198 628.93 B 0.51 0.1 (adding \336elds or supertypes. A serializable class can declar) 198 616.53 B 0.51 0.1 (e which of its \336elds) 465.22 616.53 B 0.52 0.1 (ar) 198 604.13 B 0.52 0.1 (e saved or r) 206.97 604.13 B 0.52 0.1 (estor) 260.99 604.13 B 0.52 0.1 (ed, and write and r) 283.01 604.13 B 0.52 0.1 (ead optional values and objects.) 371.27 604.13 B 0.52 0.1 (Optional primitive values ar) 198 591.73 B 0.52 0.1 (e written and r) 327.7 591.73 B 0.52 0.1 (ead fr) 396.08 591.73 B 0.52 0.1 (om block-data r) 422.7 591.73 B 0.52 0.1 (ecor) 494.9 591.73 B 0.52 0.1 (ds.) 513.76 591.73 B 0.52 0.1 (Putting the optional data in r) 198 579.33 B 0.52 0.1 (ecor) 331.55 579.33 B 0.52 0.1 (ds allows it to be skipped if necessary) 350.41 579.33 B 0.52 0.1 (.) 523.46 579.33 B 0.3 0.1 (For an Externalizable class, Object Serialization delegates to the class complete) 198 558.93 B 0.52 0.1 (contr) 198 546.53 B 0.52 0.1 (ol over its external format and how the state of the supertype\050s\051 is saved) 221.25 546.53 B 0.52 0.1 (and r) 198 534.13 B 0.52 0.1 (estor) 222.22 534.13 B 0.52 0.1 (ed.) 244.24 534.13 B 0 15 Q (1.5) 67.47 500.4 T -0.94 (Specifying Serializable Persistent Fields and Data for a Class) 97.27 500.4 P 54 644/G4.5251 FmPA 1 10 Q 0.52 0.1 (When objects ar) 198 478.73 B 0.52 0.1 (e declar) 270.8 478.73 B 0.52 0.1 (ed to be serializable so that they can be written to or) 306.43 478.73 B 0.52 0.1 (r) 198 466.33 B 0.52 0.1 (ead fr) 201.87 466.33 B 0.52 0.1 (om a str) 228.49 466.33 B 0.52 0.1 (eam, the class designer must take car) 265.89 466.33 B 0.52 0.1 (e that the information) 435.88 466.33 B 0.52 0.1 (saved for the class is appr) 198 453.93 B 0.52 0.1 (opriate for persistence and follows serialization\325s) 316.97 453.93 B 0.52 0.1 (r) 198 441.53 B 0.52 0.1 (ules for evolution and inter) 201.97 441.53 B 0.52 0.1 (operability) 327.33 441.53 B 0.52 0.1 (. Serialized str) 375.61 441.53 B 0.52 0.1 (eams of objects must) 440.64 441.53 B 0.06 0.1 (inter) 198 429.13 B 0.06 0.1 (operate over time and acr) 219.05 429.13 B 0.06 0.1 (oss versions of the classes that ar) 334.82 429.13 B 0.06 0.1 (e written to and) 483.3 429.13 B 0.52 0.1 (r) 198 416.73 B 0.52 0.1 (ead fr) 201.87 416.73 B 0.52 0.1 (om them. The speci\336cation of the classes serializable persistent \336elds) 228.49 416.73 B 0.52 0.1 (makes it possible for classes to evolve and still be able to communicate with) 198 404.33 B 0.52 0.1 (pr) 198 391.93 B 0.52 0.1 (evious and futur) 207.98 391.93 B 0.52 0.1 (e versions of the class. This is an essential featur) 284.05 391.93 B 0.52 0.1 (e and) 505.48 391.93 B 0.07 0.1 (bene\336t of using serialization for persistence or for communication.) 198 379.53 B 0.07 0.1 ( \322V) 498.88 379.53 B 0.07 0.1 (ersioning) 512.87 379.53 B 0.52 0.1 (of Serializable Objects\322 c) 198 367.13 B 0.52 0.1 (overs class evolution in gr) 311.3 367.13 B 0.52 0.1 (eater detail.) 431.35 367.13 B 0.52 0.1 (For classes that ar) 198 346.73 B 0.52 0.1 (e declar) 279.9 346.73 B 0.52 0.1 (ed Serializable, the serializable state of the object is) 315.53 346.73 B 0.24 0.1 (de\336ned by \336elds \050by name and type\051 plus optional data. Optional data may be) 198 334.33 B 0.08 0.1 (written to and r) 198 321.93 B 0.08 0.1 (ead fr) 269.1 321.93 B 0.08 0.1 (om the str) 295.28 321.93 B 0.08 0.1 (eam explicitly by the class itself. By default, the) 340.88 321.93 B 0.52 0.1 (non-transient and non-static \336elds of the class de\336ne the set of serializable) 198 309.53 B 0.52 0.1 (\336elds. This default set of \336elds can be overridden by declaring the set of) 198 297.13 B 0.52 0.1 (serializable persistent \336elds. See Section) 198 284.73 B 0.52 0.1 (1.6, \322De\336ning Serializable Persistent) 383.45 284.73 B 0.52 0.1 (Fields for a Class\323.) 198 272.33 B 0.52 0.1 (For classes that ar) 198 251.93 B 0.52 0.1 (e declar) 279.9 251.93 B 0.52 0.1 (ed Externalizable, the persistent state is de\336ned by) 315.53 251.93 B 0.52 0.1 (the data written to the str) 198 239.53 B 0.52 0.1 (eam by the class itself. It is up to the class to specify) 315.23 239.53 B 0.52 0.1 (the or) 198 227.13 B 0.52 0.1 (der) 224.72 227.13 B 0.52 0.1 (, types, and meaning of each datum written to the str) 239.13 227.13 B 0.52 0.1 (eam. It is up to) 483.41 227.13 B 0.52 0.1 (the class to handle its own evolution so that it can continue to r) 198 214.73 B 0.52 0.1 (ead data) 489.54 214.73 B 0.52 0.1 (written by pr) 198 202.33 B 0.52 0.1 (evious versions and that it writes data that can be r) 258.54 202.33 B 0.52 0.1 (ead by) 494.17 202.33 B 0.51 0.1 (pr) 198 189.93 B 0.51 0.1 (evious versions. The class must coor) 207.98 189.93 B 0.51 0.1 (dinate with the super) 374.33 189.93 B 0.51 0.1 (class when saving) 472.39 189.93 B 0.32 0.1 (and r) 198 177.53 B 0.32 0.1 (estoring data. The location of the super) 222.02 177.53 B 0.32 0.1 (classes data in the str) 400.33 177.53 B 0.32 0.1 (eam must be) 497.03 177.53 B 0.1 (speci\336ed.) 198 165.13 S 34 576 36 586 R V 34 363.8 36 386.2 R V 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.5/DEST FmPD2 97 654/M4.9.15020.Head1.15.Specifying.Serializable.Persistent.Fields.and.Data.for.a.Class FmPA 97 654/I4.1.5723 FmPA [/Rect[348 281 558 292]/Border[0 0 0]/Page 14/View[/XYZ null 97 613 FmDC exch pop null]/LNK FmPD [/Rect[54 268 277 281]/Border[0 0 0]/Page 14/View[/XYZ null 97 613 FmDC exch pop null]/LNK FmPD [/Rect[507 376 558 387]/Border[0 0 0]/Dest/M8.9.22059.ChapTitle.Versioning.in.Object.Serialization/LNK FmPD2 [/Rect[54 363 304 376]/Border[0 0 0]/Dest/M8.9.22059.ChapTitle.Versioning.in.Object.Serialization/LNK FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "5" 13 %%Page: "6" 14 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (6) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Object Serialization Speci\336cation) 265.69 108.7 B 1 F -0.58 0.09 (\321) 414.6 108.7 B 0 F -0.58 0.09 (JDK Playgr) 423.69 108.7 B -0.58 0.09 (ound Alpha, July 3, 1997) 466.59 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (1) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K -0.08 0.1 (Regar) 198 641.33 B -0.08 0.1 (dless of the serialization mechanism chosen, the speci\336cation must de\336ne) 224.3 641.33 B 0.52 0.1 (the \336elds as if they wer) 198 628.93 B 0.52 0.1 (e \336elds of the object using the) 305.28 628.93 B 0.52 0.1 (Java speci\336cations for) 445.42 628.93 B 0.52 0.1 (names and types. Optional data written to the str) 198 616.53 B 0.52 0.1 (eam must be speci\336ed by) 423.82 616.53 B 0.52 0.1 (sequence and type. The meaning associated with persistent \336elds and data) 198 604.13 B 0.52 0.1 (must be de\336ned. For example, a class W) 198 591.73 B 0.52 0.1 (indow has a \336eld named) 382.03 591.73 B 0.52 0.1 (\322backgr) 198 579.33 B 0.52 0.1 (ound\323 that r) 233.56 579.33 B 0.52 0.1 (efers to a Color object that is to be used to \336ll the part of) 290.33 579.33 B 0.52 0.1 (the window not otherwise cover) 198 566.93 B 0.52 0.1 (ed. These persistent \336elds may corr) 346.14 566.93 B 0.52 0.1 (espond) 508.29 566.93 B 0.52 0.1 (dir) 198 554.53 B 0.52 0.1 (ectly to declarations in the class or may only be accessible via get and set) 211.09 554.53 B 0.52 0.1 (methods described below) 198 542.13 B 0.52 0.1 (. Independent of the mechanism used to make the) 313.83 542.13 B 0.41 0.1 (persistent \336eld visible to the client the semantics of the object ar) 198 529.73 B 0.41 0.1 (e expr) 490.25 529.73 B 0.41 0.1 (essed in) 518.28 529.73 B 0.52 0.1 (terms of these values. The initial or default value must be speci\336ed for each) 198 517.33 B 0.52 0.1 (value. Classes may or may not have other \336elds which ar) 198 504.93 B 0.52 0.1 (e not part of the) 460.56 504.93 B 0.52 0.1 (persistent state of the object.) 198 492.53 B 0 15 Q (1.6) 67.47 458.8 T -0.94 (De\336ning Serializable Persistent Fields for a Class) 97.27 458.8 P 54 603/G4.5522 FmPA 1 10 Q 0.52 0.1 (By default, the serializable \336elds of a class ar) 198 437.13 B 0.52 0.1 (e de\336ned to be the non-transient) 403.86 437.13 B 0.52 0.1 (and non-static \336elds. These declarations can be overridden by declaring a) 198 424.73 B 0.52 0.1 (special \336eld in the class. For example, the declaration below duplicates the) 198 412.33 B 0.52 0.1 (default behavior) 198 399.93 B 0.52 0.1 (.) 272.42 399.93 B 7 9 Q (class List implements Serializable {) 198 384.2 T (List next;) 218.16 373.2 T -0.09 (public final static ObjectStreamFields[] serialPersistentFields) 218.16 351.2 P (= {new ObjectStreamField\050\322next\323, List.class\051};) 278.64 340.2 T (}) 198 325.2 T 1 10 Q 0.52 0.1 (The) 198 305.53 B 7 F 1.2 (serialPersistentFields) 218.16 305.53 P 1 F 0.52 0.1 ( \336eld must be initialized with an array of) 350.16 305.53 B 7 F 1.2 (ObjectStreamField) 198 293.13 P 1 F 0.52 0.1 ( objects that list the names and types of the serializable) 300 293.13 B 0.22 0.1 (\336elds. The \336eld must be static and \336nal so it does not change during operation.) 198 280.73 B 0.52 0.1 (When an) 198 260.33 B 7 F 1.2 (ObjectStreamClass) 242.09 260.33 P 1 F 0.52 0.1 ( is cr) 344.09 260.33 B 0.52 0.1 (eated for a class it examines the class to) 366.09 260.33 B 0.52 0.1 (determine the serializable \336elds. It looks for the de\336nition of the) 198 247.93 B 7 9.5 Q 1.14 (serialPersistentFields) 198 235.53 P 1 10 Q 0.52 0.1 ( and if it is not found then the list of serializable) 323.4 235.53 B 0.52 0.1 (\336elds is cr) 198 223.13 B 0.52 0.1 (eated fr) 244.6 223.13 B 0.52 0.1 (om the non-transient and non-static \336elds of the class.) 279.47 223.13 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.6/DEST FmPD2 97 613/M4.9.35472.Head1.16.Defining.Serializable.Persistent.Fields.for.a.Class FmPA 97 613/I4.1.5835 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "6" 14 %%Page: "7" 15 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 54 108.7 B -0.58 0.09 (1) 88.71 108.7 B -0.58 0.09 (:) 93.3 108.7 B 0 F -0.58 0.09 (System Ar) 97.4 108.7 B -0.58 0.09 (chitectur) 136.21 108.7 B -0.58 0.09 (e) 169.19 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 532.04 108.7 B -0.58 0.09 (7) 553.41 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (1) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 15 Q 0 X 0 0 0 1 0 0 0 K (1.7) 67.47 638 T -0.94 (Accessing Serializable Fields of a Class) 97.27 638 P 54 782/G4.5253 FmPA 1 10 Q 0.23 0.1 (Serialization pr) 198 616.33 B 0.23 0.1 (ovides two mechanisms for accessing the serializable \336elds in a) 267.28 616.33 B 0.02 0.1 (str) 198 603.93 B 0.02 0.1 (eam. The default mechanism r) 209.57 603.93 B 0.02 0.1 (equir) 346.18 603.93 B 0.02 0.1 (es no customization while the alternative) 369.78 603.93 B 0.52 0.1 (allows the class to explicitly access the \336elds by name and type.) 198 591.53 B 0.52 0.1 (The default mechanism is used automatically when r) 198 571.13 B 0.52 0.1 (eading or writing objects) 440.42 571.13 B 0.29 0.1 (that implement the Serializable interface and do no further customization. The) 198 558.73 B -0.04 0.1 (serializable persistent \336elds ar) 198 546.33 B -0.04 0.1 (e mapped to the corr) 334.67 546.33 B -0.04 0.1 (esponding \336elds of the class) 428.27 546.33 B 0.52 0.1 (and values ar) 198 533.93 B 0.52 0.1 (e written to the str) 259.66 533.93 B 0.52 0.1 (eam fr) 344.72 533.93 B 0.52 0.1 (om those \336elds or r) 374.06 533.93 B 0.52 0.1 (ead in and assigned) 463.18 533.93 B -0.06 0.1 (r) 198 521.53 B -0.06 0.1 (espectively) 201.87 521.53 B -0.06 0.1 (. If the class pr) 251.21 521.53 B -0.06 0.1 (ovides) 316.36 521.53 B 7 F -0.13 (writeObject) 348.67 521.53 P 1 F -0.06 0.1 ( and) 414.67 521.53 B 7 F -0.13 (readObject) 436.99 521.53 P 1 F -0.06 0.1 ( methods the) 496.99 521.53 B 0.52 0.1 (default mechanism can be invoked by calling) 198 509.13 B 7 F 1.2 (defaultWriteObject) 408.17 509.13 P 1 F 0.52 0.1 ( and) 516.17 509.13 B 7 F 1.2 (defaultReadObject) 198 496.73 P 1 F 0.52 0.1 (. When implementing these methods the class has an) 300 496.73 B 0.34 0.1 (opportunity to modify the data values befor) 198 484.33 B 0.34 0.1 (e they ar) 398.73 484.33 B 0.34 0.1 (e written or after they ar) 438.3 484.33 B 0.34 0.1 (e) 550.17 484.33 B 0.1 (r) 198 471.93 S 0.1 (ead.) 201.87 471.93 S 0.36 0.1 (When the default mechanism cannot be used, the serializable class can use the) 198 451.53 B 7 9.5 Q 1.14 (putFields) 198 439.13 P 1 10 Q 0.52 0.1 ( of) 249.3 439.13 B 7 9.5 Q 1.14 (ObjectOutputStream) 264.53 439.13 P 1 10 Q 0.52 0.1 ( to put the values for the serializable) 367.13 439.13 B 0.52 0.1 (\336elds into the str) 198 426.73 B 0.52 0.1 (eam. The) 275.55 426.73 B 7 9.5 Q 1.14 (writeFields) 320.35 426.73 P 1 10 Q 0.52 0.1 ( method of) 383.05 426.73 B 7 9.5 Q 1.14 (ObjectOutputStream) 436.27 426.73 P 1 10 Q 0.4 0.1 (puts the values in the in the corr) 198 414.33 B 0.4 0.1 (ect or) 346.56 414.33 B 0.4 0.1 (der and writes them to the str) 371.78 414.33 B 0.4 0.1 (eam using) 508.02 414.33 B 0.52 0.1 (the existing pr) 198 401.93 B 0.52 0.1 (otocol for serialization. Corr) 263.84 401.93 B 0.52 0.1 (espondingly) 392.56 401.93 B 0.52 0.1 (, the) 447.74 401.93 B 7 9.5 Q 1.14 (readFields) 470.75 401.93 P 1 10 Q 0.52 0.1 (method of) 198 389.53 B 7 9.5 Q 1.14 (ObjectInputStream) 248.1 389.53 P 1 10 Q 0.52 0.1 ( r) 345 389.53 B 0.52 0.1 (eads the values fr) 351.99 389.53 B 0.52 0.1 (om the str) 432.58 389.53 B 0.52 0.1 (eam and makes) 479.05 389.53 B 0.52 0.1 (them available to the class by name in any or) 198 377.13 B 0.52 0.1 (der) 405.37 377.13 B 0.52 0.1 (.) 419.78 377.13 B 0 15 Q (1.8) 67.47 343.4 T -0.94 (The ObjectOutput Interface) 97.27 343.4 P 54 487/G4.4542 FmPA 1 10 Q 0.52 0.1 (The) 198 321.73 B 7 9.5 Q 1.14 (ObjectOutput) 218.16 321.73 P 1 10 Q 0.52 0.1 ( interface pr) 286.56 321.73 B 0.52 0.1 (ovides an abstract, str) 341.97 321.73 B 0.52 0.1 (eam-based interface to) 441.76 321.73 B 0.52 0.1 (object storage. It extends) 198 309.33 B 7 9 Q 1.08 (DataOutput) 314.16 309.33 P 1 10 Q 0.52 0.1 ( so those methods may be used for) 368.16 309.33 B 0.52 0.1 (writing primitive data types. Objects implementing this interface can be used) 198 296.93 B 0.52 0.1 (to stor) 198 284.53 B 0.52 0.1 (e primitives and objects.) 227.17 284.53 B 7 9 Q (package java.io;) 198 268.8 T (public interface ObjectOutput extends DataOutput) 198 246.8 T ({) 198 235.8 T (public void writeObject\050Object obj\051 throws IOException;) 218.16 224.8 T (public void write\050int b\051 throws IOException;) 218.16 202.8 T (public void write\050byte b[]\051 throws IOException;) 218.16 180.8 T -1.24 (public void write\050byte b[], int off, int len\051 throws IOException;) 218.16 158.8 P 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.7/DEST FmPD2 97 497/M4.9.35307.Head1.15.The.ObjectOutput.Interface FmPA 97 497/I4.1.4566 FmPA 97 497/M4.9.12423.Head1.22.Alternate.Implementation.Strategies FmPA 97 497/I4.1.5259 FmPA 97 497/M4.9.27071.Head1.23.Defining.Persistent.Fields.for.a.Class FmPA 97 497/I4.1.5266 FmPA 97 792/M4.9.24154.Head1.17.Accessing.Serializable.Fields.of.a.Class FmPA 97 792/I4.1.5724 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "7" 15 %%Page: "8" 16 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (8) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Object Serialization Speci\336cation) 265.69 108.7 B 1 F -0.58 0.09 (\321) 414.6 108.7 B 0 F -0.58 0.09 (JDK Playgr) 423.69 108.7 B -0.58 0.09 (ound Alpha, July 3, 1997) 466.59 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (1) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 7 9 Q 0 X 0 0 0 1 0 0 0 K (public void flush\050\051 throws IOException;) 218.16 642 T (public void close\050\051 throws IOException;) 218.16 620 T (}) 198 609 T 1 10 Q 0.52 0.1 (The) 198 589.33 B 7 9.5 Q 1.14 (writeObject) 218.16 589.33 P 1 10 Q 0.52 0.1 ( method is used to write an object. The exceptions thr) 280.86 589.33 B 0.52 0.1 (own) 526.63 589.33 B 0.3 0.1 (r) 198 576.93 B 0.3 0.1 (e\337ect err) 201.87 576.93 B 0.3 0.1 (ors while accessing the object or its \336elds, or exceptions that occur in) 241.44 576.93 B 0.52 0.1 (writing to storage. If any exception is thr) 198 564.53 B 0.52 0.1 (own, the underlying storage may be) 385.39 564.53 B 0.52 0.1 (corr) 198 552.13 B 0.52 0.1 (upted, and you should r) 216.12 552.13 B 0.52 0.1 (efer to the object implementing this interface for) 327.52 552.13 B 0.1 (details.) 198 539.73 S 0 15 Q (1.9) 67.47 506 T -0.94 (The ObjectInput Interface) 97.27 506 P 54 650/G4.4548 FmPA 1 10 Q 0.52 0.1 (The) 198 484.33 B 7 9.5 Q 1.14 (ObjectInput) 218.16 484.33 P 1 10 Q 0.52 0.1 ( interface pr) 280.86 484.33 B 0.52 0.1 (ovides an abstract str) 336.27 484.33 B 0.52 0.1 (eam based interface to) 433.46 484.33 B 0.52 0.1 (object r) 198 471.93 B 0.52 0.1 (etrieval. It extends) 231.41 471.93 B 7 9.5 Q 1.14 (DataInput) 319.13 471.93 P 1 10 Q 0.52 0.1 ( so those methods for r) 370.43 471.93 B 0.52 0.1 (eading primitive) 476.12 471.93 B 0.52 0.1 (data types ar) 198 459.53 B 0.52 0.1 (e accessible in this interface.) 257.34 459.53 B 7 9 Q (package java.io;) 198 443.8 T (public interface ObjectInput extends DataInput) 198 421.8 T ({) 198 410.8 T (public Object readObject\050\051) 218.16 399.8 T (throws ClassNotFoundException, IOException;) 238.32 388.8 T ( public int read\050\051 throws IOException;) 198 366.8 T (public int read\050byte b[]\051 throws IOException;) 218.16 344.8 T ( public int read\050byte b[], int off, int len\051 throws IOException;) 198 322.8 T ( public long skip\050long n\051 throws IOException;) 198 300.8 T (public int available\050\051 throws IOException;) 218.16 278.8 T ( public void close\050\051 throws IOException;) 198 256.8 T (}) 198 245.8 T 1 10 Q 0.46 0.1 (The) 198 226.13 B 7 F 1.06 (readObject) 218.1 226.13 P 1 F 0.46 0.1 ( method is used to r) 278.1 226.13 B 0.46 0.1 (ead and r) 369.98 226.13 B 0.46 0.1 (eturn an object. The exceptions) 413.39 226.13 B 0.44 0.1 (thr) 198 213.73 B 0.44 0.1 (own r) 211.15 213.73 B 0.44 0.1 (e\337ect err) 237.98 213.73 B 0.44 0.1 (ors while accessing the objects or its \336elds or exceptions that) 277.69 213.73 B 0.52 0.1 (occur in r) 198 201.33 B 0.52 0.1 (eading fr) 241.86 201.33 B 0.52 0.1 (om the storage. If any exception is thr) 283.07 201.33 B 0.52 0.1 (own, the underlying) 456.75 201.33 B 0.52 0.1 (storage may be corr) 198 188.93 B 0.52 0.1 (upted, r) 288.65 188.93 B 0.52 0.1 (efer to the object implementing this interface for) 324.94 188.93 B 0.1 (details.) 198 176.53 S 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.8/DEST FmPD2 97 660/M4.9.20008.Head1.16.The.InputObject.Interface FmPA 97 660/I4.1.4562 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "8" 16 %%Page: "9" 17 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 54 108.7 B -0.58 0.09 (1) 88.71 108.7 B -0.58 0.09 (:) 93.3 108.7 B 0 F -0.58 0.09 (System Ar) 97.4 108.7 B -0.58 0.09 (chitectur) 136.21 108.7 B -0.58 0.09 (e) 169.19 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 532.04 108.7 B -0.58 0.09 (9) 553.41 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (1) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 15 Q 0 X 0 0 0 1 0 0 0 K (1.10) 59.97 638 T -0.94 (The Serializable Interface) 97.27 638 P 54 782/G4.4539 FmPA 1 10 Q 0.4 0.1 (Object Serialization pr) 198 616.33 B 0.4 0.1 (oduces a str) 299.27 616.33 B 0.4 0.1 (eam with information about the Java classes) 353.61 616.33 B 0.52 0.1 (for the objects that ar) 198 603.93 B 0.52 0.1 (e being saved. For serializable objects, suf) 295.16 603.93 B 0.52 0.1 (\336cient) 486.26 603.93 B 0.5 0.1 (information is kept to r) 198 591.53 B 0.5 0.1 (estor) 304.41 591.53 B 0.5 0.1 (e those objects even if a dif) 326.43 591.53 B 0.5 0.1 (fer) 450.22 591.53 B 0.5 0.1 (ent \050but compatible\051) 462.41 591.53 B 0.52 0.1 (version of the class\325s implementation is pr) 198 579.13 B 0.52 0.1 (esent. The interface) 391.28 579.13 B 7 F 1.2 (Serializable) 482.87 579.13 P 1 F 0.52 0.1 (is de\336ned to identify classes that implement the serializable pr) 198 566.73 B 0.52 0.1 (otocol:) 484.75 566.73 B 7 9 Q (package java.io;) 198 551 T (public interface Serializable {};) 198 529 T 1 10 Q 0.52 0.1 (A serializable object:) 198 509.33 B 6 14 Q 0.14 (\245) 198 490.93 S 1 10 Q 0.52 0.1 (Must implement the) 210.6 490.93 B 7 F 1.2 (java.io.Serializable) 306.57 490.93 P 1 F 0.52 0.1 ( interface.) 426.57 490.93 B 6 14 Q 0.14 (\245) 198 472.53 S 1 10 Q 0.23 0.1 (Must mark its \336elds that ar) 210.6 472.53 B 0.23 0.1 (e not to be persistent with the transient keywor) 333.88 472.53 B 0.23 0.1 (d) 548.86 472.53 B 0.52 0.1 (or use the) 210.6 460.13 B 7 9.5 Q 1.14 (serialPersistentFields) 259.1 460.13 P 1 10 Q 0.52 0.1 ( to specify the serializable \336elds.) 384.5 460.13 B 6 14 Q 0.14 (\245) 198 441.73 S 1 10 Q 0.52 0.1 (Can implement a) 210.6 441.73 B 7 F 1.2 (writeObject) 292.32 441.73 P 1 F 0.52 0.1 ( method to contr) 358.32 441.73 B 0.52 0.1 (ol what information is) 434.72 441.73 B 0.52 0.1 (saved, or to append additional information to the str) 210.6 429.33 B 0.52 0.1 (eam.) 452.32 429.33 B 6 14 Q 0.14 (\245) 198 410.93 S 1 10 Q 0.52 0.1 (Can implement a) 210.6 410.93 B 7 F 1.2 (readObject) 292.32 410.93 P 1 F 0.52 0.1 ( method so it can r) 352.32 410.93 B 0.52 0.1 (ead the information) 438.49 410.93 B 0.51 0.1 (written by the corr) 210.6 398.53 B 0.51 0.1 (esponding) 296.45 398.53 B 7 F 1.19 (writeObject) 347.18 398.53 P 1 F 0.51 0.1 ( method, or to update the state) 413.18 398.53 B 0.52 0.1 (of the object after it has been r) 210.6 386.13 B 0.52 0.1 (estor) 349.78 386.13 B 0.52 0.1 (ed.) 371.8 386.13 B 6 14 Q 0.14 (\245) 198 367.73 S 1 10 Q 0.38 0.1 (The \336rst non-Serializable super) 210.6 367.73 B 0.38 0.1 (class must have a public or pr) 352.81 367.73 B 0.38 0.1 (otected no-ar) 489.58 367.73 B 0.38 0.1 (g) 549.26 367.73 B 0.1 (constr) 210.6 355.33 S 0.1 (uctor) 238.29 355.33 S 0.1 (.) 261.19 355.33 S 7 F 1.2 (ObjectOutputStream) 198 334.93 P 1 F 0.52 0.1 ( and) 306 334.93 B 7 F 1.2 (ObjectInputStream) 329.47 334.93 P 1 F 0.52 0.1 ( ar) 431.47 334.93 B 0.52 0.1 (e designed and) 443.56 334.93 B 0.08 0.1 (implemented to allow the serializable classes they operate on to evolve. Evolve) 198 322.53 B 0.52 0.1 (in this context means to allow changes to the classes that ar) 198 310.13 B 0.52 0.1 (e compatible with) 470.72 310.13 B 0.52 0.1 (the earlier versions of the classes. Details of the mechanism to allow) 198 297.73 B 0.52 0.1 (compatible changes can be found in Section) 198 285.33 B 0.52 0.1 (5.5, \322Compatible Java T) 400.72 285.33 B 0.52 0.1 (ype) 508.08 285.33 B 0.1 (Evolution.) 198 272.93 S 0 15 Q (1.1) 60.79 239.2 T (1) 78.72 239.2 T -0.94 (The Externalizable Interface) 97.27 239.2 P 54 383/G4.4333 FmPA 1 10 Q 0.11 0.1 (For Externalizable objects only the identity of class of the object is saved by the) 198 217.53 B 0.52 0.1 (container and it is the r) 198 205.13 B 0.52 0.1 (esponsibility of the class to save and r) 304.94 205.13 B 0.52 0.1 (estor) 479.22 205.13 B 0.52 0.1 (e the) 501.23 205.13 B 0.52 0.1 (contents. The interface Externalizable is de\336ned as:) 198 192.73 B 7 9 Q (package java.io;) 198 177 T (public interface Externalizable extends Serializable) 198 155 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.9/DEST FmPD2 97 792/M4.9.12097.Head1.15.Serializable.Objects FmPA 97 792/I4.1.4538 FmPA 123 393/M4.9.32153.Head1.16.Externalizable.Object FmPA 123 393/I4.1.4532 FmPA [/Rect[365 281 558 292]/Border[0 0 0]/Dest/M8.9.13669.Head1.55.Compatible.Java.Type.Evolution/LNK FmPD2 [/Rect[54 269 243 281]/Border[0 0 0]/Dest/M8.9.13669.Head1.55.Compatible.Java.Type.Evolution/LNK FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "9" 17 %%Page: "10" 18 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (10) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Object Serialization Speci\336cation) 265.69 108.7 B 1 F -0.58 0.09 (\321) 414.6 108.7 B 0 F -0.58 0.09 (JDK Playgr) 423.69 108.7 B -0.58 0.09 (ound Alpha, July 3, 1997) 466.59 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (1) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 7 9 Q 0 X 0 0 0 1 0 0 0 K ({) 198 642 T (public void writeExternal\050ObjectOutput out\051) 218.16 631 T (throws IOException;) 238.32 620 T (public void readExternal\050ObjectInput in\051) 218.16 598 T (throws IOException, java.lang.ClassNotFoundException;) 238.32 587 T (}) 198 576 T 1 10 Q 0.52 0.1 (An externalizable object:) 198 556.33 B 6 14 Q 0.14 (\245) 198 537.93 S 1 10 Q 0.52 0.1 (Must implement the) 210.6 537.93 B 7 F 1.2 (java.io.Externalizable) 306.57 537.93 P 1 F 0.52 0.1 ( interface.) 438.57 537.93 B 6 14 Q 0.14 (\245) 198 519.53 S 1 10 Q -0 0.1 (Must implement a) 210.6 519.53 B 7 F -0.01 (writeExternal) 295.93 519.53 P 1 F -0 0.1 ( method to save the state of the object. It) 373.93 519.53 B 0.52 0.1 (must explicitly coor) 210.6 507.13 B 0.52 0.1 (dinate with its supertype to save its state.) 300.99 507.13 B 6 14 Q 0.14 (\245) 198 488.73 S 1 10 Q 0.52 0.1 (Must implement a) 210.6 488.73 B 7 F 1.2 (readExternal) 297.5 488.73 P 1 F 0.52 0.1 ( method to r) 369.5 488.73 B 0.52 0.1 (ead the data written by the) 426.52 488.73 B 7 F 0.28 (writeExternal) 210.6 476.33 P 1 F 0.12 0.1 ( method fr) 288.6 476.33 B 0.12 0.1 (om the str) 336.21 476.33 B 0.12 0.1 (eam and r) 381.89 476.33 B 0.12 0.1 (estor) 427.36 476.33 B 0.12 0.1 (e the state of the object.) 449.38 476.33 B 0.52 0.1 (It must explicitly coor) 210.6 463.93 B 0.52 0.1 (dinate with the supertype to save its state.) 310.94 463.93 B 6 14 Q 0.14 (\245) 198 445.53 S 1 10 Q 0.52 0.1 (If writing an externally de\336ned format, the) 210.6 445.53 B 7 9.5 Q 1.14 (writeExternal) 410.43 445.53 P 1 10 Q 0.52 0.1 ( and) 484.53 445.53 B 7 F 1.2 (readExternal) 210.6 433.13 P 1 F 0.52 0.1 ( methods ar) 282.6 433.13 B 0.52 0.1 (e solely r) 337.02 433.13 B 0.52 0.1 (esponsible for that format.) 378.49 433.13 B 6 14 Q 0.14 (\245) 198 414.73 S 1 10 Q 0.52 0.1 (Must have a public or pr) 210.6 414.73 B 0.52 0.1 (otected no-ar) 324.37 414.73 B 0.52 0.1 (g constr) 384.18 414.73 B 0.52 0.1 (uctor) 420.65 414.73 B 0.52 0.1 (.) 443.55 414.73 B 54 393.01 558 401 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 558 397.98 198 397.98 2 L 0.3 H 2 Z 0 X 1 1 0 0 0 0 1 K N 0 0 0 1 0 0 0 K 0 72 612 720 C 5 10 Q 0 X 0 0 0 1 0 0 0 K -0.06 0.1 (Note \320) 198 386.34 B 1 F -0.06 0.1 (The) 230.79 386.34 B 7 F -0.15 (writeExternal) 250.37 386.34 P 1 F -0.06 0.1 ( and) 328.37 386.34 B 7 F -0.15 (readExternal) 350.67 386.34 P 1 F -0.06 0.1 ( methods ar) 422.67 386.34 B -0.06 0.1 (e public and raise) 475.92 386.34 B 0.52 0.1 (the risk that a client may be able to write or r) 198 373.94 B 0.52 0.1 (ead information in the object) 406.11 373.94 B 0.52 0.1 (other than by using its methods and \336elds. These methods must be used only) 198 361.54 B 0.52 0.1 (when the information held by the object is not sensitive or when exposing it) 198 349.14 B 54 325.42 558 333.41 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 558 330.38 198 330.38 2 L 0.3 H 2 Z 0 X 1 1 0 0 0 0 1 K N 0 0 0 1 0 0 0 K 0 72 612 720 C 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (would not pr) 198 336.74 B 0.52 0.1 (esent a security risk.) 258.41 336.74 B 0 15 Q (1.12) 59.97 295.02 T -0.94 (The Replaceable & Resolvable Interfaces) 97.27 295.02 P 54 439/G4.4160 FmPA 1 10 Q 0.42 0.1 (The Replaceable interface allows an object to nominate its own r) 198 273.35 B 0.42 0.1 (eplacement in) 491.39 273.35 B 0.52 0.1 (the str) 198 260.95 B 0.52 0.1 (eam befor) 226.86 260.95 B 0.52 0.1 (e the object is written. The Resolvable interface allows a class) 272.28 260.95 B 0.52 0.1 (to r) 198 248.55 B 0.52 0.1 (eplace/r) 213.91 248.55 B 0.52 0.1 (esolve the object r) 252.48 248.55 B 0.52 0.1 (ead fr) 334.74 248.55 B 0.52 0.1 (om the str) 361.36 248.55 B 0.52 0.1 (eam befor) 407.83 248.55 B 0.52 0.1 (e it is r) 453.25 248.55 B 0.52 0.1 (eturned to the) 485.09 248.55 B 0.52 0.1 (caller) 198 236.15 B 0.52 0.1 (. The interfaces ar) 221.86 236.15 B 0.52 0.1 (e de\336ned as:) 306.48 236.15 B 7 9 Q (package java.io;) 198 220.42 T (public interface Replaceable extends Serializable {) 198 198.42 T ( public Object writeReplace\050Object obj\051;) 198 187.42 T (}) 198 176.42 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.10/DEST FmPD2 97 449/M4.9.37204.Head1.112.The.Replaceable.Interface FmPA 97 449/I4.1.5413 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "10" 18 %%Page: "11" 19 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 54 108.7 B -0.58 0.09 (1) 88.71 108.7 B -0.58 0.09 (:) 93.3 108.7 B 0 F -0.58 0.09 (System Ar) 97.4 108.7 B -0.58 0.09 (chitectur) 136.21 108.7 B -0.58 0.09 (e) 169.19 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 527.95 108.7 B -0.58 0.09 (1) 549.32 108.7 B -0.58 0.09 (1) 553.41 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (1) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 7 9 Q 0 X 0 0 0 1 0 0 0 K (public interface Resolvable extends Serializable {) 198 642 T ( public Object readResolve\050Object obj\051;) 198 631 T (}) 198 620 T 1 10 Q 0.52 0.1 (By implementing the Replaceable interface the class itself can dir) 198 600.33 B 0.52 0.1 (ectly contr) 495.09 600.33 B 0.52 0.1 (ol) 542.91 600.33 B 0.31 0.1 (the types and instances of its own instances being serialized. By implementing) 198 587.93 B 0.52 0.1 (the Resolvable interface the class itself can dir) 198 575.53 B 0.52 0.1 (ectly contr) 408.35 575.53 B 0.52 0.1 (ol the types and) 456.18 575.53 B 0.52 0.1 (instances of its own instances being deserialized) 198 563.13 B 0.52 0.1 (For example, a Symbol class could be cr) 198 542.73 B 0.52 0.1 (eated for which only a single instance) 380.85 542.73 B 0.52 0.1 (of each symbol binding existed within a virtual machine. The) 198 530.33 B 7 9.5 Q 1.14 (readResolve) 482.21 530.33 P 1 10 Q 0.52 0.1 (method would be implemented to determine if that symbol was alr) 198 517.93 B 0.52 0.1 (eady) 506.33 517.93 B -0.09 0.1 (de\336ned and substitute the pr) 198 505.53 B -0.09 0.1 (eexisting equivalent Symbol object to maintain the) 328.24 505.53 B 0.52 0.1 (identity constraint. In this way the uniqueness of Symbol objects can be) 198 493.13 B 0.52 0.1 (maintained acr) 198 480.73 B 0.52 0.1 (oss serialization.) 266.08 480.73 B 0.1 (The writeReplace method is called when) 198 464.33 S 7 9.5 Q (ObjectOutputStream) 383.86 464.33 T 1 10 Q 0.1 ( is pr) 486.46 464.33 S 0.1 (eparing to) 508.99 464.33 S 0.1 (write the object to the str) 198 452.33 S 0.1 (eam. The) 310 452.33 S 7 F (ObjectOutputStream) 353.76 452.33 T 1 F 0.1 ( checks to see if the) 461.76 452.33 S 0.1 (class implements the) 198 440.33 S 7 F (Replaceable) 294.69 440.33 T 1 F 0.1 ( interface. If so, it calls the) 360.69 440.33 S 7 F (writeReplace) 480.62 440.33 T 1 F -0.29 0.1 (method to allow the object to designate its r) 198 428.33 B -0.29 0.1 (eplacement in the str) 392.85 428.33 B -0.29 0.1 (eam. The object) 486.09 428.33 B -0.74 0.1 (r) 198 416.33 B -0.74 0.1 (eturned either should be of the same type as the object passed in or an object that) 201.87 416.33 B -0.13 0.1 (when r) 198 404.33 B -0.13 0.1 (ead and r) 229.51 404.33 B -0.13 0.1 (esolved will r) 271.75 404.33 B -0.13 0.1 (esult in an object of a type that is compatible with) 332.67 404.33 B -0.22 0.1 (all r) 198 392.33 B -0.22 0.1 (efer) 215.37 392.33 B -0.22 0.1 (ences to the object, otherwise a) 232.45 392.33 B 7 F -0.5 (ClassCastException) 373.01 392.33 P 1 F -0.22 0.1 ( will occur when) 481.01 392.33 B 0.1 (the type mismatch is discover) 198 380.33 S 0.1 (ed.) 332.24 380.33 S 0.52 0.1 (The r) 198 360.33 B 0.52 0.1 (eadResolve method is called when) 222.03 360.33 B 7 F 1.2 (ObjectInputStream) 383.2 360.33 P 1 F 0.52 0.1 ( has r) 485.2 360.33 B 0.52 0.1 (ead an) 510.67 360.33 B 0.52 0.1 (object fr) 198 347.93 B 0.52 0.1 (om the str) 234.84 347.93 B 0.52 0.1 (eam and is pr) 281.31 347.93 B 0.52 0.1 (eparing to r) 344.15 347.93 B 0.52 0.1 (eturn it to the caller) 397.92 347.93 B 0.52 0.1 (.) 488.07 347.93 B 7 F 1.2 (ObjectInputStream) 198 335.53 P 1 F 0.52 0.1 ( checks if the object implements the) 300 335.53 B 7 F 1.2 (Resolvable) 466.32 335.53 P 1 F 0.52 0.1 (interface. If so, it calls the) 198 323.13 B 7 F 1.2 (readResolve) 318.45 323.13 P 1 F 0.52 0.1 ( method to allow the object in the) 384.45 323.13 B 0.39 0.1 (str) 198 310.73 B 0.39 0.1 (eam to designate the object to be r) 209.57 310.73 B 0.39 0.1 (eturned. The object r) 365.59 310.73 B 0.39 0.1 (eturned should be of) 459.93 310.73 B 0.52 0.1 (a type that is compatible with all uses or a) 198 298.33 B 7 F 1.2 (ClassCastException) 395.81 298.33 P 1 F 0.52 0.1 ( will be) 503.81 298.33 B 0.52 0.1 (thr) 198 285.93 B 0.52 0.1 (own when the type mismatch is discover) 211.15 285.93 B 0.52 0.1 (ed.) 398.8 285.93 B 0 15 Q (1.13) 59.97 252.2 T -0.94 (Pr) 97.27 252.2 P -0.94 (otecting Sensitive Information) 112 252.2 P 54 396/G4.5292 FmPA 1 10 Q 0.52 0.1 (When developing a class that pr) 198 230.53 B 0.52 0.1 (ovides contr) 345.59 230.53 B 0.52 0.1 (olled access to r) 401.72 230.53 B 0.52 0.1 (esour) 474.3 230.53 B 0.52 0.1 (ces, car) 499.09 230.53 B 0.52 0.1 (e) 532.09 230.53 B 0.52 0.1 (must be taken to pr) 198 218.13 B 0.52 0.1 (otect sensitive information and functions. During) 287.59 218.13 B 0.52 0.1 (deserialization, the private state of the object is r) 198 205.73 B 0.52 0.1 (estor) 420.41 205.73 B 0.52 0.1 (ed. For example, a \336le) 442.43 205.73 B 0.52 0.1 (descriptor contains a handle that pr) 198 193.33 B 0.52 0.1 (ovides access to an operating system) 361.34 193.33 B -0.02 0.1 (r) 198 180.93 B -0.02 0.1 (esour) 201.87 180.93 B -0.02 0.1 (ce. Being able to for) 226.66 180.93 B -0.02 0.1 (ge a \336le descriptor would allow some forms of illegal) 315.11 180.93 B 0.52 0.1 (access, since r) 198 168.53 B 0.52 0.1 (estoring state is done fr) 261.16 168.53 B 0.52 0.1 (om a str) 368.71 168.53 B 0.52 0.1 (eam. Ther) 406.11 168.53 B 0.52 0.1 (efor) 451.66 168.53 B 0.52 0.1 (e, the serializing) 469.41 168.53 B 0.52 0.1 (r) 198 156.13 B 0.52 0.1 (untime must take the conservative appr) 201.97 156.13 B 0.52 0.1 (oach and not tr) 384.1 156.13 B 0.52 0.1 (ust the str) 453.98 156.13 B 0.52 0.1 (eam to) 499.79 156.13 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.11/DEST FmPD2 97 406/M4.9.27183.Head1.14.Protecting.Sensitive.Information FmPA 97 406/I4.1.3561 FmPA 97 406/M4.9.14247.Head1.13.Versioning.Support.for.Serializable.Classes FmPA 97 406/I4.1.4157 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "11" 19 %%Page: "12" 20 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (12) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Object Serialization Speci\336cation) 265.69 108.7 B 1 F -0.58 0.09 (\321) 414.6 108.7 B 0 F -0.58 0.09 (JDK Playgr) 423.69 108.7 B -0.58 0.09 (ound Alpha, July 3, 1997) 466.59 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (1) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (contain only valid r) 198 641.33 B 0.52 0.1 (epr) 287.87 641.33 B 0.52 0.1 (esentations of objects. T) 302.74 641.33 B 0.52 0.1 (o avoid compr) 410.45 641.33 B 0.52 0.1 (omising a class,) 476.89 641.33 B 0.27 0.1 (the sensitive state of an object must not be r) 198 628.93 B 0.27 0.1 (estor) 396.99 628.93 B 0.27 0.1 (ed fr) 419.01 628.93 B 0.27 0.1 (om the str) 440.28 628.93 B 0.27 0.1 (eam, or it must) 486.26 628.93 B 0.52 0.1 (be r) 198 616.53 B 0.52 0.1 (everi\336ed by the class. Several techniques ar) 215.51 616.53 B 0.52 0.1 (e available to pr) 414.17 616.53 B 0.52 0.1 (otect sensitive) 487.92 616.53 B 0.52 0.1 (data in classes.) 198 604.13 B 0.34 0.1 (The easiest technique is to mark \336elds that contain sensitive data as) 198 583.73 B 7 F 0.79 (private) 509.11 583.73 P 1.2 (transient) 198 571.33 P 1 F 0.52 0.1 (. T) 252 571.33 B 0.52 0.1 (ransient \336elds ar) 263.05 571.33 B 0.52 0.1 (e not persistent and will not be saved by any) 339.45 571.33 B 0.52 0.1 (persistence mechanism. Marking the \336eld will pr) 198 558.93 B 0.52 0.1 (event the state fr) 422.08 558.93 B 0.52 0.1 (om) 498.77 558.93 B 0.52 0.1 (appearing in the str) 198 546.53 B 0.52 0.1 (eam and fr) 287.98 546.53 B 0.52 0.1 (om being r) 337.67 546.53 B 0.52 0.1 (estor) 387.38 546.53 B 0.52 0.1 (ed during deserialization. Since) 409.4 546.53 B 0.52 0.1 (writing and r) 198 534.13 B 0.52 0.1 (eading \050of private \336elds\051 cannot be superseded outside of the) 258.79 534.13 B 0.52 0.1 (class, the class\325s transient \336elds ar) 198 521.73 B 0.52 0.1 (e safe.) 353.77 521.73 B 0.17 0.1 (Particularly sensitive classes should not be serialized at all. T) 198 501.33 B 0.17 0.1 (o accomplish this,) 473.83 501.33 B 0.52 0.1 (the object should not implement either the) 198 488.93 B 7 F 1.2 (Serializable) 395.78 488.93 P 1 F 0.52 0.1 ( or the) 467.78 488.93 B 7 F 1.2 (Externalizable) 198 476.53 P 1 F 0.52 0.1 ( interface.) 282 476.53 B 0.52 0.1 (Some classes may \336nd it bene\336cial to allow writing and r) 198 456.13 B 0.52 0.1 (eading but) 460.56 456.13 B 0.52 0.1 (speci\336cally handle and r) 198 443.73 B 0.52 0.1 (evalidate the state as it is deserialized. The class) 309.87 443.73 B 0.06 0.1 (should implement) 198 431.33 B 7 9.5 Q 0.14 (writeObject) 283.55 431.33 P 1 10 Q 0.06 0.1 ( and) 346.25 431.33 B 7 9.5 Q 0.14 (readObject) 368.8 431.33 P 1 10 Q 0.06 0.1 ( methods to save and r) 425.8 431.33 B 0.06 0.1 (estor) 528.43 431.33 B 0.06 0.1 (e) 550.45 431.33 B 0.52 0.1 (only the appr) 198 418.93 B 0.52 0.1 (opriate state. If access should be denied, thr) 259.75 418.93 B 0.52 0.1 (owing a) 460.54 418.93 B 7 9.5 Q 1.14 (NotSerializableException) 198 406.53 P 1 10 Q 0.52 0.1 ( will pr) 334.8 406.53 B 0.52 0.1 (event further access.) 368.49 406.53 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.12/DEST FmPD2 [/Dest/L.serialarchdoc/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "12" 20 %%Page: "13" 21 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (13) 548.82 108.7 B 0 0 0 1 0 0 0 K 198 500.18 558 500.18 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 540.76 521.07 558.36 524.92 R 0 X 1 1 0 0 0 0 1 K V 540.76 514.65 558.36 518.5 R V 540.76 508.42 558.36 512.27 R V 540.76 518.61 558.36 521.29 R 7 X V 540.76 512.4 558.36 514.87 R V 0 0 0 1 0 0 0 K 54 522.64 558 589.39 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 72 612 720 C 0 20 Q 0 X 0 0 0 1 0 0 0 K -2.5 (Object Output Classes) 198 509.31 P 54 653/G5.60 FmPA 1 1 0 0 0 0 1 K 0 24 Q 1 1 0 0 0 0 1 K -3.12 (2) 525.14 508.64 S 0 0 0 1 0 0 0 K 0 13 Q 0 0 0 1 0 0 0 K 0.13 (T) 198 457.68 S 0.13 (opics:) 204.63 457.68 S 6 14 Q 0.14 (\245) 198 438.68 S 1 10 Q 0.52 0.1 (The ObjectOutputStr) 210.6 438.68 B 0.52 0.1 (eam Class) 305.21 438.68 B 6 14 Q 0.14 (\245) 198 420.28 S 1 10 Q 0.52 0.1 (The ObjectOutputStr) 210.6 420.28 B 0.52 0.1 (eam.PutField Class) 305.21 420.28 B 6 14 Q 0.14 (\245) 198 401.88 S 1 10 Q 0.52 0.1 (The writeObject Method) 210.6 401.88 B 6 14 Q 0.14 (\245) 198 383.48 S 1 10 Q 0.52 0.1 (The writeExternal Method) 210.6 383.48 B 0 15 Q (2.1) 67.47 349.74 T -0.94 (The ObjectOutputStr) 97.27 349.74 P -0.94 (eam Class) 227.04 349.74 P 54 494/G5.933 FmPA 1 10 Q 0.52 0.1 (Class) 198 328.08 B 7 9.5 Q 1.14 (ObjectOutputStream) 225.1 328.08 P 1 10 Q 0.52 0.1 ( implements object serialization. It maintains the) 327.7 328.08 B 0.52 0.1 (state of the str) 198 315.68 B 0.52 0.1 (eam including the set of objects alr) 263.14 315.68 B 0.52 0.1 (eady serialized. Its methods) 422.68 315.68 B 0.27 0.1 (contr) 198 303.28 B 0.27 0.1 (ol the traversal of objects to be serialized to save the speci\336ed objects and) 221.25 303.28 B 0.52 0.1 (the objects to which they r) 198 290.88 B 0.52 0.1 (efer) 318.98 290.88 B 0.52 0.1 (.) 335.5 290.88 B 7 9 Q (package java.io;) 198 275.14 T (public class ObjectOutputStream) 198 253.14 T (extends OutputStream) 218.16 242.14 T (implements ObjectOutput, ObjectStreamConstants) 218.16 231.14 T ({) 198 220.14 T (public ObjectOutputStream\050OutputStream out\051) 218.16 209.14 T (throws IOException;) 238.32 198.14 T (public final void writeObject\050Object obj\051) 218.16 176.14 T (throws IOException;) 238.32 165.14 T 34 398.54 36 408.54 R V 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.13/DEST FmPD2 [/Dest/F.outputdoc/DEST FmPD2 97 504/M5.9.25992.Head1.21.Interface.ObjectOutput FmPA 97 504/I5.1.2710 FmPA 97 504/M5.9.42321.Head1.22.The.ObjectOutputStream.Class FmPA 97 504/I5.1.2726 FmPA [/Rect[211 397 322 412]/Border[0 0 0]/Page 28/View[/XYZ null 97 662 FmDC exch pop null]/LNK FmPD [/Rect[211 434 351 449]/Border[0 0 0]/Page 21/View[/XYZ null 97 504 FmDC exch pop null]/LNK FmPD [/Rect[211 415 392 430]/Border[0 0 0]/Page 28/View[/XYZ null 97 792 FmDC exch pop null]/LNK FmPD [/Rect[211 378 331 393]/Border[0 0 0]/Page 28/View[/XYZ null 97 428 FmDC exch pop null]/LNK FmPD [/Title(A)/Rect[45 488 567 598]/ARTICLE FmPD2 [/Title(A)/Rect[45 135 567 475]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "13" 21 %%Page: "14" 22 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (14) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Object Serialization Speci\336cation) 265.69 108.7 B 1 F -0.58 0.09 (\321) 414.6 108.7 B 0 F -0.58 0.09 (JDK Playgr) 423.69 108.7 B -0.58 0.09 (ound Alpha, July 3, 1997) 466.59 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (2) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 7 9 Q 0 X 0 0 0 1 0 0 0 K (public final void defaultWriteObject\050\051;) 218.16 642 T (throws IOException, NotActiveException;) 238.32 631 T (public PutField putFields\050\051) 218.16 620 T (throws IOException;) 238.32 609 T (public writeFields\050\051) 218.16 587 T (throws IOException;) 238.32 576 T (public void reset\050\051 throws IOException;) 238.32 561 T (protected void annotateClass\050Class cl\051 throws IOException;) 218.16 539 T (protected Object replaceObject\050Object obj\051 throws IOException;) 218.16 517 T (protected final boolean enableReplaceObject\050boolean enable\051) 218.16 495 T (throws SecurityException;) 238.32 484 T (protected void writeStreamHeader\050\051 throws IOException;) 218.16 462 T (public void write\050int data\051 throws IOException;) 218.16 440 T (public void write\050byte b[]\051 throws IOException;) 218.16 418 T -1.24 (public void write\050byte b[], int off, int len\051 throws IOException;) 218.16 396 P (public void flush\050\051 throws IOException;) 218.16 374 T (protected void drain\050\051 throws IOException;) 218.16 352 T (public void close\050\051 throws IOException;) 218.16 330 T (public void writeBoolean\050boolean data\051 throws IOException;) 218.16 308 T (public void writeByte\050int data\051 throws IOException;) 218.16 286 T (public void writeShort\050int data\051 throws IOException;) 218.16 264 T (public void writeChar\050int data\051 throws IOException;) 218.16 242 T (public void writeInt\050int data\051 throws IOException;) 218.16 220 T (public void writeLong\050long data\051 throws IOException;) 218.16 198 T (public void writeFloat\050float data\051 throws IOException;) 218.16 176 T (public void writeDouble\050double data\051 throws IOException;) 218.16 154 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.14/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "14" 22 %%Page: "15" 23 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 54 108.7 B -0.58 0.09 (2) 88.71 108.7 B -0.58 0.09 (:) 93.3 108.7 B 0 F -0.58 0.09 (Object Output Classes) 97.4 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (15) 548.82 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (2) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 7 9 Q 0 X 0 0 0 1 0 0 0 K (public void writeBytes\050String data\051 throws IOException;) 218.16 631 T (public void writeChars\050String data\051 throws IOException;) 218.16 609 T (public void writeUTF\050String data\051 throws IOException;) 218.16 587 T (// Inner class to provide access to serializable fields.) 218.16 565 T (public class PutField) 218.16 554 T ({) 218.16 543 T (public void put\050String name, boolean value\051) 238.32 532 T (throws IOException, IllegalArgumentException;) 258.48 521 T (public void put\050String name, char data\051) 238.32 499 T (throws IOException, IllegalArgumentException;) 258.48 488 T (public void put\050String name, byte data\051) 238.32 466 T (throws IOException, IllegalArgumentException;) 258.48 455 T (public void put\050String name, short data\051) 238.32 433 T (throws IOException, IllegalArgumentException;) 258.48 422 T (public void put\050String name, int data\051) 238.32 400 T (throws IOException, IllegalArgumentException;) 258.48 389 T (public void put\050String name, long data\051) 238.32 367 T (throws IOException, IllegalArgumentException;) 258.48 356 T (public void put\050String name, float data\051) 238.32 334 T (throws IOException, IllegalArgumentException;) 258.48 323 T (public void put\050String name, double data\051) 238.32 301 T (throws IOException, IllegalArgumentException;) 258.48 290 T (public void put\050String name, Object data\051) 238.32 268 T (throws IOException, IllegalArgumentException;) 258.48 257 T (}) 218.16 246 T (}) 198 235 T (}) 198 209 T 1 10 Q 0.52 0.1 (The) 198 189.33 B 7 9.5 Q 1.14 (ObjectOutputStream) 218.16 189.33 P 1 10 Q 0.52 0.1 ( constr) 320.76 189.33 B 0.52 0.1 (uctor r) 351.57 189.33 B 0.52 0.1 (equir) 382.2 189.33 B 0.52 0.1 (es an OutputStr) 405.8 189.33 B 0.52 0.1 (eam. The) 477.92 189.33 B 0.27 0.1 (constr) 198 176.93 B 0.27 0.1 (uctor calls) 225.69 176.93 B 7 9.5 Q 0.59 (writeStreamHeader) 275.06 176.93 P 1 10 Q 0.27 0.1 ( to write a magic number and version to) 371.96 176.93 B 0.52 0.1 (the str) 198 164.53 B 0.52 0.1 (eam, that will be r) 226.86 164.53 B 0.52 0.1 (ead and veri\336ed by the corr) 310.46 164.53 B 0.52 0.1 (esponding) 437.92 164.53 B 7 9.5 Q 1.14 (readStreamHeader) 198 152.13 P 1 10 Q 0.52 0.1 ( in the) 289.2 152.13 B 7 9.5 Q 1.14 (ObjectInputStream) 321.66 152.13 P 1 10 Q 0.52 0.1 ( constr) 418.56 152.13 B 0.52 0.1 (uctor) 449.37 152.13 B 0.52 0.1 (.) 472.27 152.13 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.15/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "15" 23 %%Page: "16" 24 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (16) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Object Serialization Speci\336cation) 265.69 108.7 B 1 F -0.58 0.09 (\321) 414.6 108.7 B 0 F -0.58 0.09 (JDK Playgr) 423.69 108.7 B -0.58 0.09 (ound Alpha, July 3, 1997) 466.59 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (2) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (The) 198 641.33 B 7 9.5 Q 1.14 (writeObject) 218.16 641.33 P 1 10 Q 0.52 0.1 ( method is used to serialize an object to the str) 280.86 641.33 B 0.52 0.1 (eam. Objects) 494.27 641.33 B 0.52 0.1 (ar) 198 628.93 B 0.52 0.1 (e serialized as follows:) 206.97 628.93 B 0.1 (1.) 197.5 608.53 S 0.52 0.1 (If ther) 210.6 608.53 B 0.52 0.1 (e is data in the block-data buf) 238.66 608.53 B 0.52 0.1 (fer) 375.1 608.53 B 0.52 0.1 (, it is written to the str) 386.73 608.53 B 0.52 0.1 (eam and the) 489.46 608.53 B 0.52 0.1 (buf) 210.6 596.13 B 0.52 0.1 (fer is r) 225.61 596.13 B 0.52 0.1 (eset.) 255.44 596.13 B 0.1 (2.) 197.5 575.73 S 0.52 0.1 (If the object is null, null is put in the str) 210.6 575.73 B 0.52 0.1 (eam and writeObject r) 393 575.73 B 0.52 0.1 (eturns.) 494.95 575.73 B 0.1 (3.) 197.5 555.33 S 0.52 0.1 (If the object has alr) 210.6 555.33 B 0.52 0.1 (eady been written to the str) 297.91 555.33 B 0.52 0.1 (eam, its handle is written to) 424.39 555.33 B 0.52 0.1 (the str) 210.6 542.93 B 0.52 0.1 (eam and writeObject r) 239.46 542.93 B 0.52 0.1 (eturns. If the object has been alr) 341.41 542.93 B 0.52 0.1 (eady been) 487.58 542.93 B 0.06 0.1 (r) 210.6 530.53 B 0.06 0.1 (eplaced, the handle for the pr) 214.47 530.53 B 0.06 0.1 (eviously-written r) 347.55 530.53 B 0.06 0.1 (eplacement object is written) 428.9 530.53 B 0.52 0.1 (to the str) 210.6 518.13 B 0.52 0.1 (eam.) 251.5 518.13 B 0.1 (4.) 197.5 497.73 S -0.04 0.1 (If the object is a Class, the corr) 210.6 497.73 B -0.04 0.1 (esponding ObjectStr) 347.24 497.73 B -0.04 0.1 (eamClass is written to the) 438.82 497.73 B 0.52 0.1 (str) 210.6 485.33 B 0.52 0.1 (eam, a handle is assigned for the class, and writeObject r) 222.17 485.33 B 0.52 0.1 (eturns.) 482.67 485.33 B 0.1 (5.) 197.5 464.93 S 0.52 0.1 (If the object is an ObjectStr) 210.6 464.93 B 0.52 0.1 (eamClass, a descriptor for the class is written to) 333.46 464.93 B 0.52 0.1 (the str) 210.6 452.53 B 0.52 0.1 (eam including its name, serialV) 239.46 452.53 B 0.52 0.1 (ersionUID, and the list of \336elds by) 383.03 452.53 B 0.52 0.1 (name and type. A handle is assigned for the descriptor) 210.6 440.13 B 0.52 0.1 (. The annotateClass) 461.71 440.13 B 0.52 0.1 (subclass method is called befor) 210.6 427.73 B 0.52 0.1 (e) 352.87 427.73 B 7 9.5 Q 1.14 (writeObject) 360.88 427.73 P 1 10 Q 0.52 0.1 ( r) 423.58 427.73 B 0.52 0.1 (eturns.) 430.57 427.73 B 0.1 (6.) 197.5 407.33 S 0.52 0.1 (If the object is a) 210.6 407.33 B 7 9.5 Q 1.14 (java.lang.String,) 286.14 407.33 P 1 10 Q 0.52 0.1 ( the string is written in Universal) 383.04 407.33 B 0.52 0.1 (T) 210.6 394.93 B 0.52 0.1 (ransfer Format \050UTF\051 format, a handle is assigned to the string, and) 215.93 394.93 B 0.52 0.1 (writeObject r) 210.6 382.53 B 0.52 0.1 (eturns.) 270.16 382.53 B 0.1 (7.) 197.5 362.13 S 0.52 0.1 (If the object is an array) 210.6 362.13 B 0.52 0.1 (,) 314.91 362.13 B 7 9.5 Q 1.14 (writeObject) 320.63 362.13 P 1 10 Q 0.52 0.1 ( is called r) 383.33 362.13 B 0.52 0.1 (ecursively to write the) 430.67 362.13 B 7 9.5 Q 0.88 (ObjectStreamClass) 210.6 349.73 P 1 10 Q 0.4 0.1 ( of the array) 307.5 349.73 B 0.4 0.1 (. The handle for the array is assigned. It is) 362.52 349.73 B 0.01 0.1 (followed by the length of the array) 210.6 337.33 B 0.01 0.1 (. Each element of the array is then written) 366.62 337.33 B 0.52 0.1 (to the str) 210.6 324.93 B 0.52 0.1 (eam, after which) 251.5 324.93 B 7 9.5 Q 1.14 (writeObject) 331.04 324.93 P 1 10 Q 0.52 0.1 ( r) 393.74 324.93 B 0.52 0.1 (eturns.) 400.73 324.93 B 0.1 (8.) 197.5 304.53 S 0.52 0.1 (Pr) 210.6 304.53 B 0.52 0.1 (ocess potential substitutions by the class of the object and/or by a) 220.61 304.53 B 0.52 0.1 (subclass of) 210.6 292.13 B 7 9.5 Q 1.14 (ObjectInputStream) 263.26 292.13 P 1 10 Q 0.52 0.1 (..) 360.16 292.13 B 6 F 0.1 (\245) 210.6 277.73 S 1 F 0.52 0.1 (If the object implements the) 219.24 277.73 B 7 9.5 Q 1.14 (Replaceable) 349.89 277.73 P 1 10 Q 0.52 0.1 ( interface, its) 412.59 277.73 B 7 9.5 Q 1.14 (writeReplace) 474.45 277.73 P 1 10 Q 0.51 0.1 (method is called and the method can optionally r) 219.24 265.33 B 0.51 0.1 (eturn a substitute object) 445.13 265.33 B 0.52 0.1 (to be serialized.) 219.24 252.93 B 6 F 0.1 (\245) 210.6 238.53 S 1 F 0.52 0.1 (Then if enabled by calling) 219.24 238.53 B 7 9.5 Q 1.14 (enableReplaceObject) 341.43 238.53 P 1 10 Q 0.52 0.1 ( method, the) 449.73 238.53 B 7 9.5 Q 1.14 (replaceObject) 219.24 226.13 P 1 10 Q 0.52 0.1 ( method is called to allow subclasses of) 293.34 226.13 B 7 9.5 Q 1.14 (ObjectOutputStream) 219.24 213.73 P 1 10 Q 0.52 0.1 ( to substitute for the object being serialized.) 321.84 213.73 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.16/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "16" 24 %%Page: "17" 25 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 54 108.7 B -0.58 0.09 (2) 88.71 108.7 B -0.58 0.09 (:) 93.3 108.7 B 0 F -0.58 0.09 (Object Output Classes) 97.4 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (17) 548.82 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (2) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (If the original object was r) 210.6 641.33 B 0.52 0.1 (eplaced by either one or both steps above, the) 330.76 641.33 B 0.02 0.1 (mapping fr) 210.6 628.93 B 0.02 0.1 (om the original object to the r) 261.36 628.93 B 0.02 0.1 (eplacement is r) 394.44 628.93 B 0.02 0.1 (ecor) 462.54 628.93 B 0.02 0.1 (ded for later use) 481.4 628.93 B 0.52 0.1 (in step 3, and steps 2 thr) 210.6 616.53 B 0.52 0.1 (ough 7 ar) 323.17 616.53 B 0.52 0.1 (e r) 366.75 616.53 B 0.52 0.1 (epeated on the new object. If the) 378.63 616.53 B 0.52 0.1 (r) 210.6 604.13 B 0.52 0.1 (eplacement object is not one of the types cover) 214.47 604.13 B 0.52 0.1 (ed by steps 2 thr) 428.18 604.13 B 0.52 0.1 (ough 7,) 504.34 604.13 B 0.52 0.1 (pr) 210.6 591.73 B 0.52 0.1 (ocessing r) 220.58 591.73 B 0.52 0.1 (esumes using the r) 265.83 591.73 B 0.52 0.1 (eplacement object at step 9.) 351.81 591.73 B 0.1 (9.) 197.5 571.33 S 0.06 0.1 (For r) 210.6 571.33 B 0.06 0.1 (egular objects, the) 232.4 571.33 B 7 9.5 Q 0.13 (ObjectStreamClass) 316.75 571.33 P 1 10 Q 0.06 0.1 (for the object\325s class is written) 419.48 571.33 B 0.4 0.1 (by r) 210.6 558.93 B 0.4 0.1 (ecursively calling writeObject. It will appear in the str) 228.76 558.93 B 0.4 0.1 (eam only the \336rst) 474.77 558.93 B 0.52 0.1 (time it is r) 210.6 546.53 B 0.52 0.1 (efer) 257.74 546.53 B 0.52 0.1 (enced. A handle is assigned for this object.) 274.82 546.53 B 0.1 (10.) 192.4 526.13 S 0.52 0.1 (The contents of the object is written to the str) 210.6 526.13 B 0.52 0.1 (eam.) 418.23 526.13 B 6 F 0.1 (\245) 210.6 511.73 S 1 F 0.08 0.1 (If the object is serializable, the highest serializable class is located. For that) 219.24 511.73 B 0.52 0.1 (class, and each derived class, that class\325s \336elds ar) 219.24 499.33 B 0.52 0.1 (e written. If the class) 444.61 499.33 B 0.11 0.1 (does not have a) 219.24 486.93 B 7 9.5 Q 0.23 (writeObject) 292.66 486.93 P 1 10 Q 0.11 0.1 ( method, the) 355.36 486.93 B 7 9.5 Q 0.23 (defaultWriteObject) 415.12 486.93 P 1 10 Q 0.11 0.1 ( method) 517.72 486.93 B 0.12 0.1 (is called to write the serializable \336elds to the str) 219.24 474.53 B 0.12 0.1 (eam. If the class does have) 435.03 474.53 B 0.52 0.1 (a) 219.24 462.13 B 7 9.5 Q 1.14 (writeObject) 227.46 462.13 P 1 10 Q 0.52 0.1 ( method, it is called. It may call) 290.16 462.13 B 7 9.5 Q 1.14 (defaultWriteObject) 437.85 462.13 P 1 10 Q 0.52 0.1 ( or) 540.45 462.13 B 7 9.5 Q 1.14 (putFields) 219.24 449.73 P 1 10 Q 0.52 0.1 ( and) 270.54 449.73 B 7 9.5 Q 1.14 (writeFields) 294.01 449.73 P 1 10 Q 0.52 0.1 ( to save the state of the object, and then it) 356.71 449.73 B 0.52 0.1 (can write other information to the str) 219.24 437.33 B 0.52 0.1 (eam.) 389.56 437.33 B 6 F 0.1 (\245) 210.6 422.93 S 1 F 0.52 0.1 (If the object is externalizable, the writeExternal method of the object is) 219.24 422.93 B 0.1 (called.) 219.24 410.53 S 6 F 0.1 (\245) 210.6 396.13 S 1 F 0.52 0.1 (If the object is neither serializable or externalizable, the) 219.24 396.13 B 7 F 1.2 (NotSerializableException) 219.24 383.73 P 1 F 0.52 0.1 ( is thr) 363.24 383.73 B 0.52 0.1 (own.) 389.98 383.73 B 0.52 0.1 (Exceptions may occur during the traversal or may occur in the underlying) 198 363.33 B 0.52 0.1 (str) 198 350.93 B 0.52 0.1 (eam. For any subclass of) 209.57 350.93 B 7 F 1.2 (IOException) 325.06 350.93 P 1 F 0.52 0.1 (, the exception is written to the) 391.06 350.93 B 0.52 0.1 (str) 198 338.53 B 0.52 0.1 (eam using the exception pr) 209.57 338.53 B 0.52 0.1 (otocol and the str) 333.72 338.53 B 0.52 0.1 (eam state is discar) 413.64 338.53 B 0.52 0.1 (ded. If a) 497.39 338.53 B 0.52 0.1 (second) 198 326.13 B 7 F 1.2 (IOException) 232.58 326.13 P 1 F 0.52 0.1 ( is thr) 298.58 326.13 B 0.52 0.1 (own while attempting to write the \336rst exception) 325.32 326.13 B 0.52 0.1 (into the str) 198 313.73 B 0.52 0.1 (eam, the str) 247.83 313.73 B 0.52 0.1 (eam is left in an unknown state and) 301.33 313.73 B 7 F 1.2 (StreamCorruptedException) 198 301.33 P 1 F 0.52 0.1 ( is thr) 342 301.33 B 0.52 0.1 (own fr) 368.74 301.33 B 0.52 0.1 (om) 399.08 301.33 B 7 9.5 Q 1.14 (writeObject) 416.69 301.33 P 1 10 Q 0.52 0.1 (. For other) 479.39 301.33 B 7 9.5 Q 0.4 (exceptions) 198 288.93 P 1 10 Q 0.18 0.1 (, the str) 255 288.93 B 0.18 0.1 (eam is aborted and left in an unknown and unusable state.) 288.9 288.93 B 0.52 0.1 (The) 198 268.53 B 7 9.5 Q 1.14 (defaultWriteObject) 218.16 268.53 P 1 10 Q 0.52 0.1 ( method implements the default serialization) 320.76 268.53 B 0.09 0.1 (mechanism for the curr) 198 256.13 B 0.09 0.1 (ent class. This method may be called only fr) 303.43 256.13 B 0.09 0.1 (om a class\325s) 501.8 256.13 B 7 9.5 Q 0.25 (writeObject) 198 243.73 P 1 10 Q 0.12 0.1 ( method. The method writes all of the nonstatic and nontransient) 260.7 243.73 B -0.03 0.1 (\336elds of the curr) 198 231.33 B -0.03 0.1 (ent class to the str) 272.08 231.33 B -0.03 0.1 (eam. If called fr) 352.54 231.33 B -0.03 0.1 (om outside the) 422.74 231.33 B 7 9.5 Q -0.05 (writeObject) 492.62 231.33 P 1 10 Q 0.52 0.1 (method, the) 198 218.93 B 7 F 1.2 (NotActiveException) 255.88 218.93 P 1 F 0.52 0.1 ( is thr) 363.88 218.93 B 0.52 0.1 (own.) 390.62 218.93 B 0.52 0.1 (The) 198 198.53 B 7 9.5 Q 1.14 (putFields) 218.16 198.53 P 1 10 Q 0.52 0.1 ( method r) 269.46 198.53 B 0.52 0.1 (eturns a) 314.44 198.53 B 7 9.5 Q 1.14 (PutField) 354.47 198.53 P 1 10 Q 0.52 0.1 ( object the caller uses to set the) 400.07 198.53 B 0.52 0.1 (values of the serializable \336elds in the str) 198 186.13 B 0.52 0.1 (eam. The \336elds may be set in any) 382.63 186.13 B 0.52 0.1 (or) 198 173.73 B 0.52 0.1 (der) 207.43 173.73 B 0.52 0.1 (. After all of the \336elds have been set,) 221.84 173.73 B 7 9.5 Q 1.14 (writeFields) 393.19 173.73 P 1 10 Q 0.52 0.1 ( must be called to) 455.89 173.73 B 0.52 0.1 (write the \336eld values in the canonical or) 198 161.33 B 0.52 0.1 (der to the str) 382.47 161.33 B 0.52 0.1 (eam. If a \336eld is not set,) 441.64 161.33 B 0.52 0.1 (the default value appr) 198 148.93 B 0.52 0.1 (opriate for its type will be written to the str) 299.73 148.93 B 0.52 0.1 (eam. This) 499.34 148.93 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.17/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "17" 25 %%Page: "18" 26 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (18) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Object Serialization Speci\336cation) 265.69 108.7 B 1 F -0.58 0.09 (\321) 414.6 108.7 B 0 F -0.58 0.09 (JDK Playgr) 423.69 108.7 B -0.58 0.09 (ound Alpha, July 3, 1997) 466.59 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (2) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (method may only called fr) 198 641.33 B 0.52 0.1 (om within the) 322.37 641.33 B 7 9.5 Q 1.14 (writeObject) 390.05 641.33 P 1 10 Q 0.52 0.1 ( method of a) 452.75 641.33 B 0.52 0.1 (serializable class. It may not be called mor) 198 628.93 B 0.52 0.1 (e than once or if) 391.91 628.93 B 7 9.5 Q 1.14 (defaultWriteObject) 198 616.53 P 1 10 Q 0.52 0.1 ( has been called. Only after) 300.6 616.53 B 7 9.5 Q 1.14 (writeFields) 428.75 616.53 P 1 10 Q 0.52 0.1 ( has been) 491.45 616.53 B 0.52 0.1 (called can other data may be written to the str) 198 604.13 B 0.52 0.1 (eam.) 409.85 604.13 B 0.52 0.1 (The) 198 583.73 B 7 9.5 Q 1.14 (reset) 218.16 583.73 P 1 10 Q 0.52 0.1 ( method r) 246.66 583.73 B 0.52 0.1 (esets the str) 291.64 583.73 B 0.52 0.1 (eam state to be the same as if it had just been) 345.44 583.73 B 0.52 0.1 (constr) 198 571.33 B 0.52 0.1 (ucted. Reset will discar) 225.69 571.33 B 0.52 0.1 (d the state of any objects alr) 331.58 571.33 B 0.52 0.1 (eady written to the) 460.14 571.33 B 0.52 0.1 (str) 198 558.93 B 0.52 0.1 (eam. The curr) 209.57 558.93 B 0.52 0.1 (ent point in the str) 272.96 558.93 B 0.52 0.1 (eam is marked as r) 358.24 558.93 B 0.52 0.1 (eset, so the) 445.14 558.93 B 0.52 0.1 (corr) 198 546.53 B 0.52 0.1 (esponding ObjectInputStr) 216.02 546.53 B 0.52 0.1 (eam will r) 333.15 546.53 B 0.52 0.1 (eset at the same point. Objects) 379.65 546.53 B 0.52 0.1 (pr) 198 534.13 B 0.52 0.1 (eviously written to the str) 207.98 534.13 B 0.52 0.1 (eam will not be r) 326.5 534.13 B 0.52 0.1 (emember) 404.6 534.13 B 0.52 0.1 (ed as alr) 446.63 534.13 B 0.52 0.1 (eady having) 485.39 534.13 B 0.52 0.1 (been written to the str) 198 521.73 B 0.52 0.1 (eam. They will be written to the str) 299.5 521.73 B 0.52 0.1 (eam again. This is) 461.24 521.73 B 0.39 0.1 (useful when the contents of an object or objects must be sent again. Reset may) 198 509.33 B 0.52 0.1 (not be called while objects ar) 198 496.93 B 0.52 0.1 (e being serialized. If called inappr) 330.72 496.93 B 0.52 0.1 (opriately) 486.31 496.93 B 0.52 0.1 (, an) 525.95 496.93 B 7 F 1.2 (IOException) 198 484.53 P 1 F 0.52 0.1 ( is thr) 264 484.53 B 0.52 0.1 (own.) 290.74 484.53 B 0.52 0.1 (The) 198 464.13 B 7 9.5 Q 1.14 (annotateClass) 218.16 464.13 P 1 10 Q 0.52 0.1 ( method is called while a Class is being serialized, and) 292.26 464.13 B -0 0.1 (after the class descriptor has been written to the str) 198 451.73 B -0 0.1 (eam. Subclasses may extend) 428.2 451.73 B 0.52 0.1 (this method and write other information to the str) 198 439.33 B 0.52 0.1 (eam about the class. This) 427.73 439.33 B 0.52 0.1 (information must be r) 198 426.93 B 0.52 0.1 (ead by the) 298.36 426.93 B 7 9.5 Q 1.14 (resolveClass) 349.38 426.93 P 1 10 Q 0.52 0.1 ( method in a corr) 417.78 426.93 B 0.52 0.1 (esponding) 497.18 426.93 B 7 9.5 Q 1.14 (ObjectInputStream) 198 414.53 P 1 10 Q 0.52 0.1 ( subclass.) 294.9 414.53 B 0.52 0.1 (An) 198 394.13 B 7 9.5 Q 1.14 (ObjectOutputStream) 214.92 394.13 P 1 10 Q 0.52 0.1 ( subclass can implement the) 317.52 394.13 B 7 9.5 Q 1.14 (replaceObject) 449.33 394.13 P 1 10 Q 0.52 0.1 (method to monitor or r) 198 381.73 B 0.52 0.1 (eplace objects during serialization. Replacing objects) 304.14 381.73 B 0.52 0.1 (must be enabled explicitly by calling) 198 369.33 B 7 9.5 Q 1.14 (enableReplaceObject) 369.05 369.33 P 1 10 Q 0.52 0.1 ( befor) 477.35 369.33 B 0.52 0.1 (e calling) 503.85 369.33 B 7 9.5 Q 1.14 (writeObject) 198 356.93 P 1 10 Q 0.52 0.1 ( with the \336rst object to be r) 260.7 356.93 B 0.52 0.1 (eplaced. Once enabled,) 385.07 356.93 B 7 9.5 Q 1.14 (replaceObject) 198 344.53 P 1 10 Q 0.52 0.1 ( is called for each object just prior to serializing the object for) 272.1 344.53 B 0.27 0.1 (the \336rst time. Note that the) 198 332.13 B 7 9.5 Q 0.6 (replaceObject) 324.22 332.13 P 1 10 Q 0.27 0.1 ( method is not called for objects of) 398.32 332.13 B 0.52 0.1 (the specially handled classes,) 198 319.73 B 7 9.5 Q 1.14 (Class) 334.74 319.73 P 1 10 Q 0.52 0.1 (,) 363.24 319.73 B 7 9.5 Q 1.14 (ObjectStreamClass) 368.96 319.73 P 1 10 Q 0.52 0.1 (,) 465.86 319.73 B 7 9.5 Q 1.14 (String) 471.58 319.73 P 1 10 Q 0.52 0.1 (, and) 505.78 319.73 B 0.31 0.1 (arrays. A subclass\325s implementation may r) 198 307.33 B 0.31 0.1 (eturn a substitute object that will be) 391.51 307.33 B 0.2 0.1 (serialized instead of the original. The substitute object must be serializable. All) 198 294.93 B 0.22 0.1 (r) 198 282.53 B 0.22 0.1 (efer) 201.87 282.53 B 0.22 0.1 (ences in the str) 218.95 282.53 B 0.22 0.1 (eam to the original object will be r) 286.65 282.53 B 0.22 0.1 (eplaced by the substitute) 441.97 282.53 B 0.52 0.1 (object.) 198 270.13 B 0.33 0.1 (When objects ar) 198 249.73 B 0.33 0.1 (e being r) 270.42 249.73 B 0.33 0.1 (eplaced, the subclass must ensur) 310.15 249.73 B 0.33 0.1 (e that the substituted) 458.72 249.73 B 0.27 0.1 (object is compatible with every \336eld wher) 198 237.33 B 0.27 0.1 (e the r) 388.5 237.33 B 0.27 0.1 (efer) 417.17 237.33 B 0.27 0.1 (ence will be stor) 434.25 237.33 B 0.27 0.1 (ed, or that) 508.23 237.33 B 0.52 0.1 (a complementary substitution will be made during deserialization. Objects,) 198 224.93 B 0.31 0.1 (whose type is not a subclass of the type of the \336eld or array element, will later) 198 212.53 B 0.52 0.1 (abort the deserialization by raising a) 198 200.13 B 7 9.5 Q 1.14 (ClassCastException) 368.63 200.13 P 1 10 Q 0.52 0.1 ( and the r) 471.23 200.13 B 0.52 0.1 (efer) 515.86 200.13 B 0.52 0.1 (ence) 532.94 200.13 B 0.52 0.1 (will not be stor) 198 187.73 B 0.52 0.1 (ed.) 267.32 187.73 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.18/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "18" 26 %%Page: "19" 27 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 54 108.7 B -0.58 0.09 (2) 88.71 108.7 B -0.58 0.09 (:) 93.3 108.7 B 0 F -0.58 0.09 (Object Output Classes) 97.4 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (19) 548.82 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (2) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (The) 198 641.33 B 7 9.5 Q 1.14 (enableReplaceObject) 218.16 641.33 P 1 10 Q 0.52 0.1 ( method can be called by tr) 326.46 641.33 B 0.52 0.1 (usted subclasses of) 454.63 641.33 B 7 9.5 Q 1.14 (ObjectOutputStream) 198 628.93 P 1 10 Q 0.52 0.1 ( to enable the substitution of one object for another) 300.6 628.93 B -0.14 0.1 (during serialization. Replacing objects is disabled until) 198 616.53 B 7 9.5 Q -0.3 (enableReplaceObject) 447.24 616.53 P 1 10 Q 0.05 0.1 (is called with a) 198 604.13 B 7 9.5 Q 0.1 (true) 268.53 604.13 P 1 10 Q 0.05 0.1 ( value. It may ther) 291.33 604.13 B 0.05 0.1 (eafter be disabled by setting it to) 373.96 604.13 B 7 9.5 Q 0.1 (false) 524.25 604.13 P 1 10 Q 0.05 0.1 (.) 552.75 604.13 B 0.52 0.1 (The pr) 198 591.73 B 0.52 0.1 (evious setting is r) 228.14 591.73 B 0.52 0.1 (eturned. The) 308.94 591.73 B 7 9.5 Q 1.14 (enableReplaceObject) 370.27 591.73 P 1 10 Q 0.52 0.1 ( method checks) 478.57 591.73 B 0.52 0.1 (that the str) 198 579.33 B 0.52 0.1 (eam r) 247.72 579.33 B 0.52 0.1 (equesting the r) 273.63 579.33 B 0.52 0.1 (eplacement can be tr) 341.81 579.33 B 0.52 0.1 (usted. T) 436.22 579.33 B 0.52 0.1 (o ensur) 472.18 579.33 B 0.52 0.1 (e that the) 506.01 579.33 B 0.52 0.1 (private state of objects is not unintentionally exposed, only tr) 198 566.93 B 0.52 0.1 (usted str) 478.46 566.93 B 0.52 0.1 (eam) 518.08 566.93 B 0.52 0.1 (subclasses may use) 198 554.53 B 7 9.5 Q 1.14 (replaceObject) 289.07 554.53 P 1 10 Q 0.52 0.1 (. T) 363.17 554.53 B 0.52 0.1 (r) 374.22 554.53 B 0.52 0.1 (usted classes ar) 378.19 554.53 B 0.52 0.1 (e those classes that) 448.89 554.53 B 0.52 0.1 (belong to a security pr) 198 542.13 B 0.52 0.1 (otection domain with permission to enable Serializable) 301.13 542.13 B 0.1 (substitution.) 198 529.73 S 0.52 0.1 (If the subclass of) 198 509.33 B 7 9.5 Q 1.14 (ObjectOutputStream) 277.97 509.33 P 1 10 Q 0.52 0.1 ( is not consider) 380.57 509.33 B 0.52 0.1 (ed part of the system) 450.46 509.33 B 0.01 0.1 (domain, the following line has to be added to the security policy \336le to pr) 198 496.93 B 0.01 0.1 (ovide) 529.86 496.93 B 0.52 0.1 (a subclass of) 198 484.53 B 7 9.5 Q 1.14 (ObjectOutputStream) 258.88 484.53 P 1 10 Q 0.52 0.1 (permission to call) 368.32 484.53 B 7 9.5 Q (enableReplaceObject) 198 472.13 T 1 10 Q 0.1 (.) 306.3 472.13 S 7 9.5 Q 1.14 (permission SerializablePermission \322enableSubstitution\323) 207 451.73 P 1.14 ([,) 234 439.33 P 1.14 ( CodeBase \322URL\323] [, SignedBy \322signer_name\323];) 245.4 439.33 P 7 10 Q -0.12 (AccessControlException) 198 418.93 P 1 F -0.05 0.1 ( is thr) 330 418.93 B -0.05 0.1 (own if the pr) 355.59 418.93 B -0.05 0.1 (otection domain of the subclass) 413.74 418.93 B 0.49 0.1 (of) 198 406.53 B 7 9.5 Q 1.06 (ObjectInputStream) 210.07 406.53 P 1 10 Q 0.49 0.1 (does not have permission to \322enableSubstitution\323 by) 313.74 406.53 B 0.52 0.1 (calling) 198 394.13 B 7 9.5 Q 1.14 (enableReplaceObject) 231.37 394.13 P 1 10 Q 0.52 0.1 (. See \322The Java Security Ar) 339.67 394.13 B 0.52 0.1 (chitectur) 463.26 394.13 B 0.52 0.1 (e\050JDK1.2\051\323) 502.88 394.13 B 0.52 0.1 (document for further details on the security model.) 198 381.73 B 0.34 0.1 (The) 198 361.33 B 7 9.5 Q 0.74 (writeStreamHeader) 217.98 361.33 P 1 10 Q 0.34 0.1 ( method writes the magic number and version to the) 314.88 361.33 B 0.52 0.1 (str) 198 348.93 B 0.52 0.1 (eam. This information must be r) 209.57 348.93 B 0.52 0.1 (ead by the) 357.19 348.93 B 7 9.5 Q 1.14 (readStreamHeader) 408.21 348.93 P 1 10 Q 0.52 0.1 ( method of) 499.41 348.93 B 7 9.5 Q 1.14 (ObjectInputStream) 198 336.53 P 1 10 Q 0.52 0.1 (. Subclasses may need to implement this method to) 294.9 336.53 B 0.52 0.1 (identify the str) 198 324.13 B 0.52 0.1 (eam\325s unique format.) 265.47 324.13 B 0.47 0.1 (The) 198 303.73 B 7 9.5 Q 1.03 (flush) 218.11 303.73 P 1 10 Q 0.47 0.1 ( method is used to empty any buf) 246.61 303.73 B 0.47 0.1 (fers being held by the str) 401.47 303.73 B 0.47 0.1 (eam and) 515.71 303.73 B 0.17 0.1 (to forwar) 198 291.33 B 0.17 0.1 (d the \337ush to the underlying str) 240.14 291.33 B 0.17 0.1 (eam. The) 384.81 291.33 B 7 9.5 Q 0.37 (drain) 428.91 291.33 P 1 10 Q 0.17 0.1 ( method may be used) 457.41 291.33 B 0.52 0.1 (by subclassers to empty only the) 198 278.93 B 7 9.5 Q 1.14 (ObjectOutputStream) 350.91 278.93 P 1 10 Q 0.52 0.1 (\325s buf) 453.51 278.93 B 0.52 0.1 (fers without) 478.86 278.93 B 0.52 0.1 (for) 198 266.53 B 0.52 0.1 (cing the underlying str) 210.86 266.53 B 0.52 0.1 (eam to be \337ushed.) 315.55 266.53 B 0.52 0.1 (All of the write methods for primitive types encode their values using a) 198 246.13 B 0.52 0.1 (DataOutputStr) 198 233.73 B 0.52 0.1 (eam to put them in the standar) 265.03 233.73 B 0.52 0.1 (d str) 407.29 233.73 B 0.52 0.1 (eam format. The bytes ar) 428.19 233.73 B 0.52 0.1 (e) 542.51 233.73 B 0.52 0.1 (buf) 198 221.33 B 0.52 0.1 (fer) 213.01 221.33 B 0.52 0.1 (ed into block data r) 225.2 221.33 B 0.52 0.1 (ecor) 314.67 221.33 B 0.52 0.1 (ds so they can be distinguished fr) 333.53 221.33 B 0.52 0.1 (om the) 487.92 221.33 B 0.52 0.1 (encoding of objects. This buf) 198 208.93 B 0.52 0.1 (fering allows primitive data to be skipped if) 329.05 208.93 B 0.52 0.1 (necessary for class versioning. It also allows the str) 198 196.53 B 0.52 0.1 (eam to be parsed without) 431.81 196.53 B 0.52 0.1 (invoking class-speci\336c methods.) 198 184.13 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.19/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "19" 27 %%Page: "20" 28 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (20) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Object Serialization Speci\336cation) 265.69 108.7 B 1 F -0.58 0.09 (\321) 414.6 108.7 B 0 F -0.58 0.09 (JDK Playgr) 423.69 108.7 B -0.58 0.09 (ound Alpha, July 3, 1997) 466.59 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (2) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 15 Q 0 X 0 0 0 1 0 0 0 K (2.2) 67.47 638 T -0.94 (The ObjectOutputStr) 97.27 638 P -0.94 (eam.PutField Class) 227.04 638 P 54 782/G5.4581 FmPA 1 10 Q 0.03 0.1 (Class) 198 616.33 B 7 9.5 Q 0.06 (PutField) 224.61 616.33 P 1 10 Q 0.03 0.1 ( pr) 270.21 616.33 B 0.03 0.1 (ovides the API for setting values of the serializable \336elds for) 282.82 616.33 B 0.31 0.1 (a class when the class does not use default serialization. Each method puts the) 198 603.93 B 0.52 0.1 (speci\336ed named value into the str) 198 591.53 B 0.52 0.1 (eam. I/O exceptions will be thr) 353.26 591.53 B 0.52 0.1 (own if the) 496.99 591.53 B 0.52 0.1 (underlying str) 198 579.13 B 0.52 0.1 (eam thr) 263.15 579.13 B 0.52 0.1 (ows an exception. An IllegalAr) 298.34 579.13 B 0.52 0.1 (gumentException is) 440.02 579.13 B 0.04 0.1 (thr) 198 566.73 B 0.04 0.1 (own if the name does not match the name of a \336eld declar) 211.15 566.73 B 0.04 0.1 (ed for this object\325s) 472.92 566.73 B 0.32 0.1 (ObjectStr) 198 554.33 B 0.32 0.1 (eamClass or if the type of the value does not match the declar) 239.4 554.33 B 0.32 0.1 (ed type) 521.05 554.33 B 0.52 0.1 (of the serializable \336eld.) 198 541.93 B 0 15 Q (2.3) 67.47 508.2 T -0.94 (The writeObject Method) 97.27 508.2 P 54 652/G5.861 FmPA 1 10 Q 0.52 0.1 (For serializable objects, the) 198 486.53 B 7 9.5 Q 1.14 (writeObject) 324.42 486.53 P 1 10 Q 0.52 0.1 ( method allows a class to contr) 387.12 486.53 B 0.52 0.1 (ol the) 528.77 486.53 B 0.52 0.1 (serialization of its own \336elds. Her) 198 474.13 B 0.52 0.1 (e is its signatur) 353.06 474.13 B 0.52 0.1 (e:) 422.76 474.13 B 7 9 Q (private void writeObject\050ObjectOutputStream stream\051) 218.16 458.4 T (throws IOException;) 238.32 447.4 T 1 10 Q -0.06 0.1 (Each subclass of a serializable object may de\336ne its own) 198 427.73 B 7 9.5 Q -0.13 (writeObject) 452.65 427.73 P 1 10 Q -0.06 0.1 ( method.) 515.35 427.73 B 0.13 0.1 (If a class does not implement the method, the default serialization pr) 198 415.33 B 0.13 0.1 (ovided by) 509.62 415.33 B 0.52 0.1 (defaultW) 198 402.93 B 0.52 0.1 (riteObject will be used. When implemented, the class is only) 239.49 402.93 B 0.52 0.1 (r) 198 390.53 B 0.52 0.1 (esponsible for having its own \336elds, not those of its supertypes or subtypes.) 201.87 390.53 B 0.05 0.1 (The class\325s) 198 370.13 B 7 9.5 Q 0.11 (writeObject) 248.89 370.13 P 1 10 Q 0.05 0.1 ( method, if implemented, is r) 311.59 370.13 B 0.05 0.1 (esponsible for saving the) 442.71 370.13 B 0.52 0.1 (state of the class. The) 198 357.73 B 7 9.5 Q 1.14 (defaultWriteObject) 298.78 357.73 P 1 10 Q 0.52 0.1 ( method should be called befor) 401.38 357.73 B 0.52 0.1 (e) 543.68 357.73 B 0.52 0.1 (writing any optional data that will be needed by the corr) 198 345.33 B 0.52 0.1 (esponding) 458.95 345.33 B 7 9.5 Q 0.21 (readObject) 198 332.93 P 1 10 Q 0.1 0.1 ( method to r) 255 332.93 B 0.1 0.1 (estor) 310.75 332.93 B 0.1 0.1 (e the state of the object. The r) 332.77 332.93 B 0.1 0.1 (esponsibility for the) 464.85 332.93 B 0.52 0.1 (format, str) 198 320.53 B 0.52 0.1 (uctur) 245.82 320.53 B 0.52 0.1 (e, and versioning of the optional data lies completely with the) 269.85 320.53 B 0.1 (class.) 198 308.13 S 0 15 Q (2.4) 67.47 274.4 T -0.94 (The writeExternal Method) 97.27 274.4 P 54 418/G5.3146 FmPA 1 10 Q 0.52 0.1 (Objects implementing) 198 252.73 B 7 9.5 Q 1.14 (java.io.Externalizable) 301.04 252.73 P 1 10 Q 0.52 0.1 ( must implement the) 426.44 252.73 B 7 9.5 Q 1.14 (writeExternal) 198 240.33 P 1 10 Q 0.52 0.1 ( method to save the entir) 272.1 240.33 B 0.52 0.1 (e state of the object. It must) 386.79 240.33 B 0.52 0.1 (coor) 198 227.93 B 0.52 0.1 (dinate with its super) 217.53 227.93 B 0.52 0.1 (classes to save their state. All of the methods of) 312.16 227.93 B 7 9.5 Q 1.14 (ObjectOutput) 198 215.53 P 1 10 Q 0.52 0.1 ( ar) 266.4 215.53 B 0.52 0.1 (e available to save the object\325s primitive typed \336elds and) 278.49 215.53 B 0.52 0.1 (object \336elds.) 198 203.13 B 7 9 Q (public void writeExternal\050ObjectOutput stream\051) 218.16 187.4 T (throws IOException;) 238.32 176.4 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.20/DEST FmPD2 [/Dest/L.outputdoc/DEST FmPD2 97 792/M5.9.11869.Head1.23.Method.writeObject FmPA 97 792/I5.1.2615 FmPA 341 326/M5.9.42299.Head1.24.Exceptions.Thrown.by.ObjectOutputStream.Methods FmPA 341 326/I5.1.4828 FmPA 324 637/M5.8.newlink.writeObject FmPA 97 428/M5.9.21768.Head1.24.The.writeExternalMethod FmPA 97 428/I5.1.3173 FmPA 97 792/M5.9.21496.Head1.25.The.ObjectInputStream.class FmPA 97 792/I5.1.4579 FmPA 97 792/M5.9.10443.Head1.26.The.ObjectPutFields.Interface FmPA 97 792/I5.1.4580 FmPA 97 662/M5.9.28596.Head1.23.The.writeObject.Method FmPA 97 662/I5.1.4607 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "20" 28 %%Page: "21" 29 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (21) 548.82 108.7 B 0 0 0 1 0 0 0 K 198 500.18 558 500.18 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 540.76 521.07 558.36 524.92 R 0 X 1 1 0 0 0 0 1 K V 540.76 514.65 558.36 518.5 R V 540.76 508.42 558.36 512.27 R V 540.76 518.61 558.36 521.29 R 7 X V 540.76 512.4 558.36 514.87 R V 0 0 0 1 0 0 0 K 54 522.64 558 589.39 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 72 612 720 C 0 20 Q 0 X 0 0 0 1 0 0 0 K -2.5 (Object Input Classes) 198 509.31 P 54 653/G6.60 FmPA 1 1 0 0 0 0 1 K 0 24 Q 1 1 0 0 0 0 1 K -3.12 (3) 525.14 508.64 S 0 0 0 1 0 0 0 K 0 13 Q 0 0 0 1 0 0 0 K 0.13 (T) 198 457.68 S 0.13 (opics:) 204.63 457.68 S 6 14 Q 0.14 (\245) 198 438.68 S 1 10 Q 0.52 0.1 (The ObjectInputStr) 210.6 438.68 B 0.52 0.1 (eam Class) 297.15 438.68 B 6 14 Q 0.14 (\245) 198 420.28 S 1 10 Q 0.52 0.1 (The ObjectInputStr) 210.6 420.28 B 0.52 0.1 (eam.GetField Class) 297.15 420.28 B 6 14 Q 0.14 (\245) 198 401.88 S 1 10 Q 0.52 0.1 (The ObjectInputV) 210.6 401.88 B 0.52 0.1 (alidation Interface) 290.97 401.88 B 6 14 Q 0.14 (\245) 198 383.48 S 1 10 Q 0.52 0.1 (The) 210.6 383.48 B 0.5 (r) 230.76 383.48 P 0.5 (eadObject) 234.53 383.48 P 0.52 0.1 ( Method) 278.65 383.48 B 6 14 Q 0.14 (\245) 198 365.08 S 1 10 Q 0.52 0.1 (The r) 210.6 365.08 B 0.52 0.1 (eadExternal Method) 234.63 365.08 B 0 15 Q (3.1) 67.47 331.34 T -0.94 (The ObjectInputStr) 97.27 331.34 P -0.94 (eam Class) 215.37 331.34 P 54 475/G6.961 FmPA 1 10 Q 0.12 0.1 (Class) 198 309.68 B 7 9.5 Q 0.26 (ObjectInputStream) 224.7 309.68 P 1 10 Q 0.12 0.1 ( implements object deserialization. It maintains the) 321.6 309.68 B 0 0.1 (state of the str) 198 297.28 B 0 0.1 (eam including the set of objects alr) 261.59 297.28 B 0 0.1 (eady deserialized. Its methods) 418.04 297.28 B 0.52 0.1 (allow primitive types and objects to be r) 198 284.88 B 0.52 0.1 (ead fr) 382.74 284.88 B 0.52 0.1 (om a str) 409.36 284.88 B 0.52 0.1 (eam written by) 446.76 284.88 B 0.1 0.1 (ObjectOutputStr) 198 272.48 B 0.1 0.1 (eam. It manages r) 272.45 272.48 B 0.1 0.1 (estoration of the object and the objects that it) 352.71 272.48 B 0.52 0.1 (r) 198 260.08 B 0.52 0.1 (efers to fr) 201.87 260.08 B 0.52 0.1 (om the str) 245.93 260.08 B 0.52 0.1 (eam.) 292.4 260.08 B 7 9 Q (package java.io;) 198 244.34 T (public class ObjectInputStream) 198 222.34 T (extends InputStream) 218.16 211.34 T (implements ObjectInput, ObjectStreamConstants) 218.16 200.34 T ({) 198 189.34 T (public ObjectInputStream\050InputStream in\051) 218.16 178.34 T (throws StreamCorruptedException, IOException;) 238.32 167.34 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.21/DEST FmPD2 [/Dest/F.inputdoc/DEST FmPD2 97 485/M6.9.17548.Head1.31.The.InputObject.Interface FmPA 97 485/I6.1.2979 FmPA 97 485/M6.9.30931.Head1.32.The.InputObjectStream.Class FmPA 97 485/I6.1.2986 FmPA [/Rect[211 415 385 430]/Border[0 0 0]/Page 36/View[/XYZ null 97 556 FmDC exch pop null]/LNK FmPD [/Rect[211 434 343 449]/Border[0 0 0]/Page 29/View[/XYZ null 97 485 FmDC exch pop null]/LNK FmPD [/Rect[211 397 374 412]/Border[0 0 0]/Page 37/View[/XYZ null 97 712 FmDC exch pop null]/LNK FmPD [/Rect[211 378 317 393]/Border[0 0 0]/Page 37/View[/XYZ null 97 526 FmDC exch pop null]/LNK FmPD [/Rect[211 360 327 375]/Border[0 0 0]/Page 38/View[/XYZ null 97 514 FmDC exch pop null]/LNK FmPD [/Title(A)/Rect[45 488 567 598]/ARTICLE FmPD2 [/Title(A)/Rect[45 135 567 475]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "21" 29 %%Page: "22" 30 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (22) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Object Serialization Speci\336cation) 265.69 108.7 B 1 F -0.58 0.09 (\321) 414.6 108.7 B 0 F -0.58 0.09 (JDK Playgr) 423.69 108.7 B -0.58 0.09 (ound Alpha, July 3, 1997) 466.59 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (3) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 7 9 Q 0 X 0 0 0 1 0 0 0 K (public final Object readObject\050\051) 218.16 642 T (throws OptionalDataException, ClassNotFoundException,) 238.32 631 T (IOException;) 258.48 620 T (public final void defaultReadObject\050\051) 218.16 598 T (throws IOException, ClassNotFoundException,) 238.32 587 T (NotActiveException;) 258.48 576 T (public GetField readFields\050\051) 218.16 554 T (throws IOException;) 238.32 543 T (public synchronized void registerValidation\050) 218.16 521 T (ObjectInputValidation obj, int prio\051) 238.32 510 T (throws NotActiveException, InvalidObjectException;) 238.32 499 T (protected Class resolveClass\050ObjectStreamClass v\051) 218.16 477 T (throws IOException, ClassNotFoundException;) 238.32 466 T (protected Object resolveObject\050Object obj\051) 218.16 444 T (throws IOException;) 239.76 433 T (protected final boolean enableResolveObject\050boolean enable\051) 218.16 411 T (throws SecurityException;) 238.32 400 T (protected void readStreamHeader\050\051) 218.16 378 T (throws IOException, StreamCorruptedException;) 238.32 367 T (public int read\050\051 throws IOException;) 218.16 345 T (public int read\050byte[] data, int offset, int length\051) 218.16 323 T (throws IOException) 238.32 312 T (public int available\050\051 throws IOException;) 218.16 290 T (public void close\050\051 throws IOException;) 218.16 268 T (public boolean readBoolean\050\051 throws IOException;) 218.16 246 T (public byte readByte\050\051 throws IOException;) 218.16 224 T (public int readUnsignedByte\050\051 throws IOException;) 218.16 202 T (public short readShort\050\051 throws IOException;) 218.16 180 T (public int readUnsignedShort\050\051 throws IOException;) 218.16 158 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.22/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "22" 30 %%Page: "23" 31 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 54 108.7 B -0.58 0.09 (3) 88.71 108.7 B -0.58 0.09 (:) 93.3 108.7 B 0 F -0.58 0.09 (Object Input Classes) 97.4 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (23) 548.82 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (3) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 7 9 Q 0 X 0 0 0 1 0 0 0 K (public char readChar\050\051 throws IOException;) 218.16 642 T (public int readInt\050\051 throws IOException;) 218.16 620 T (public long readLong\050\051 throws IOException;) 218.16 598 T (public float readFloat\050\051 throws IOException;) 218.16 576 T (public double readDouble\050\051 throws IOException;) 218.16 554 T (public void readFully\050byte[] data\051 throws IOException;) 218.16 532 T (public void readFully\050byte[] data, int offset, int size\051) 218.16 510 T (throws IOException;) 238.32 499 T (public int skipBytes\050int len\051 throws IOException;) 218.16 477 T (public String readLine\050\051 throws IOException;) 218.16 455 T (public String readUTF\050\051 throws IOException;) 218.16 433 T (// Inner class to provide access to serializable fields.) 218.16 411 T (public class GetField) 218.16 400 T ({) 218.16 389 T (public getObjectStreamClass\050\051;) 238.32 378 T (public boolean defaulted\050String name\051) 238.32 356 T (throws IOException, IllegalArgumentException;) 258.48 345 T (public char get\050String name, char defalt\051) 238.32 323 T (throws IOException, IllegalArgumentException;) 258.48 312 T (public boolean get\050String name, boolean defalt\051) 238.32 290 T (throws IOException, IllegalArgumentException;) 258.48 279 T (public byte get\050String name, byte defalt\051) 238.32 257 T (throws IOException, IllegalArgumentException;) 258.48 246 T (public short get\050String name, short defalt\051) 238.32 224 T (throws IOException, IllegalArgumentException;) 258.48 213 T (public int get\050String name, int defalt\051) 238.32 191 T (throws IOException, IllegalArgumentException;) 258.48 180 T (public long get\050String name, long defalt\051) 238.32 158 T (throws IOException, IllegalArgumentException;) 258.48 147 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.23/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "23" 31 %%Page: "24" 32 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (24) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Object Serialization Speci\336cation) 265.69 108.7 B 1 F -0.58 0.09 (\321) 414.6 108.7 B 0 F -0.58 0.09 (JDK Playgr) 423.69 108.7 B -0.58 0.09 (ound Alpha, July 3, 1997) 466.59 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (3) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 7 9 Q 0 X 0 0 0 1 0 0 0 K (public float get\050String name, float defalt\051) 238.32 631 T (throws IOException, IllegalArgumentException;) 258.48 620 T (public double get\050String name, double defalt\051) 238.32 598 T (throws IOException, IllegalArgumentException;) 258.48 587 T (public Object get\050String name, Object defalt\051) 238.32 565 T (throws IOException, IllegalArgumentException;) 258.48 554 T (}) 218.16 543 T (}) 198 532 T 1 10 Q -0.16 0.1 (The) 198 512.33 B 7 9.5 Q -0.34 (ObjectInputStream) 217.48 512.33 P 1 10 Q -0.16 0.1 ( constr) 314.38 512.33 B -0.16 0.1 (uctor r) 344.52 512.33 B -0.16 0.1 (equir) 374.47 512.33 B -0.16 0.1 (es an InputStr) 398.07 512.33 B -0.16 0.1 (eam. The constr) 460.78 512.33 B -0.16 0.1 (uctor) 531.92 512.33 B 0.52 0.1 (calls) 198 499.93 B 7 9.5 Q 1.14 (readStreamHeader) 221.12 499.93 P 1 10 Q 0.52 0.1 ( to r) 312.32 499.93 B 0.52 0.1 (ead and veri\336es the header and version written) 331.35 499.93 B 0.52 0.1 (by the corr) 198 487.53 B 0.52 0.1 (esponding) 247.72 487.53 B 7 9.5 Q 1.14 (ObjectOutputStream) 298.46 487.53 P 1 10 Q 0.52 0.1 (.) 401.06 487.53 B 7 9.5 Q 1.14 (writeStreamHeader) 403.66 487.53 P 1 10 Q 0.52 0.1 ( method.) 500.56 487.53 B 0.52 0.1 (The) 198 467.13 B 7 9.5 Q 1.14 (readObject) 218.16 467.13 P 1 10 Q 0.52 0.1 ( method is used to deserialize an object fr) 275.16 467.13 B 0.52 0.1 (om the str) 466.07 467.13 B 0.52 0.1 (eam. It) 512.54 467.13 B 0.52 0.1 (r) 198 454.73 B 0.52 0.1 (eads fr) 201.87 454.73 B 0.52 0.1 (om the str) 232.83 454.73 B 0.52 0.1 (eam to r) 279.3 454.73 B 0.52 0.1 (econstr) 317.25 454.73 B 0.52 0.1 (uct an object.) 349.83 454.73 B 0.1 (1.) 197.5 434.33 S 0.52 0.1 (If a block data r) 210.6 434.33 B 0.52 0.1 (ecor) 283.12 434.33 B 0.52 0.1 (d occurs in the str) 301.98 434.33 B 0.52 0.1 (eam, thr) 384.5 434.33 B 0.52 0.1 (ow a BlockDataException) 422.29 434.33 B 0.52 0.1 (with the number of available bytes.) 210.6 421.93 B 0.1 (2.) 197.5 401.53 S 0.52 0.1 (If the object in the str) 210.6 401.53 B 0.52 0.1 (eam is null, r) 308.36 401.53 B 0.52 0.1 (eturn null.) 368.53 401.53 B 0.1 (3.) 197.5 381.13 S 0.52 0.1 (If the object in the str) 210.6 381.13 B 0.52 0.1 (eam is a handle to a pr) 308.36 381.13 B 0.52 0.1 (evious object, r) 413.5 381.13 B 0.52 0.1 (eturn the object.) 482.31 381.13 B 0.1 (4.) 197.5 360.73 S 0.52 0.1 (If the object in the str) 210.6 360.73 B 0.52 0.1 (eam is a String, r) 308.36 360.73 B 0.52 0.1 (ead its UTF encoding, add it and its) 386.03 360.73 B 0.52 0.1 (handle to the set of known objects, and r) 210.6 348.33 B 0.52 0.1 (eturn the String.) 397.24 348.33 B 0.1 (5.) 197.5 327.93 S 0.52 0.1 (If the object in the str) 210.6 327.93 B 0.52 0.1 (eam is a Class, r) 308.36 327.93 B 0.52 0.1 (ead its ObjectStr) 382.66 327.93 B 0.52 0.1 (eamClass descriptor) 457.21 327.93 B 0.52 0.1 (,) 548.6 327.93 B 0.52 0.1 (add it and its handle to the set of known objects, and r) 210.6 315.53 B 0.52 0.1 (eturn the) 461.55 315.53 B 0.52 0.1 (corr) 210.6 303.13 B 0.52 0.1 (esponding Class object.) 228.62 303.13 B 0.1 (6.) 197.5 282.73 S 0.52 0.1 (If the object in the str) 210.6 282.73 B 0.52 0.1 (eam is an ObjectStr) 308.36 282.73 B 0.52 0.1 (eamClass, r) 396.41 282.73 B 0.52 0.1 (ead its name,) 448.9 282.73 B 0.52 0.1 (serialV) 210.6 270.33 B 0.52 0.1 (ersionUID, and \336elds. Add it and its handle to the set of known) 241.21 270.33 B 0.38 0.1 (objects. Call the r) 210.6 257.93 B 0.38 0.1 (esolveClass method on the str) 289.24 257.93 B 0.38 0.1 (eam to get the local class for) 425.65 257.93 B 0.48 0.1 (this descriptor) 210.6 245.53 B 0.48 0.1 (, and thr) 275.69 245.53 B 0.48 0.1 (ow an exception if the class cannot be found. Return) 314.82 245.53 B 0.52 0.1 (the ObjectStr) 210.6 233.13 B 0.52 0.1 (eamClass object.) 269.29 233.13 B 0.1 (7.) 197.5 212.73 S 0.52 0.1 (If the object in the str) 210.6 212.73 B 0.52 0.1 (eam is an array) 308.36 212.73 B 0.52 0.1 (, r) 377.86 212.73 B 0.52 0.1 (ead its ObjectStr) 387.45 212.73 B 0.52 0.1 (eamClass and the) 462 212.73 B 0.24 0.1 (length of the array) 210.6 200.33 B 0.24 0.1 (. Allocate the array) 293.89 200.33 B 0.24 0.1 (, and add it and its handle in the set of) 379.38 200.33 B 0.52 0.1 (known objects. Read each element using the appr) 210.6 187.93 B 0.52 0.1 (opriate method for its) 437.04 187.93 B 0.52 0.1 (type, assign it to the array) 210.6 175.53 B 0.52 0.1 (, and r) 329.5 175.53 B 0.52 0.1 (eturn the array) 359.44 175.53 B 0.52 0.1 (.) 427.05 175.53 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.24/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "24" 32 %%Page: "25" 33 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 54 108.7 B -0.58 0.09 (3) 88.71 108.7 B -0.58 0.09 (:) 93.3 108.7 B 0 F -0.58 0.09 (Object Input Classes) 97.4 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (25) 548.82 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (3) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.1 (8.) 197.5 641.33 S 0.52 0.1 (For all other objects, the ObjectStr) 210.6 641.33 B 0.52 0.1 (eamClass of the object is r) 365.3 641.33 B 0.52 0.1 (ead fr) 484.6 641.33 B 0.52 0.1 (om the) 511.22 641.33 B 0.52 0.1 (str) 210.6 628.93 B 0.52 0.1 (eam. The local class for that ObjectStr) 222.17 628.93 B 0.52 0.1 (eamClass is r) 394.18 628.93 B 0.52 0.1 (etrieved. The class) 454.54 628.93 B 0.52 0.1 (must be serializable or externalizable.) 210.6 616.53 B 0.1 (9.) 197.5 596.13 S 0.52 0.1 (An instance of the class is allocated. The instance and its handle ar) 210.6 596.13 B 0.52 0.1 (e added) 516.22 596.13 B 0.52 0.1 (to the set of known objects. The contents r) 210.6 583.73 B 0.52 0.1 (estor) 403.89 583.73 B 0.52 0.1 (ed appr) 425.91 583.73 B 0.52 0.1 (opriately:) 461.32 583.73 B 6 F 0.1 (\245) 210.6 569.33 S 1 F 0.08 0.1 (For serializable objects, the no-ar) 219.24 569.33 B 0.08 0.1 (g constr) 367.77 569.33 B 0.08 0.1 (uctor for the \336rst non-serializable) 403.8 569.33 B 0.52 0.1 (supertype is r) 219.24 556.93 B 0.52 0.1 (un. For serializable classes, the \336elds ar) 282.34 556.93 B 0.52 0.1 (e initialized to the) 463.02 556.93 B 0.28 0.1 (default value appr) 219.24 544.53 B 0.28 0.1 (opriate for its type. Then each class\325s \336elds ar) 303.21 544.53 B 0.28 0.1 (e r) 510.25 544.53 B 0.28 0.1 (estor) 521.9 544.53 B 0.28 0.1 (ed) 543.92 544.53 B 0.52 0.1 (by calling class-speci\336c) 219.24 532.13 B 7 9.5 Q 1.14 (readObject) 328.48 532.13 P 1 10 Q 0.52 0.1 ( methods, or if these ar) 385.48 532.13 B 0.52 0.1 (e not de\336ned,) 491.31 532.13 B 0.52 0.1 (by calling the) 219.24 519.73 B 7 9.5 Q 1.14 (defaultReadObject) 284.31 519.73 P 1 10 Q 0.52 0.1 ( method. Note that \336eld initializers) 381.21 519.73 B 0.52 0.1 (and constr) 219.24 507.33 B 0.52 0.1 (uctors ar) 267.28 507.33 B 0.52 0.1 (e not executed for serializable classes during) 307.35 507.33 B 0.52 0.1 (deserialization. In the normal case, the version of the class that wr) 219.24 494.93 B 0.52 0.1 (ote the) 522.55 494.93 B 0.43 0.1 (str) 219.24 482.53 B 0.43 0.1 (eam will be the same as the class r) 230.81 482.53 B 0.43 0.1 (eading the str) 388.15 482.53 B 0.43 0.1 (eam. In this case, all of) 450.73 482.53 B 0.19 0.1 (the supertypes of the object in the str) 219.24 470.13 B 0.19 0.1 (eam will match the supertypes in the) 387.08 470.13 B 0.03 0.1 (curr) 219.24 457.73 B 0.03 0.1 (ently-loaded class. If the version of the class that wr) 237.83 457.73 B 0.03 0.1 (ote the str) 471.79 457.73 B 0.03 0.1 (eam had) 516.59 457.73 B 0.19 0.1 (dif) 219.24 445.33 B 0.19 0.1 (fer) 231.71 445.33 B 0.19 0.1 (ent supertypes than the loaded class, the ObjectInputStr) 243.9 445.33 B 0.19 0.1 (eam must be) 497.43 445.33 B 0.52 0.1 (mor) 219.24 432.93 B 0.52 0.1 (e car) 237.6 432.93 B 0.52 0.1 (eful about r) 259.12 432.93 B 0.52 0.1 (estoring or initializing the state of the dif) 312.47 432.93 B 0.52 0.1 (fering) 500.68 432.93 B -0.02 0.1 (classes. It must step thr) 219.24 420.53 B -0.02 0.1 (ough the classes, matching the available data in the) 324.14 420.53 B 0.52 0.1 (str) 219.24 408.13 B 0.52 0.1 (eam with the classes of the object being r) 230.81 408.13 B 0.52 0.1 (estor) 418.71 408.13 B 0.52 0.1 (ed. Data for classes that) 440.73 408.13 B -0 0.1 (occur in the str) 219.24 395.73 B -0 0.1 (eam, but do not occur in the object, is discar) 286.51 395.73 B -0 0.1 (ded. For classes) 484.48 395.73 B 0.52 0.1 (that occur in the object, but not in the str) 219.24 383.33 B 0.52 0.1 (eam, the class \336elds ar) 406.63 383.33 B 0.52 0.1 (e set to) 509.7 383.33 B 0.52 0.1 (default values by default serialization.) 219.24 370.93 B 6 F 0.1 (\245) 210.6 356.53 S 1 F 0.52 0.1 (For externalizable objects, the no-ar) 219.24 356.53 B 0.52 0.1 (g constr) 381.62 356.53 B 0.52 0.1 (uctor for the class is r) 418.09 356.53 B 0.52 0.1 (un and) 517.19 356.53 B 0.52 0.1 (then the) 219.24 344.13 B 7 9.5 Q 1.14 (readExternal) 259.74 344.13 P 1 10 Q 0.52 0.1 ( method is called to r) 328.14 344.13 B 0.52 0.1 (estor) 425.51 344.13 B 0.52 0.1 (e the contents of the) 447.53 344.13 B 0.1 (object.) 219.24 331.73 S 0.1 (10.) 192.4 311.33 S 0.52 0.1 (Pr) 210.6 311.33 B 0.52 0.1 (ocess potential substitutions by the class of the object and/or by a) 220.61 311.33 B 0.52 0.1 (subclass of) 210.6 298.93 B 7 9.5 Q 1.14 (ObjectInputStream) 263.26 298.93 P 1 10 Q 0.52 0.1 (..) 360.16 298.93 B 6 F 0.1 (\245) 210.6 284.53 S 1 F 0.52 0.1 (If the object implements the) 219.24 284.53 B 7 9.5 Q 1.14 (Resolvable) 349.89 284.53 P 1 10 Q 0.52 0.1 ( interface, it\325s) 406.89 284.53 B 7 9.5 Q 1.14 (readResolve) 471.63 284.53 P 1 10 Q 0.52 0.1 (method is called to allow the object to r) 219.24 272.13 B 0.52 0.1 (eplace itself.) 400.6 272.13 B 6 F 0.1 (\245) 210.6 257.73 S 1 F 0.52 0.1 (Then if pr) 219.24 257.73 B 0.52 0.1 (eviously enabled by) 264.86 257.73 B 7 9.5 Q 1.14 (enableResolveObject,) 359.51 257.73 P 1 10 Q 0.52 0.1 ( the) 473.51 257.73 B 7 9.5 Q 1.14 (resolveObject) 219.24 245.33 P 1 10 Q 0.52 0.1 ( method is called to allow subclasses of the str) 293.34 245.33 B 0.52 0.1 (eam to) 505.83 245.33 B 0.52 0.1 (examine and r) 219.24 232.93 B 0.52 0.1 (eplace the object. If the pr) 284.58 232.93 B 0.52 0.1 (evious step did r) 402.96 232.93 B 0.52 0.1 (eplace the) 480 232.93 B 0.08 0.1 (original object, the) 219.24 220.53 B 7 9.5 Q 0.17 (resolveObject) 305.78 220.53 P 1 10 Q 0.08 0.1 ( method is called with the r) 379.88 220.53 B 0.08 0.1 (eplacement) 503.68 220.53 B 0.1 (object.) 219.24 208.13 S 0.52 0.1 (If a r) 210.6 187.73 B 0.52 0.1 (eplacement took place, the table of known objects is updated so the) 232.71 187.73 B 0.52 0.1 (r) 210.6 175.33 B 0.52 0.1 (eplaced object is associated with the handle. This object is then r) 214.47 175.33 B 0.52 0.1 (eturned) 512.66 175.33 B 0.52 0.1 (fr) 210.6 162.93 B 0.52 0.1 (om) 217.9 162.93 B 7 9.5 Q 1.14 (readObject) 235.51 162.93 P 1 10 Q 0.52 0.1 (.) 292.51 162.93 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.25/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "25" 33 %%Page: "26" 34 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (26) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Object Serialization Speci\336cation) 265.69 108.7 B 1 F -0.58 0.09 (\321) 414.6 108.7 B 0 F -0.58 0.09 (JDK Playgr) 423.69 108.7 B -0.58 0.09 (ound Alpha, July 3, 1997) 466.59 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (3) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (All of the methods for r) 198 641.33 B 0.52 0.1 (eading primitives types only consume bytes fr) 306.78 641.33 B 0.52 0.1 (om the) 518.74 641.33 B 0.52 0.1 (block data r) 198 628.93 B 0.52 0.1 (ecor) 252.28 628.93 B 0.52 0.1 (ds in the str) 271.14 628.93 B 0.52 0.1 (eam. If a r) 325.72 628.93 B 0.52 0.1 (ead for primitive data occurs when the) 372.47 628.93 B 0.52 0.1 (next item in the str) 198 616.53 B 0.52 0.1 (eam is an object, the r) 284.77 616.53 B 0.52 0.1 (ead methods r) 384.72 616.53 B 0.52 0.1 (eturn -1 or the) 450.24 616.53 B 0.52 0.1 (EOFException as appr) 198 604.13 B 0.52 0.1 (opriate. The value of a primitive type is r) 299.56 604.13 B 0.52 0.1 (ead by a) 488.57 604.13 B 0.52 0.1 (DataInputStr) 198 591.73 B 0.52 0.1 (eam fr) 256.97 591.73 B 0.52 0.1 (om the block data r) 286.31 591.73 B 0.52 0.1 (ecor) 375.49 591.73 B 0.52 0.1 (d.) 394.35 591.73 B 0.52 0.1 (The exceptions thr) 198 571.33 B 0.52 0.1 (own r) 282.31 571.33 B 0.52 0.1 (e\337ect err) 309.22 571.33 B 0.52 0.1 (ors during the traversal or exceptions that) 349.01 571.33 B 0.52 0.1 (occur on the underlying str) 198 558.93 B 0.52 0.1 (eam. If any exception is thr) 322.98 558.93 B 0.52 0.1 (own, the underlying) 447.72 558.93 B 0.52 0.1 (str) 198 546.53 B 0.52 0.1 (eam is left in an unknown and unusable state.) 209.57 546.53 B 0.52 0.1 (When the r) 198 526.13 B 0.52 0.1 (eset token occurs in the str) 249.11 526.13 B 0.52 0.1 (eam, all of the state of the str) 371.41 526.13 B 0.52 0.1 (eam is) 504.83 526.13 B 0.52 0.1 (discar) 198 513.73 B 0.52 0.1 (ded. The set of known objects is clear) 225.07 513.73 B 0.52 0.1 (ed.) 396.46 513.73 B 0.52 0.1 (When the exception token occurs in the str) 198 493.33 B 0.52 0.1 (eam, the exception is r) 393.6 493.33 B 0.52 0.1 (ead and a) 496.53 493.33 B 0.52 0.1 (new W) 198 480.93 B 0.52 0.1 (riteAbortedException is thr) 229.73 480.93 B 0.52 0.1 (own with the terminating exception as an) 354.22 480.93 B 0.52 0.1 (ar) 198 468.53 B 0.52 0.1 (gument. The str) 206.97 468.53 B 0.52 0.1 (eam context is r) 279.31 468.53 B 0.52 0.1 (eset as described earlier) 351.7 468.53 B 0.52 0.1 (.) 460.01 468.53 B 0.08 0.1 (The) 198 448.13 B 7 9.5 Q 0.17 (defaultReadObject) 217.72 448.13 P 1 10 Q 0.08 0.1 ( method is used to r) 314.62 448.13 B 0.08 0.1 (ead the \336elds and object fr) 404.58 448.13 B 0.08 0.1 (om the) 523.89 448.13 B 0.52 0.1 (str) 198 435.73 B 0.52 0.1 (eam. It uses the class descriptor in the str) 209.57 435.73 B 0.52 0.1 (eam to r) 398.87 435.73 B 0.52 0.1 (ead the \336elds in the) 436.82 435.73 B 0.38 0.1 (canonical or) 198 423.33 B 0.38 0.1 (der by name and type fr) 253.11 423.33 B 0.38 0.1 (om the str) 363.86 423.33 B 0.38 0.1 (eam. The values ar) 410.06 423.33 B 0.38 0.1 (e assigned to) 495.77 423.33 B 0.52 0.1 (the matching \336elds by name in the curr) 198 410.93 B 0.52 0.1 (ent class. Details of the versioning) 378.87 410.93 B 0.1 0.1 (mechanism can be found in Section) 198 398.53 B 0.1 0.1 (5.5, \322Compatible Java T) 360.57 398.53 B 0.1 0.1 (ype Evolution. Any) 466.67 398.53 B 0.48 0.1 (\336eld of the object that does not appear in the str) 198 386.13 B 0.48 0.1 (eam is set to its default value.) 418.24 386.13 B 0.52 0.1 (V) 198 373.73 B 0.52 0.1 (alues that appear in the str) 204.4 373.73 B 0.52 0.1 (eam, but not in the object, ar) 327.24 373.73 B 0.52 0.1 (e discar) 458.53 373.73 B 0.52 0.1 (ded. This) 493.61 373.73 B 0.52 0.1 (occurs primarily when a later version of a class has written additional \336elds) 198 361.33 B 0.52 0.1 (that do not occur in the earlier version. This method may only be called fr) 198 348.93 B 0.52 0.1 (om) 537.85 348.93 B 0.52 0.1 (the) 198 336.53 B 7 9.5 Q 1.14 (readObject) 215.29 336.53 P 1 10 Q 0.52 0.1 ( method while r) 272.29 336.53 B 0.52 0.1 (estoring the \336elds of a class. When called at) 345.66 336.53 B 0.52 0.1 (any other time, the NotActiveException is thr) 198 324.13 B 0.52 0.1 (own.) 406.26 324.13 B 0.52 0.1 (The) 198 303.73 B 7 9.5 Q 1.14 (readFields) 218.16 303.73 P 1 10 Q 0.52 0.1 ( method r) 275.16 303.73 B 0.52 0.1 (eads the values of the serializable \336elds fr) 320.14 303.73 B 0.52 0.1 (om the) 512.11 303.73 B 0.52 0.1 (str) 198 291.33 B 0.52 0.1 (eam and makes them available via the) 209.57 291.33 B 7 9.5 Q 1.14 (GetField) 388.21 291.33 P 1 10 Q 0.52 0.1 ( class. The) 433.81 291.33 B 7 9.5 Q 1.14 (readFields) 487.26 291.33 P 1 10 Q 0.52 0.1 (method is only callable fr) 198 278.93 B 0.52 0.1 (om within the) 314.44 278.93 B 7 9.5 Q 1.14 (readObject) 382.12 278.93 P 1 10 Q 0.52 0.1 ( method of a serializable) 439.12 278.93 B 0.52 0.1 (class. It cannot be called mor) 198 266.53 B 0.52 0.1 (e than once or if) 330.4 266.53 B 7 9.5 Q 1.14 (defaultReadObject) 408.15 266.53 P 1 10 Q 0.52 0.1 ( has been) 505.05 266.53 B 0.38 0.1 (called. The) 198 254.13 B 7 9.5 Q 0.83 (GetFields) 250.36 254.13 P 1 10 Q 0.38 0.1 ( object uses the curr) 301.66 254.13 B 0.38 0.1 (ent object\325s) 392.45 254.13 B 7 9.5 Q 0.83 (ObjectStreamClass) 446.22 254.13 P 1 10 Q 0.38 0.1 ( to) 543.12 254.13 B 0.52 0.1 (verify the \336elds that can be r) 198 241.73 B 0.52 0.1 (etrieved for this class. The GetFields object) 329.97 241.73 B 0.52 0.1 (r) 198 229.33 B 0.52 0.1 (eturned by) 201.87 229.33 B 7 9.5 Q 1.14 (readFields) 254.85 229.33 P 1 10 Q 0.52 0.1 ( is only valid during this call to the classes) 311.85 229.33 B 7 9.5 Q 0.07 (readObject) 198 216.93 P 1 10 Q 0.03 0.1 ( method. The \336elds may be r) 255 216.93 B 0.03 0.1 (etrieved in any or) 383.98 216.93 B 0.03 0.1 (der) 463.96 216.93 B 0.03 0.1 (. Additional data) 478.37 216.93 B 0.52 0.1 (may only be r) 198 204.53 B 0.52 0.1 (ead dir) 261.59 204.53 B 0.52 0.1 (ectly fr) 294 204.53 B 0.52 0.1 (om str) 325.88 204.53 B 0.52 0.1 (eam after r) 355.06 204.53 B 0.52 0.1 (eadFields has been called.) 404.92 204.53 B 0.52 0.1 (The) 198 184.13 B 7 9.5 Q 1.14 (registerValidation) 218.16 184.13 P 1 10 Q 0.52 0.1 ( method can be called to r) 320.76 184.13 B 0.52 0.1 (equest a callback when) 439.98 184.13 B 0.52 0.1 (the entir) 198 171.73 B 0.52 0.1 (e graph has been r) 236.34 171.73 B 0.52 0.1 (estor) 321.11 171.73 B 0.52 0.1 (ed but befor) 343.13 171.73 B 0.52 0.1 (e the object is r) 398.97 171.73 B 0.52 0.1 (eturned to the) 468.15 171.73 B 0.03 0.1 (original caller of) 198 159.33 B 7 9.5 Q 0.06 (readObject) 274.79 159.33 P 1 10 Q 0.03 0.1 (. The or) 331.79 159.33 B 0.03 0.1 (der of validate callbacks can be contr) 366.11 159.33 B 0.03 0.1 (olled) 532.69 159.33 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.26/DEST FmPD2 [/Rect[325 395 531 406]/Border[0 0 0]/Dest/M8.9.13669.Head1.55.Compatible.Java.Type.Evolution/LNK FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "26" 34 %%Page: "27" 35 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 54 108.7 B -0.58 0.09 (3) 88.71 108.7 B -0.58 0.09 (:) 93.3 108.7 B 0 F -0.58 0.09 (Object Input Classes) 97.4 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (27) 548.82 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (3) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (using the priority) 198 641.33 B 0.52 0.1 (. Callbacks r) 277.17 641.33 B 0.52 0.1 (egister) 333.46 641.33 B 0.52 0.1 (ed with higher values ar) 363.48 641.33 B 0.52 0.1 (e called befor) 475.43 641.33 B 0.52 0.1 (e) 536.7 641.33 B 0.52 0.1 (those with lower values. The object to be validated must support the) 198 628.93 B 7 9.5 Q 1.14 (ObjectInputValidation) 198 616.53 P 1 10 Q 0.52 0.1 ( interface and implement the) 317.7 616.53 B 7 9.5 Q 1.14 (validateObject) 452.94 616.53 P 1 10 Q 0.52 0.1 (method. It is only corr) 198 604.13 B 0.52 0.1 (ect to r) 300.3 604.13 B 0.52 0.1 (egister validations during a call to a class\325s) 332.12 604.13 B 7 9.5 Q 1.14 (readObject) 198 591.73 P 1 10 Q 0.52 0.1 ( method. Otherwise, a NotActiveException is thr) 255 591.73 B 0.52 0.1 (own. If the) 477.87 591.73 B -0.12 0.1 (callback object supplied to r) 198 579.33 B -0.12 0.1 (egisterV) 323.53 579.33 B -0.12 0.1 (alidation is null, an InvalidObjectException) 360.13 579.33 B 0.52 0.1 (is thr) 198 566.93 B 0.52 0.1 (own.) 221.62 566.93 B 0.52 0.1 (The) 198 546.53 B 7 9.5 Q 1.14 (resolveClass) 218.16 546.53 P 1 10 Q 0.52 0.1 ( method is called while a class is being deserialized, and) 286.56 546.53 B 0.47 0.1 (after the class descriptor has been r) 198 534.13 B 0.47 0.1 (ead. Subclasses may extend this method to) 359.42 534.13 B -0.06 0.1 (r) 198 521.73 B -0.06 0.1 (ead other information about the class written by the corr) 201.87 521.73 B -0.06 0.1 (esponding subclass of) 456.34 521.73 B 7 9.5 Q 1.14 (ObjectOutputStream) 198 509.33 P 1 10 Q 0.52 0.1 (. The method must \336nd and r) 300.6 509.33 B 0.52 0.1 (eturn the class with the) 435.97 509.33 B -0.09 0.1 (given name and serialV) 198 496.93 B -0.09 0.1 (ersionUID. The default implementation locates the class) 303.43 496.93 B 0.52 0.1 (by calling the class loader of the closest caller of) 198 484.53 B 7 9.5 Q 1.14 (readObject) 421.85 484.53 P 1 10 Q 0.52 0.1 ( that has a class) 478.85 484.53 B 0.52 0.1 (loader) 198 472.13 B 0.52 0.1 (. If the class cannot be found) 226.08 472.13 B 7 9.5 Q 1.14 (ClassNotFoundException) 361.09 472.13 P 1 10 Q 0.52 0.1 ( should be) 486.49 472.13 B 0.1 (thr) 198 459.73 S 0.1 (own.) 211.15 459.73 S 0.52 0.1 (The) 198 439.33 B 7 9.5 Q 1.14 (resolveObject) 218.16 439.33 P 1 10 Q 0.52 0.1 ( method is used by tr) 292.26 439.33 B 0.52 0.1 (usted subclasses to monitor or) 390.27 439.33 B 0.02 0.1 (substitute one object for another during deserialization. Resolving objects must) 198 426.93 B 0.52 0.1 (be enabled explicitly by calling) 198 414.53 B 7 9.5 Q 1.14 (enableResolveObject) 343.17 414.53 P 1 10 Q 0.52 0.1 ( befor) 451.47 414.53 B 0.52 0.1 (e calling) 477.97 414.53 B 7 9.5 Q -0.15 (readObject) 198 402.13 P 1 10 Q -0.07 0.1 ( for the \336rst object to be r) 255 402.13 B -0.07 0.1 (esolved. Once enabled) 367.57 402.13 B 7 9.5 Q -0.15 (resolveObject) 471.38 402.13 P 1 10 Q -0.07 0.1 ( is) 545.48 402.13 B 0.52 0.1 (called once for each serializable object just prior to the \336rst time it is being) 198 389.73 B 0.52 0.1 (r) 198 377.33 B 0.52 0.1 (eturned fr) 201.87 377.33 B 0.52 0.1 (om) 247.74 377.33 B 7 9.5 Q 1.14 (readObject) 265.35 377.33 P 1 10 Q 0.52 0.1 (. Note that the) 322.35 377.33 B 7 9.5 Q 1.14 (resolveObject) 391.56 377.33 P 1 10 Q 0.52 0.1 ( method is not) 465.66 377.33 B 0.52 0.1 (called for objects of the specially handled classes,) 198 364.93 B 7 F 1.2 (Class) 426.77 364.93 P 1 F 0.52 0.1 (,) 456.77 364.93 B 7 F 1.2 (ObjectStreamClass) 198 352.53 P 1 F 0.52 0.1 (,) 300 352.53 B 7 9.5 Q 1.14 (String) 305.72 352.53 P 1 10 Q 0.52 0.1 (, and arrays. A subclass\325s implementation of) 339.92 352.53 B 7 9.5 Q 1.14 (resolveObject) 198 340.13 P 1 10 Q 0.52 0.1 ( may r) 272.1 340.13 B 0.52 0.1 (eturn a substitute object that will be assigned or) 301.9 340.13 B 0.52 0.1 (r) 198 327.73 B 0.52 0.1 (eturned instead of the original. The object r) 201.87 327.73 B 0.52 0.1 (eturned must be of a type that is) 400.4 327.73 B 0.52 0.1 (consistent and assignable to every r) 198 315.33 B 0.52 0.1 (efer) 361.1 315.33 B 0.52 0.1 (ence of the original object or else a) 378.18 315.33 B 7 9.5 Q 1.14 (ClassCastException) 198 302.93 P 1 10 Q 0.52 0.1 ( will be thr) 300.6 302.93 B 0.52 0.1 (own. All assignments ar) 351.1 302.93 B 0.52 0.1 (e type-checked. All) 461.66 302.93 B 0.52 0.1 (r) 198 290.53 B 0.52 0.1 (efer) 201.87 290.53 B 0.52 0.1 (ences in the str) 218.95 290.53 B 0.52 0.1 (eam to the original object will be r) 287.56 290.53 B 0.52 0.1 (eplaced by r) 445.01 290.53 B 0.52 0.1 (efer) 501.16 290.53 B 0.52 0.1 (ences to) 518.23 290.53 B 0.52 0.1 (the substitute object.) 198 278.13 B 0.52 0.1 (The) 198 257.73 B 7 9.5 Q 1.14 (enableResolveObject) 218.16 257.73 P 1 10 Q 0.52 0.1 ( method is called by tr) 326.46 257.73 B 0.52 0.1 (usted subclasses of) 432.78 257.73 B 7 9.5 Q 1.14 (ObjectOutputStream) 198 245.33 P 1 10 Q 0.52 0.1 ( to enable the monitoring or substitution of one object) 300.6 245.33 B 0.52 0.1 (for another during deserialization. Replacing objects is disabled until) 198 232.93 B 7 9.5 Q 1.14 (enableResolveObject) 198 220.53 P 1 10 Q 0.52 0.1 ( is called with a) 306.3 220.53 B 7 9.5 Q 1.14 (true) 381.84 220.53 P 1 10 Q 0.52 0.1 ( value. It may ther) 404.64 220.53 B 0.52 0.1 (eafter be) 489.16 220.53 B 0.52 0.1 (disabled by setting it to) 198 208.13 B 7 9.5 Q 1.14 (false) 309.12 208.13 P 1 10 Q 0.52 0.1 (. The pr) 337.62 208.13 B 0.52 0.1 (evious setting is r) 373.48 208.13 B 0.52 0.1 (eturned. The) 454.28 208.13 B 7 9.5 Q 0.49 (enableResolveObject) 198 195.73 P 1 10 Q 0.22 0.1 ( method checks if the str) 306.3 195.73 B 0.22 0.1 (eam has permission to r) 417.35 195.73 B 0.22 0.1 (equest) 525.87 195.73 B 0.52 0.1 (substitution during serialization. T) 198 183.33 B 0.52 0.1 (o ensur) 355.86 183.33 B 0.52 0.1 (e that the private state of objects is) 389.69 183.33 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.27/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "27" 35 %%Page: "28" 36 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (28) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Object Serialization Speci\336cation) 265.69 108.7 B 1 F -0.58 0.09 (\321) 414.6 108.7 B 0 F -0.58 0.09 (JDK Playgr) 423.69 108.7 B -0.58 0.09 (ound Alpha, July 3, 1997) 466.59 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (3) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (not unintentionally exposed, only tr) 198 641.33 B 0.52 0.1 (usted str) 362.44 641.33 B 0.52 0.1 (eams may use) 402.06 641.33 B 7 9.5 Q 1.14 (resolveObject) 469.73 641.33 P 1 10 Q 0.52 0.1 (.) 543.83 641.33 B 0.19 0.1 (T) 198 628.93 B 0.19 0.1 (r) 203.33 628.93 B 0.19 0.1 (usted classes ar) 207.3 628.93 B 0.19 0.1 (e those classes with a class loader equal to null or belong to a) 277.34 628.93 B 0.52 0.1 (security pr) 198 616.53 B 0.52 0.1 (otection domain that pr) 247.08 616.53 B 0.52 0.1 (ovides permission to enable substitution.) 355.09 616.53 B 0.52 0.1 (If the subclass of) 198 596.13 B 7 9.5 Q 1.14 (ObjectInputStream) 277.97 596.13 P 1 10 Q 0.52 0.1 ( is not consider) 374.87 596.13 B 0.52 0.1 (ed part of the system) 444.76 596.13 B 0.01 0.1 (domain, the following line has to be added to the security policy \336le to pr) 198 583.73 B 0.01 0.1 (ovide) 529.86 583.73 B 0.52 0.1 (a subclass of) 198 571.33 B 7 9.5 Q 1.14 (ObjectInputStream) 258.88 571.33 P 1 10 Q 0.52 0.1 (permission to call) 362.62 571.33 B 7 9.5 Q 1.14 (enableResolveObject) 446.72 571.33 P 1 10 Q 0.52 0.1 (.) 555.02 571.33 B 7 9.5 Q 1.14 (permission SerializablePermission \322enableSubstitution\323) 207 550.93 P 1.14 ([,) 234 538.53 P 1.14 ( CodeBase \322URL\323] [, SignedBy \322signer_name\323];) 245.4 538.53 P 7 10 Q -0.12 (AccessControlException) 198 518.13 P 1 F -0.05 0.1 ( is thr) 330 518.13 B -0.05 0.1 (own if the pr) 355.59 518.13 B -0.05 0.1 (otection domain of the subclass) 413.74 518.13 B 0.52 0.1 (of) 198 505.73 B 7 9.5 Q 1.14 (ObjectStreamClass) 210.11 505.73 P 1 10 Q 0.52 0.1 ( does not have permission to \322enableSubstitution\323 by) 307.01 505.73 B 0.52 0.1 (calling) 198 493.33 B 7 9.5 Q 1.14 (enableResolveObject) 231.37 493.33 P 1 10 Q 0.52 0.1 (. See \322The Java Security Ar) 339.67 493.33 B 0.52 0.1 (chitectur) 463.26 493.33 B 0.52 0.1 (e\050JDK1.2\051\323) 502.88 493.33 B 0.52 0.1 (document for further details on the security model.) 198 480.93 B 0.52 0.1 (The) 198 460.53 B 7 9.5 Q 1.14 (readStreamHeader) 218.16 460.53 P 1 10 Q 0.52 0.1 ( method r) 309.36 460.53 B 0.52 0.1 (eads and veri\336es the magic number and) 354.34 460.53 B 0.22 0.1 (version of the str) 198 448.13 B 0.22 0.1 (eam. If they do not match, the) 274.7 448.13 B 7 9.5 Q 0.48 (StreamCorruptedMismatch) 413.91 448.13 P 1 10 Q 0.22 0.1 ( is) 545.01 448.13 B 0.1 (thr) 198 435.73 S 0.1 (own.) 211.15 435.73 S 0 15 Q (3.2) 67.47 402 T -0.94 (The ObjectInputStr) 97.27 402 P -0.94 (eam.GetField Class) 215.37 402 P 54 546/G6.4936 FmPA 1 10 Q 0.52 0.1 (The class) 198 380.33 B 7 9.5 Q 1.14 (ObjectInputStream.GetField) 242.61 380.33 P 1 10 Q 0.52 0.1 ( pr) 390.81 380.33 B 0.52 0.1 (ovides the API for getting the) 407.03 380.33 B 0.4 0.1 (values of serializable \336elds. The pr) 198 367.93 B 0.4 0.1 (otocol of the str) 359.57 367.93 B 0.4 0.1 (eam is the same as used by) 430.89 367.93 B 7 9.5 Q 0.61 (defaultReadObject.) 198 355.53 P 1 10 Q 0.28 0.1 ( Using) 300.6 355.53 B 7 9.5 Q 0.61 (readFields) 333.17 355.53 P 1 10 Q 0.28 0.1 ( to access the serializable \336elds does) 390.17 355.53 B 0.52 0.1 (not change the format of the str) 198 343.13 B 0.52 0.1 (eam. It only pr) 342.92 343.13 B 0.52 0.1 (ovides an alternate API to) 413.88 343.13 B 0.52 0.1 (access the values which does not r) 198 330.73 B 0.52 0.1 (equir) 355.4 330.73 B 0.52 0.1 (e the class to have the corr) 379 330.73 B 0.52 0.1 (esponding) 500.88 330.73 B -0.06 0.1 (non-transien) 198 318.33 B -0.06 (t \336elds for) 255.42 318.33 P -0.06 0.1 (each named serializable \336eld. The serializable \336elds ar) 302.84 318.33 B -0.06 0.1 (e) 550.37 318.33 B 0.52 0.1 (those declar) 198 305.93 B 0.52 0.1 (ed using) 252.81 305.93 B 7 9.5 Q 1.14 (serialPersistentFields) 295.21 305.93 P 1 10 Q 0.52 0.1 ( or if it is not declar) 420.61 305.93 B 0.52 0.1 (ed the) 511.56 305.93 B 0.52 0.1 (non-transient and non-static \336elds of the object. When the str) 198 293.53 B 0.52 0.1 (eam is r) 477.98 293.53 B 0.52 0.1 (ead the) 514.35 293.53 B 0.12 0.1 (available serializable \336elds ar) 198 281.13 B 0.12 0.1 (e those written to the str) 331.47 281.13 B 0.12 0.1 (eam when the object was) 441.73 281.13 B 0.52 0.1 (serialized. If the class that wr) 198 268.73 B 0.52 0.1 (ote the str) 332.26 268.73 B 0.52 0.1 (eam is a dif) 378.05 268.73 B 0.52 0.1 (fer) 431.25 268.73 B 0.52 0.1 (ent version not all \336elds) 443.44 268.73 B 0.52 0.1 (will corr) 198 256.33 B 0.52 0.1 (espond to the serializable \336elds of the curr) 236.61 256.33 B 0.52 0.1 (ent class. The available) 432.06 256.33 B 0.52 0.1 (\336elds can be r) 198 243.93 B 0.52 0.1 (etrieved fr) 261.91 243.93 B 0.52 0.1 (om the ObjectStr) 309.38 243.93 B 0.52 0.1 (eamClass of the GetField object.) 385.68 243.93 B 0.52 0.1 (The) 198 223.53 B 7 9.5 Q 1.14 (getObjectStreamClass) 218.16 223.53 P 1 10 Q 0.52 0.1 ( method r) 332.16 223.53 B 0.52 0.1 (eturns an ObjectStr) 377.14 223.53 B 0.52 0.1 (eamClass object) 464.49 223.53 B 0.52 0.1 (r) 198 211.13 B 0.52 0.1 (epr) 201.87 211.13 B 0.52 0.1 (esenting the class in the str) 216.74 211.13 B 0.52 0.1 (eam. It contains the list of serializable \336elds.) 340.5 211.13 B 0.02 0.1 (The) 198 190.73 B 7 9.5 Q 0.05 (defaulted) 217.66 190.73 P 1 10 Q 0.02 0.1 ( method r) 268.96 190.73 B 0.02 0.1 (eturns tr) 312.95 190.73 B 0.02 0.1 (ue if the \336eld is not pr) 351.59 190.73 B 0.02 0.1 (esent in the str) 451.39 190.73 B 0.02 0.1 (eam. An) 517.33 190.73 B 7 9.5 Q 1.14 (IllegalArgumentException) 198 178.33 P 1 10 Q 0.52 0.1 ( is thr) 334.8 178.33 B 0.52 0.1 (own if the r) 361.54 178.33 B 0.52 0.1 (equested \336eld is not a) 415.3 178.33 B 0.52 0.1 (serializable \336eld of the curr) 198 165.93 B 0.52 0.1 (ent class.) 323.63 165.93 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.28/DEST FmPD2 97 556/M6.9.22900.Head1.27.The.ObjectGetFields.Interface FmPA 97 556/I6.1.4935 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "28" 36 %%Page: "29" 37 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 54 108.7 B -0.58 0.09 (3) 88.71 108.7 B -0.58 0.09 (:) 93.3 108.7 B 0 F -0.58 0.09 (Object Input Classes) 97.4 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (29) 548.82 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (3) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (Each) 198 641.33 B 7 9.5 Q 1.14 (get) 222.89 641.33 P 1 10 Q 0.52 0.1 ( method r) 239.99 641.33 B 0.52 0.1 (eturns the speci\336ed serializable \336eld fr) 284.97 641.33 B 0.52 0.1 (om the str) 462.27 641.33 B 0.52 0.1 (eam. I/O) 508.74 641.33 B 0.52 0.1 (exceptions will be thr) 198 628.93 B 0.52 0.1 (own if the underlying str) 296.38 628.93 B 0.52 0.1 (eam thr) 411.42 628.93 B 0.52 0.1 (ows an exception. An) 446.61 628.93 B 7 9.5 Q 1.14 (IllegalArgumentException) 198 616.53 P 1 10 Q 0.52 0.1 ( is thr) 334.8 616.53 B 0.52 0.1 (own if the name or type does not match) 361.54 616.53 B 0.26 0.1 (the name and type of an \336eld serializable \336eld of the curr) 198 604.13 B 0.26 0.1 (ent class. The default) 459.1 604.13 B 0.52 0.1 (value is r) 198 591.73 B 0.52 0.1 (eturned if the str) 240.34 591.73 B 0.52 0.1 (eam does not contain an explicit value for the \336eld.) 317.33 591.73 B 0 15 Q (3.3) 67.47 558 T -0.94 (The ObjectInputV) 97.27 558 P -0.94 (alidation Interface) 206.19 558 P 54 702/G6.3403 FmPA 1 10 Q 0.52 0.1 (This interface allows an object to be called when a complete graph of objects) 198 536.33 B 0.52 0.1 (has been deserialized. If the object cannot be made valid, it should thr) 198 523.93 B 0.52 0.1 (ow the) 519.34 523.93 B 7 9.5 Q 1.14 (ObjectInvalidException) 198 511.53 P 1 10 Q 0.52 0.1 (. Any exception that occurs during a call to) 323.4 511.53 B 0.52 0.1 (validateObject will terminate the validation pr) 198 499.13 B 0.52 0.1 (ocess, and the) 410.01 499.13 B 0.52 0.1 (InvalidObjectException will be thr) 198 486.73 B 0.52 0.1 (own.) 354.65 486.73 B 7 9 Q (package java.io;) 198 471 T (public interface ObjectInputValidation) 198 449 T ({) 198 438 T (public void validateObject\050\051) 218.16 427 T (throws InvalidObjectException;) 238.32 416 T (}) 198 405 T 0 15 Q (3.4) 67.47 372 T -0.94 (The r) 97.27 372 P -0.94 (eadObject Method) 128.15 372 P 54 516/G6.2971 FmPA 1 10 Q 0.52 0.1 (For serializable objects, the) 198 350.33 B 7 9.5 Q 1.14 (readObject) 324.42 350.33 P 1 10 Q 0.52 0.1 ( method allows a class to contr) 381.42 350.33 B 0.52 0.1 (ol the) 523.07 350.33 B 0.52 0.1 (deserialization of its own \336elds. Her) 198 337.93 B 0.52 0.1 (e is its signatur) 364.16 337.93 B 0.52 0.1 (e:) 433.86 337.93 B 7 9 Q (private void readObject\050ObjectInputStream stream\051) 218.16 322.2 T (throws IOException, ClassNotFoundException;) 238.32 311.2 T 1 10 Q 0.28 0.1 (Each subclass of a serializable object may de\336ne its own r) 198 291.53 B 0.28 0.1 (eadObject method. If) 459.88 291.53 B 0.52 0.1 (a class does not implement the method, the default serialization pr) 198 279.13 B 0.52 0.1 (ovided by) 503.9 279.13 B 0.52 0.1 (defaultReadObject will be used. When implemented, the class is only) 198 266.73 B 0.37 0.1 (r) 198 254.33 B 0.37 0.1 (esponsible for r) 201.87 254.33 B 0.37 0.1 (estoring its own \336elds, not those of its supertypes or subtypes.) 272.42 254.33 B 0.32 0.1 (The class\325s r) 198 233.93 B 0.32 0.1 (eadObject method, if implemented, is r) 253.29 233.93 B 0.32 0.1 (esponsible for r) 430.77 233.93 B 0.32 0.1 (estoring the) 501.21 233.93 B 0.52 0.1 (state of the class. The values of every \336eld of the object whether transient or) 198 221.53 B 0.52 0.1 (not, static or not ar) 198 209.13 B 0.52 0.1 (e set to the default value for the \336elds type. The) 285.05 209.13 B 7 9.5 Q 1.14 (defaultReadObject) 198 196.73 P 1 10 Q 0.52 0.1 ( method should be called befor) 294.9 196.73 B 0.52 0.1 (e r) 437.2 196.73 B 0.52 0.1 (eading any optional) 449.08 196.73 B 0.52 0.1 (data written by the corr) 198 184.33 B 0.52 0.1 (esponding) 306.76 184.33 B 7 9.5 Q 1.14 (writeObject) 357.5 184.33 P 1 10 Q 0.52 0.1 ( method. If the classes) 420.2 184.33 B 7 9.5 Q 0.19 (readObject) 198 171.93 P 1 10 Q 0.09 0.1 ( method attempts to r) 255 171.93 B 0.09 0.1 (ead mor) 352.85 171.93 B 0.09 0.1 (e data than is pr) 390.1 171.93 B 0.09 0.1 (esent in the optional) 463.13 171.93 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.29/DEST FmPD2 97 526/M6.9.21367.Head1.34.Method.readObject.and.readObjectCleanup FmPA 97 526/I6.1.2970 FmPA 97 712/M6.9.22036.Head1.33.The.ObjectInputValidation.Interface FmPA 97 712/I6.1.3402 FmPA 123 526/M6.8.newlink.readObject FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "29" 37 %%Page: "30" 38 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (30) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Object Serialization Speci\336cation) 265.69 108.7 B 1 F -0.58 0.09 (\321) 414.6 108.7 B 0 F -0.58 0.09 (JDK Playgr) 423.69 108.7 B -0.58 0.09 (ound Alpha, July 3, 1997) 466.59 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (3) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (part of the str) 198 641.33 B 0.52 0.1 (eam for this class, the str) 260.71 641.33 B 0.52 0.1 (eam will thr) 374.57 641.33 B 0.52 0.1 (ow an EOFException. The) 430.35 641.33 B 0.21 0.1 (r) 198 628.93 B 0.21 0.1 (esponsibility for the format, str) 201.87 628.93 B 0.21 0.1 (uctur) 342.86 628.93 B 0.21 0.1 (e, and versioning of the optional data lies) 366.89 628.93 B 0.52 0.1 (completely with the class.) 198 616.53 B 0.48 0.1 (If the class being r) 198 596.13 B 0.48 0.1 (estor) 281.7 596.13 B 0.48 0.1 (ed is not pr) 303.72 596.13 B 0.48 0.1 (esent in the str) 356.23 596.13 B 0.48 0.1 (eam being r) 423.55 596.13 B 0.48 0.1 (ead, its \336elds ar) 477.61 596.13 B 0.48 0.1 (e) 549.93 596.13 B 0.52 0.1 (initialized to the appr) 198 583.73 B 0.52 0.1 (opriate default values.) 297.27 583.73 B 0.52 0.1 (Reading an object fr) 198 563.33 B 0.52 0.1 (om the ObjectInputStr) 289.67 563.33 B 0.52 0.1 (eam is analagous to cr) 390.96 563.33 B 0.52 0.1 (eating a new) 492.96 563.33 B 0.52 0.1 (object. Just as a new object\325s constr) 198 550.93 B 0.52 0.1 (uctors ar) 358.12 550.93 B 0.52 0.1 (e invoked in the or) 398.19 550.93 B 0.52 0.1 (der fr) 485.09 550.93 B 0.52 0.1 (om the) 510.65 550.93 B 0.52 0.1 (super) 198 538.53 B 0.52 0.1 (class to the subclass, an object being r) 223.34 538.53 B 0.52 0.1 (ead fr) 396.05 538.53 B 0.52 0.1 (om a str) 422.67 538.53 B 0.52 0.1 (eam is deserialized) 460.07 538.53 B 0.52 0.1 (fr) 198 526.13 B 0.52 0.1 (om super) 205.3 526.13 B 0.52 0.1 (class to subclass. The) 248.25 526.13 B 7 9.5 Q 1.14 (readObject) 351.17 526.13 P 1 10 Q 0.52 0.1 (, or) 408.17 526.13 B 7 9.5 Q 1.14 (defaultReadObject) 426.62 526.13 P 1 10 Q 0.52 0.1 (,) 523.52 526.13 B 0.52 0.1 (method is called instead of the constr) 198 513.73 B 0.52 0.1 (uctor for each Serializable subclass) 369.38 513.73 B 0.52 0.1 (during deserialization.) 198 501.33 B 0.52 0.1 (One last similarity between a constr) 198 480.93 B 0.52 0.1 (uctor and a) 362.47 480.93 B 7 9.5 Q 1.14 (readObject) 417.8 480.93 P 1 10 Q 0.52 0.1 ( method is that) 474.8 480.93 B 0.42 0.1 (both pr) 198 468.53 B 0.42 0.1 (ovide the opportunity to invoke a method on an object that is not fully) 231.47 468.53 B 0.52 0.1 (constr) 198 456.13 B 0.52 0.1 (ucted. Any non-\336nal method called while an object is being constr) 225.69 456.13 B 0.52 0.1 (ucted) 529.58 456.13 B 0.52 0.1 (can potentially be overridden by a subclass. Methods called during the) 198 443.73 B -0.01 0.1 (constr) 198 431.33 B -0.01 0.1 (uction phase of an object ar) 225.69 431.33 B -0.01 0.1 (e r) 348.93 431.33 B -0.01 0.1 (esolved by the actual type of the object, not) 360.28 431.33 B 0.52 0.1 (the type curr) 198 418.93 B 0.52 0.1 (ently being initialized by either its constr) 257.02 418.93 B 0.52 0.1 (uctor or) 445.13 418.93 B 7 9.5 Q 1.14 (readObject) 484.62 418.93 P 1 10 Q 0.52 0.1 (method. This situation r) 198 406.53 B 0.52 0.1 (esults in the overriding method being invoked on an) 307.99 406.53 B 0.52 0.1 (object that is not fully constr) 198 394.13 B 0.52 0.1 (ucted yet.) 328.88 394.13 B 0 15 Q (3.5) 67.47 360.4 T -0.94 (The r) 97.27 360.4 P -0.94 (eadExternal Method) 128.15 360.4 P 54 504/G6.5208 FmPA 1 10 Q 0.52 0.1 (Objects implementing) 198 338.73 B 7 9.5 Q 1.14 (java.io.Externalizable) 301.04 338.73 P 1 10 Q 0.52 0.1 ( must implement the) 426.44 338.73 B 7 9.5 Q 1.14 (readExternal) 198 326.33 P 1 10 Q 0.52 0.1 ( method to r) 266.4 326.33 B 0.52 0.1 (estor) 323.42 326.33 B 0.52 0.1 (e the entir) 345.44 326.33 B 0.52 0.1 (e state of the object. It must) 391.79 326.33 B 0.52 0.1 (coor) 198 313.93 B 0.52 0.1 (dinate with its super) 217.53 313.93 B 0.52 0.1 (classes to r) 312.16 313.93 B 0.52 0.1 (estor) 361.75 313.93 B 0.52 0.1 (e their state. All of the methods of) 383.77 313.93 B 7 9.5 Q 1.14 (ObjectInput) 198 301.53 P 1 10 Q 0.52 0.1 ( ar) 260.7 301.53 B 0.52 0.1 (e available to r) 272.79 301.53 B 0.52 0.1 (estor) 340.43 301.53 B 0.52 0.1 (e the object\325s primitive typed \336elds and) 362.45 301.53 B 0.52 0.1 (object \336elds.) 198 289.13 B 7 9 Q (public void readExternal\050ObjectInput stream\051) 218.16 273.4 T (throws IOException;) 238.32 262.4 T 54 241.41 558 249.4 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 558 246.38 198 246.38 2 L 0.3 H 2 Z 0 X 1 1 0 0 0 0 1 K N 0 0 0 1 0 0 0 K 0 72 612 720 C 5 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (Note \320) 198 234.74 B 1 F 0.52 0.1 (The) 231.96 234.74 B 7 9.5 Q 1.14 (readExternal) 252.12 234.74 P 1 10 Q 0.52 0.1 ( method is public, and it raises the risk of a client) 320.52 234.74 B 0.52 0.1 (being able to overwrite an existing object fr) 198 222.34 B 0.52 0.1 (om a str) 396.69 222.34 B 0.52 0.1 (eam. The class may add it) 434.09 222.34 B 54 198.62 558 206.61 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 558 203.59 198 203.59 2 L 0.3 H 2 Z 0 X 1 1 0 0 0 0 1 K N 0 0 0 1 0 0 0 K 0 72 612 720 C 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (own checks to insur) 198 209.94 B 0.52 0.1 (e that this is only called when appr) 289.36 209.94 B 0.52 0.1 (opriate.) 451.08 209.94 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.30/DEST FmPD2 [/Dest/L.inputdoc/DEST FmPD2 97 514/M6.9.27155.Head1.35.The.readExternal.Method FmPA 97 514/I6.1.5207 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "30" 38 %%Page: "31" 39 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (31) 548.82 108.7 B 0 0 0 1 0 0 0 K 198 500.18 558 500.18 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 540.76 521.07 558.36 524.92 R 0 X 1 1 0 0 0 0 1 K V 540.76 514.65 558.36 518.5 R V 540.76 508.42 558.36 512.27 R V 540.76 518.61 558.36 521.29 R 7 X V 540.76 512.4 558.36 514.87 R V 0 0 0 1 0 0 0 K 54 522.64 558 589.39 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 72 612 720 C 0 20 Q 0 X 0 0 0 1 0 0 0 K -2.5 (Class Descriptors) 198 509.31 P 54 653/G7.60 FmPA 1 1 0 0 0 0 1 K 0 24 Q 1 1 0 0 0 0 1 K -3.12 (4) 525.14 508.64 S 0 0 0 1 0 0 0 K 0 13 Q 0 0 0 1 0 0 0 K 0.13 (T) 198 457.68 S 0.13 (opics:) 204.63 457.68 S 6 14 Q 0.14 (\245) 198 438.68 S 1 10 Q 0.52 0.1 (The ObjectStr) 210.6 438.68 B 0.52 0.1 (eamClass Class) 272.16 438.68 B 6 14 Q 0.14 (\245) 198 420.28 S 1 10 Q 0.52 0.1 (The ObjectStr) 210.6 420.28 B 0.52 0.1 (eamField Class) 272.16 420.28 B 6 14 Q 0.14 (\245) 198 401.88 S 1 10 Q 0.52 0.1 (Inspecting Serializable Classes) 210.6 401.88 B 6 14 Q 0.14 (\245) 198 383.48 S 1 10 Q 0.52 0.1 (Str) 210.6 383.48 B 0.52 0.1 (eam Unique Identi\336ers) 223.18 383.48 B 0 15 Q (4.1) 67.47 349.74 T -0.94 (The ObjectStr) 97.27 349.74 P -0.94 (eamClass Class) 181.2 349.74 P 54 494/G7.5132 FmPA 1 10 Q 0.33 0.1 (The) 198 328.08 B 7 9.5 Q 0.73 (ObjectStreamClass) 217.97 328.08 P 1 10 Q 0.33 0.1 ( pr) 314.87 328.08 B 0.33 0.1 (ovides information about classes that ar) 327.78 328.08 B 0.33 0.1 (e saved in) 509.1 328.08 B 0.52 0.1 (a Serialization str) 198 315.68 B 0.52 0.1 (eam. The descriptor pr) 277.38 315.68 B 0.52 0.1 (ovides the fully-quali\336ed name of the) 381.4 315.68 B 0.52 0.1 (class and its serialization version UID. A SerialV) 198 303.28 B 0.52 0.1 (ersionUID identi\336es the) 419.38 303.28 B 0.49 0.1 (unique original class version for which this class is capable of writing str) 198 290.88 B 0.49 0.1 (eams) 531.65 290.88 B 0.52 0.1 (and fr) 198 278.48 B 0.52 0.1 (om which it can r) 225.65 278.48 B 0.52 0.1 (ead.) 306.25 278.48 B 7 9 Q (package java.io;) 198 262.74 T (public class ObjectStreamClass) 198 240.74 T ({) 198 229.74 T (public static ObjectStreamClass lookup\050Class cl\051;) 218.16 218.74 T (public String getName\050\051;) 218.16 196.74 T (public Class forClass\050\051;) 218.16 174.74 T (public ObjectStreamField[] getFields\050\051;) 218.16 152.74 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.31/DEST FmPD2 [/Dest/F.classdoc/DEST FmPD2 97 504/M7.9.28989.Head1.41.The.ObjectStreamClass.Class FmPA 97 504/I7.1.5131 FmPA [/Rect[211 434 342 449]/Border[0 0 0]/Page 39/View[/XYZ null 97 504 FmDC exch pop null]/LNK FmPD [/Rect[211 415 341 430]/Border[0 0 0]/Page 41/View[/XYZ null 97 706 FmDC exch pop null]/LNK FmPD [/Rect[211 378 328 393]/Border[0 0 0]/Page 42/View[/XYZ null 97 542 FmDC exch pop null]/LNK FmPD [/Rect[211 397 349 412]/Border[0 0 0]/Page 42/View[/XYZ null 97 792 FmDC exch pop null]/LNK FmPD [/Title(A)/Rect[45 488 567 598]/ARTICLE FmPD2 [/Title(A)/Rect[45 135 567 475]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "31" 39 %%Page: "32" 40 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (32) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Object Serialization Speci\336cation) 265.69 108.7 B 1 F -0.58 0.09 (\321) 414.6 108.7 B 0 F -0.58 0.09 (JDK Playgr) 423.69 108.7 B -0.58 0.09 (ound Alpha, July 3, 1997) 466.59 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (4) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 7 9 Q 0 X 0 0 0 1 0 0 0 K (public long getSerialVersionUID\050\051;) 218.16 631 T (public String toString\050\051;) 218.16 609 T (}) 198 598 T 1 10 Q 0.52 0.1 (The) 198 578.33 B 7 9.5 Q 1.14 (lookup) 218.16 578.33 P 1 10 Q 0.52 0.1 ( method r) 252.36 578.33 B 0.52 0.1 (eturns the) 297.34 578.33 B 7 9.5 Q 1.14 (ObjectStreamClass) 346.44 578.33 P 1 10 Q 0.52 0.1 ( descriptor for the) 443.34 578.33 B 0.22 0.1 (speci\336ed class in the Java VM. If the class has de\336ned) 198 565.93 B 7 9.5 Q 0.47 (serialVersionUID) 444.43 565.93 P 1 10 Q 0.22 0.1 ( it is) 535.63 565.93 B 0.52 0.1 (r) 198 553.53 B 0.52 0.1 (etrieved fr) 201.87 553.53 B 0.52 0.1 (om the class. If not de\336ned by the class it is computed fr) 249.34 553.53 B 0.52 0.1 (om the) 508.92 553.53 B 0.5 0.1 (class\325s de\336nition in the Java V) 198 541.13 B 0.5 0.1 (irtual Machine.) 335.35 541.13 B 7 F 1.16 (null) 407.76 541.13 P 1 F 0.5 0.1 ( is r) 431.76 541.13 B 0.5 0.1 (eturned if the speci\336ed) 449.18 541.13 B 0.52 0.1 (class is not serializable or externalizable. Only class descriptions for classes) 198 528.73 B 0.41 0.1 (that implement either) 198 516.33 B 7 9.5 Q 0.91 (java.io.Serializable) 299.95 516.33 P 1 10 Q 0.41 0.1 ( or) 413.95 516.33 B 7 9.5 Q 0.91 (java.io.Externalizable) 429.59 516.33 P 1 10 Q 0.52 0.1 (interfaces can be written to a str) 198 503.93 B 0.52 0.1 (eam.) 344.95 503.93 B 0.52 0.1 (The) 198 483.53 B 7 9.5 Q 1.14 (getName) 218.16 483.53 P 1 10 Q 0.52 0.1 ( method r) 258.06 483.53 B 0.52 0.1 (eturns the fully-quali\336ed name of the class. The class) 303.04 483.53 B 0.52 0.1 (name is saved in the str) 198 471.13 B 0.52 0.1 (eam and is used when the class must be loaded.) 306.75 471.13 B 0.52 0.1 (The) 198 450.73 B 7 9.5 Q 1.14 (forClass) 218.16 450.73 P 1 10 Q 0.52 0.1 ( method r) 263.76 450.73 B 0.52 0.1 (eturns the Class in the local V) 308.74 450.73 B 0.52 0.1 (irtual Machine if one is) 445.39 450.73 B 0.52 0.1 (known. Otherwise, it r) 198 438.33 B 0.52 0.1 (eturns null.) 301.16 438.33 B 0.52 0.1 (The) 198 417.93 B 7 9.5 Q 1.14 (getFields) 218.16 417.93 P 1 10 Q 0.52 0.1 ( method r) 269.46 417.93 B 0.52 0.1 (eturns an array of) 314.44 417.93 B 7 9.5 Q 1.14 (ObjectStreamField) 399.58 417.93 P 1 10 Q 0.52 0.1 ( objects that) 496.48 417.93 B 0.52 0.1 (r) 198 405.53 B 0.52 0.1 (epr) 201.87 405.53 B 0.52 0.1 (esent the persistent \336elds of this class.) 216.74 405.53 B 0.52 0.1 (The) 198 385.13 B 7 9.5 Q 1.14 (getSerialVersionUID) 218.16 385.13 P 1 10 Q 0.52 0.1 ( method r) 326.46 385.13 B 0.52 0.1 (eturns the) 371.44 385.13 B 7 9.5 Q 1.14 (serialVersionUID) 420.54 385.13 P 1 10 Q 0.52 0.1 ( of this) 511.74 385.13 B 0.52 0.1 (class. Refer to Section) 198 372.73 B 0.52 0.1 (4.4, \322Str) 305.72 372.73 B 0.52 0.1 (eam Unique Identi\336ers. If not speci\336ed by the) 341.92 372.73 B 0.49 0.1 (class, the value r) 198 360.33 B 0.49 0.1 (eturned is a hash computed fr) 274.12 360.33 B 0.49 0.1 (om the class\325s name, interfaces,) 411.77 360.33 B 0.36 0.1 (methods, and \336elds using the Secur) 198 347.93 B 0.36 0.1 (e Hash Algorithm \050SHA\051 as de\336ned by the) 360.43 347.93 B 0.52 0.1 (National Institute of Standar) 198 335.53 B 0.52 0.1 (d.) 328.57 335.53 B -0.05 0.1 (The) 198 315.13 B 7 9.5 Q -0.11 (toString) 217.59 315.13 P 1 10 Q -0.05 0.1 ( method r) 263.19 315.13 B -0.05 0.1 (eturns a printable r) 307.03 315.13 B -0.05 0.1 (epr) 393.42 315.13 B -0.05 0.1 (esentation of the class descriptor) 408.29 315.13 B 0.52 0.1 (including the class\325s name and serialV) 198 302.73 B 0.52 0.1 (ersionUID.) 372.41 302.73 B 0.52 0.1 (When an) 198 282.33 B 7 9.5 Q 1.14 (ObjectStreamClass) 242.09 282.33 P 1 10 Q 0.52 0.1 ( instance is written to the str) 338.99 282.33 B 0.52 0.1 (eam it writes the) 469.83 282.33 B 0.52 0.1 (class name and serialV) 198 269.93 B 0.52 0.1 (ersionUID, \337ags and the number of \336elds. Depending) 301.37 269.93 B 0.52 0.1 (on the class additional information may be written:) 198 257.53 B 6 14 Q 0.14 (\245) 198 239.13 S 1 10 Q 0.52 0.1 (For non-serializable classes number of \336elds is always zer) 210.6 239.13 B 0.52 0.1 (o. Neither of the) 475.36 239.13 B 0.52 0.1 (serializable or externalizable \337ag bits ar) 210.6 226.73 B 0.52 0.1 (e set.) 392.42 226.73 B 6 14 Q 0.14 (\245) 198 208.33 S 1 10 Q 0.52 0.1 (For serializable classes,the serializable \337ag is set, the number of \336elds) 210.6 208.33 B 0.52 0.1 (counts the number of serializable \336elds and is followed by a descriptor for) 210.6 195.93 B 0.52 0.1 (each serializable \336eld. The descriptors ar) 210.6 183.53 B 0.52 0.1 (e written in canonical or) 397.12 183.53 B 0.52 0.1 (der) 508.58 183.53 B 0.52 0.1 (. The) 522.98 183.53 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.32/DEST FmPD2 [/Rect[270 369 447 380]/Border[0 0 0]/Page 42/View[/XYZ null 97 542 FmDC exch pop null]/LNK FmPD [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "32" 40 %%Page: "33" 41 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 54 108.7 B -0.58 0.09 (4) 88.71 108.7 B -0.58 0.09 (:) 93.3 108.7 B 0 F -0.58 0.09 (Class Descriptors) 97.4 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (33) 548.82 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (4) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (descriptors for primitive typed \336elds ar) 210.6 641.33 B 0.52 0.1 (e written \336rst sorted by \336eld name) 391.62 641.33 B 0 0.1 (followed by descriptors for the object typed \336elds sorted by \336eld name. The) 210.6 628.93 B 0.15 0.1 (names ar) 210.6 616.53 B 0.15 0.1 (e sorted using String.compar) 251.5 616.53 B 0.15 0.1 (eT) 382.17 616.53 B 0.15 0.1 (o. The pr) 392.37 616.53 B 0.15 0.1 (otocol describes the format.) 433.06 616.53 B 6 14 Q 0.14 (\245) 198 598.13 S 1 10 Q 0.52 0.1 (For externalizable classes, \337ags includes the externalizable \337ag and the) 210.6 598.13 B 0.52 0.1 (number of \336elds is always zer) 210.6 585.73 B 0.52 0.1 (o.) 348.2 585.73 B 0 15 Q (4.2) 67.47 552 T -0.94 (The ObjectStr) 97.27 552 P -0.94 (eamField Class) 181.2 552 P 54 696/G7.3127 FmPA 1 10 Q 0.52 0.1 (ObjectStr) 198 530.33 B 0.52 0.1 (eamField objects r) 239.4 530.33 B 0.52 0.1 (epr) 321.97 530.33 B 0.52 0.1 (esent serializable \336elds of serializable classes.) 336.84 530.33 B 0.52 0.1 (The serializable \336elds of a class can be r) 198 517.93 B 0.52 0.1 (etrieved fr) 381.11 517.93 B 0.52 0.1 (om the ObjectStr) 428.58 517.93 B 0.52 0.1 (eamClass.) 504.88 517.93 B 0.52 0.1 (An array of ObjectStr) 198 505.53 B 0.52 0.1 (eamFields is used to override the default of serializable) 295.51 505.53 B 0.52 0.1 (\336elds.) 198 493.13 B 7 9 Q (package java.io;) 198 477.4 T (public class ObjectStreamField {) 198 455.4 T (public ObjectStreamField\050String name, Class clazz\051;) 218.16 433.4 T (public String getName\050\051;) 218.16 411.4 T (public Class getType\050\051 throws ClassNotFoundException;) 218.16 389.4 T (public String toString\050\051;) 218.16 367.4 T (}) 198 356.4 T 1 10 Q 0.52 0.1 (The) 198 336.73 B 7 9.5 Q 1.14 (ObjectStreamField) 218.16 336.73 P 1 10 Q 0.52 0.1 ( constr) 315.06 336.73 B 0.52 0.1 (uctor is used to cr) 345.87 336.73 B 0.52 0.1 (eate a new instance of an) 428.24 336.73 B 0.52 0.1 (ObjectStr) 198 324.33 B 0.52 0.1 (eamField. The ar) 239.4 324.33 B 0.52 0.1 (gument is the type of the serializable \336eld. For) 315.95 324.33 B 0.52 0.1 (example, Integer) 198 311.93 B 0.52 0.1 (.TYPE or java.lang.Hashtable.class. ObjectStr) 273.41 311.93 B 0.52 0.1 (eamField objects) 477.31 311.93 B 0.52 0.1 (ar) 198 299.53 B 0.52 0.1 (e used to specify the serializable \336elds of a class or to describe the \336elds) 206.97 299.53 B 0.52 0.1 (pr) 198 287.13 B 0.52 0.1 (esent in a str) 207.98 287.13 B 0.52 0.1 (eam.) 266.34 287.13 B 0.52 0.1 (The) 198 266.73 B 7 9.5 Q 1.14 (getName) 218.16 266.73 P 1 10 Q 0.52 0.1 ( method r) 258.06 266.73 B 0.52 0.1 (eturns the name of the serializable \336eld.) 303.04 266.73 B 0.52 0.1 (The) 198 246.33 B 7 9.5 Q 1.14 (getType) 218.16 246.33 P 1 10 Q 0.52 0.1 ( method r) 258.06 246.33 B 0.52 0.1 (eturns the type of the \336eld.) 303.04 246.33 B 0.52 0.1 (The) 198 225.93 B 7 9.5 Q 1.14 (toStr) 218.16 225.93 P 1.14 (ing) 246.66 225.93 P 1 10 Q 0.52 0.1 ( method r) 263.76 225.93 B 0.52 0.1 (eturns a printable r) 308.74 225.93 B 0.52 0.1 (epr) 396.84 225.93 B 0.52 0.1 (esentation with name and type.) 411.71 225.93 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.33/DEST FmPD2 97 706/M7.9.33953.Head1.41.The.ObjectStreamField.Class FmPA 97 706/I7.1.5079 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "33" 41 %%Page: "34" 42 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (34) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Object Serialization Speci\336cation) 265.69 108.7 B 1 F -0.58 0.09 (\321) 414.6 108.7 B 0 F -0.58 0.09 (JDK Playgr) 423.69 108.7 B -0.58 0.09 (ound Alpha, July 3, 1997) 466.59 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (4) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 15 Q 0 X 0 0 0 1 0 0 0 K (4.3) 67.47 638 T -0.94 (Inspecting Serializable Classes) 97.27 638 P 54 782/G7.5023 FmPA 1 10 Q 0.2 0.1 (The pr) 198 616.33 B 0.2 0.1 (ogram) 227.82 616.33 B 7 9.5 Q 0.45 (serialver) 259.93 616.33 P 1 10 Q 0.2 0.1 ( can be used to \336nd out if a class is serializable and to) 311.23 616.33 B 0.17 0.1 (get its) 198 603.93 B 7 9.5 Q 0.37 (serialVersionUID) 228.15 603.93 P 1 10 Q 0.17 0.1 (. When invoked with -show it puts up a simple user) 319.36 603.93 B 0.52 0.1 (interface. T) 198 591.53 B 0.52 0.1 (o \336nd out if a class is serializable and to \336nd out its) 248.22 591.53 B 7 9.5 Q 0.75 (serialVersionUID,) 198 579.13 P 1 10 Q 0.34 0.1 ( enter its full class name and pr) 294.9 579.13 B 0.34 0.1 (ess either the Enter or the) 438.28 579.13 B 0.52 0.1 (Show button. The string printed can be copied and pasted into the evolved) 198 566.73 B 0.1 (class.) 198 554.33 S 0.52 0.1 (When invoked on the command line with one or mor) 198 446.95 B 0.52 0.1 (e class names, serialver) 442.65 446.95 B 0.03 0.1 (prints the serialV) 198 434.55 B 0.03 0.1 (ersionUID for each class in a form suitable for copying into an) 274.83 434.55 B 0.52 0.1 (evolving class. When invoked with no ar) 198 422.15 B 0.52 0.1 (guments, it prints a usage line.) 385.21 422.15 B 0 15 Q (4.4) 67.47 388.41 T -0.94 (Str) 97.27 388.41 P -0.94 (eam Unique Identi\336ers) 116.17 388.41 P 54 532/G7.5139 FmPA 1 10 Q 0.52 0.1 (Each versioned class must identify the original class version for which it is) 198 366.75 B 0.52 0.1 (capable of writing str) 198 354.35 B 0.52 0.1 (eams and fr) 295.75 354.35 B 0.52 0.1 (om which it can r) 349.78 354.35 B 0.52 0.1 (ead. For example, a) 430.38 354.35 B 0.52 0.1 (versioned class must declar) 198 341.95 B 0.52 0.1 (e:) 323.69 341.95 B 7 9 Q (static final long SerialVersionUID = 3487495895819393L;) 218.16 326.21 T 1 10 Q 0.52 0.1 (The str) 198 306.55 B 0.52 0.1 (eam-unique identi\336er is a 64-bit hash of the class name, interface class) 229.73 306.55 B 0.52 0.1 (names, methods, and \336elds. The value must be declar) 198 294.15 B 0.52 0.1 (ed in all versions of a) 443.8 294.15 B 0.52 0.1 (class except the \336rst. It may be declar) 198 281.75 B 0.52 0.1 (ed in the original class but is not) 369.55 281.75 B 0.52 0.1 (r) 198 269.35 B 0.52 0.1 (equir) 201.87 269.35 B 0.52 0.1 (ed. The value is \336xed for all compatible classes. If the SUID is not) 225.47 269.35 B 0.52 0.1 (declar) 198 256.95 B 0.52 0.1 (ed for a class, the value defaults to the hash for that class. Serializable) 225.62 256.95 B 0.52 0.1 (classes do not need to anticipate versioning; however) 198 244.55 B 0.52 0.1 (, Externalizable classes) 441.71 244.55 B 0.52 0.1 (do. The initial version of an Externalizable class must output a str) 198 232.15 B 0.52 0.1 (eam data) 499.63 232.15 B 0.52 0.1 (format that is extensible in the futur) 198 219.75 B 0.52 0.1 (e. The intial version of the method) 363.46 219.75 B 7 9 Q 0.52 (readExternal) 198 207.35 P 1 10 Q 0.25 0.1 ( has to be able to r) 262.8 207.35 B 0.25 0.1 (ead the output format of all futur) 346.12 207.35 B 0.25 0.1 (e versions of) 497.71 207.35 B 0.52 0.1 (the method) 198 194.95 B 7 9 Q 1.08 (writeExternal) 253.28 194.95 P 1 10 Q 0.52 0.1 (.) 323.48 194.95 B 0.14 0.1 (The serialV) 198 174.55 B 0.14 0.1 (ersionUID is computed using the signatur) 248.39 174.55 B 0.14 0.1 (e of a str) 438.74 174.55 B 0.14 0.1 (eam of bytes that) 477.51 174.55 B 0.3 0.1 (r) 198 162.15 B 0.3 0.1 (e\337ect the class de\336nition. The National Institute of Standar) 201.87 162.15 B 0.3 0.1 (ds and T) 469.3 162.15 B 0.3 0.1 (echnology) 508.18 162.15 B 0.47 0.1 (\050NIST\051 Secur) 198 149.75 B 0.47 0.1 (e Hash Algorithm \050SHA-1\051 is used to compute a signatur) 256.17 149.75 B 0.47 0.1 (e for the) 516.7 149.75 B 0 0 0 1 0 0 0 K 198 466.95 541.99 538.6 C 0 X 0 0 0 1 0 0 0 K %%BeginBinary: 17009 545 111 341.99 69.65 0 199 467.95 BEGINBITMAPTRUECOLORc vjv D6Y1D6vJv C2Y1C2VJV Y1"t"J"t" D69349Y1D69349"t"J"t" C27038Y1C27038"t"J"t" FFDB6DY1FFDB6D"t"z"t" D69349Y193D69349"t"z"t" C27038Y170C27038"t"z"t" FFDB6DY1DBFFDB6D"t#z$t" D6934993Y.D64993D69349"t#z$t" C2703870Y.C23870C27038"t#Z$t" FFDB6DDBY.6DDBFFDB6D%r#z- D69393934993D6Y.4993D649494949494993939349%r#z- C27070703870C2Y.3870C238383838383870707038%r#z- FFDBDBDB6DDBFFY.6DDBFF6D6D6D6D6D6DDBDBDB6D&t"y"z& D69393934993CCD6CCY$93D693939349&t"y"z& C27070703870CCC2CCY$70C270707038&t"Y"z& FFDBDBDB6DDBCCCCY$DBFFDBDBDB6D&t"y"z#v#z#z& D69393934993D69349R-930000930000F930000S<93D693939349&t"y"z8v8z8z& C27070703870C27038R-7070F70S<70C270707038&t"y"z8v8z8z& FFDBDBDB6DDBFFDB6DR-DBDBFDBS9393939393939393939393O$93K930000R#93D693939349&t"y"z8#8z8'8%8z8z8z& C27070703870C27038QD707070>7070707070707070707070O$70K70R#70C270707038&t"y"z8#8z8'8%8z8z8z& FFDBDBDB6DDBFFDB6DQDDBDBDB>DBDBDBDBDBDBDBDBDBDBDBO$DBKDBR#DBFFDBDBDB6D&t%r&z8r58'8%81`5s8-`581z& D69393934993D6939393499393939349QD9393;0000000093939300009300009393000093939300000000939393939393939393939393939393930000000093939300009300009393593939300009393930000000093939393000093000093939393000093000093939393:939393000093000093939393000000009393939300000000930000009393000000009393930000930000QA93D693939349&t%r&z8r:$8"8#8$:%8'8%8#:$8"8#;$8$:%8"8s8$8"8%;$8"8%:%:";#:$8"8z& C27070703870C2707070387070707038QD707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070QA70C270707038&t%r&z8r:$8"8#8$:%8'8%8#:$8"8#;$8$:%8"8s8$8"8%;$8"8%:%:";#:$8"8z& FFDBDBDB6DDBFFDBDBDB6DDBDBDBDB6DQDDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBQADBFFDBDBDB6D&t1z8/8"8#8,8r18"8$r8,8%r8$8)r858,8"8z& D64949494993D6939393498383838383D69393939349QD930093939393930000939300009393939393939300009393000093939393000093939300939300009393000093939393000093939300009393000093939300930000939393930093000093930000935009300009393000093930000939300009393000093939393000093930000939393QA93D649494949&t1z9&8#8#8"8#8#8#8$8r8'8#8#8"8"8r8#8#8$9"8r8$9"8#8r9"8#8#8#8#8"8$8#8#8"8z& C23838383870C2707070386565656565C27070707038QD7070707070707070707070707070707070707070707070700070707070707070707070707070707070707070707070707070707070707070707070707070707070707070QA70C238383838&t1z9&8#8#8"8#8#8#8$8r8'8#8#8"8"8r8#8#8$9"8r8$9"8#8r9"8#8#8#8#8"8$8#8#8"8z& FF6D6D6D6DDBFFDBDBDB6DC4C4C4C4C4FFDBDBDBDB6DQDDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB00DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBQADBFF6D6D6D6D#w1z8&8#8#8&8'8$8r8'8#8#8%8(8#8#8$8#8r8$8#8#8(8#8#8#8#8&8$8#8#8"z# 000093D69393939349838383D6939393939349QE93000093939393939393009393939393939393939393939393939300009393939393930093939300939393939393939393939393939393939393939393939300939393939393939393939393939393939393939393939393939300QF9300008w1z:$8#8#9%8'8$8r8#8#8#8#9$9'8#8#8$8#8r8$8#8#9'8#8#8#8#8&8$8#8#9z 70C27070707038656565C2707070707038QE70707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070QF708w1z:$8#8#9%8'8$8r8#8#8#8#9$9'8#8#8$8#8r8$8#8#9'8#8#8#8#8&8$8#8#9z DBFFDBDBDBDB6DC4C4C4FFDBDBDBDBDB6DQEDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBQFDB8w1z8$8#8#8&8'8$8s(8#8#8&8'8#8#8$8#8r8$8#8$8'8#8#8#8#8&8$8#8#8z 93D69393939349838383D6939393939349QG9300939300009393939393939393939300000093939393000093009393930000939393939393930000939393939393939393939393939393939393939393930000939393939393939300009393939393939393939393939393QG938w1z9#<#8&8$;$8s8&<#8&:%8#8#8$8#8r8$8#8$:%8#8#<#8&8$8#8#8z 70C27070707038656565C2707070707038QG70707070707070707070707070707070707000707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070QG708w1z9#<#8&8$;$8s8&<#8&:%8#8#8$8#8r8$8#8$:%8#8#<#8&8$8#8#8z DBFFDBDBDBDB6DC4C4C4FFDBDBDBDBDB6DQGDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB00DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBQGDB8w1z8#8'8&8'8$8s8&8'8r8%8#8#8$8#8r8$8#8&8%8#8#8'8&8$8#8#8z 93D693939393934983D693939393939349QH9393939393939393939393939393939300009393939393930000939393939393939393930093939393939393939393939393939393939393939393930093939393939393939393939393939393939393939393939393QG938w1z8#8'8&8#8#8$8s:$8'8r9$8#8#8$8#8r8$8#8&9$8#8#8'8&8$8#8#8z 70C270707070703865C270707070707038QH7070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070QG708w1z8#8'8&8#8#8$8s:$8'8r9$8#8#8$8#8r8$8#8&9$8#8#8'8&8$8#8#8z DBFFDBDBDBDBDB6DC4FFDBDBDBDBDBDB6DQHDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBQGDB8w1z%8#8'8&8#8#8$8t8%8'8s8$8#8#8$8#8r8$8#8'8$8#8#8'8&8$8#8#8z 93D693939393934983D693939393939349QD9300009393939393939300939393939393939393939393939393939393939393930093939393939393939393939393939393939393939393939393939393939393939393939393009393939393009393939393939393QG938w1z8#8#8'8&8#8#8$8t8%8'8s8$8#8#8$8#8r8$8#8'8$8#8#8'8&8$8#8#8z 70C270707070703865C270707070707038QD707070707070707000707070707070707070707070707070707070707070700070707070707070707070707070707070707070707070707070707070707070707070707070007070707070007070707070707070QG708w1z8#8#8'8&8#8#8$8t8%8'8s8$8#8#8$8#8r8$8#8'8$8#8#8'8&8$8#8#8z DBFFDBDBDBDBDB6DC4FFDBDBDBDBDBDB6DQDDBDBDBDBDBDBDBDB00DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB00DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB00DBDBDBDBDB00DBDBDBDBDBDBDBDBQGDB8w)r"z08&8,8t8-8%`%8,8#8r8$8#8#`%858z 93D6939393939393D69349QE930000000093939393000000009393939393939393939393000000930000939393939393939300000000939393939393939393939393939300000000939393939393939393939393939393939393B00000093939393000000009393939300000000939393000000939300000000939393QG938w)r"z:%:$8&8$9"8#8t8&:$8%;%8$:%8#8r8$8#8#;%;%:%:$9#:$8z 70C2707070707070C27038QE70707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070QG708w)r"z:%:$8&8$9"8#8t8&:$8%;%8$:%8#8r8$8#8#;%;%:%:$9#:$8z DBFFDBDBDBDBDBDBFFDB6DQEDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBQGDB8w"y"z8z 93D69349T693R=938w"y"z8z 70C27038T670R=708w"y"z8z DBFFDB6DT6DBR=DB8w"y"z8z 93D69349T693R=938w"y"z8z 70C27038T670R=708w"y"z8z DBFFDB6DT6DBR=DB8w"y"z 93D69349Y'938w"y"z 70C27038Y'708w"y"z DBFFDB6DY'DB8w"y"z 93CC49CCY'938w"y"z 70CC38CCY'708w"y"z DBCC6DCCY'DB8z YC938z YC708z YCDB8z YC938z YC708z YCDB8z YC938z YC708z YCDB8$z% 939393Y9393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$D%J%J":"J%9"J%J$ 93939300000000800000000?0000P'0000000000T?00000000B9393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$E$J'J"J"J&C"J&J$ 939393C0C0C0700C0C0C0C000?00O FFO)00FFFFFFFFFFT400C0C0C0C0B9393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$J"9"D#:"=$:$9$F$:%8#:$9"C"9$9"9"9$A$:%:%B*8"9%:%J#;#9"=">$ 9393935000000C0C000000000000000000000000000C0000000000000000000000000000000000000000000FF00000000000000000000FF00FF00000000FF000000000000T/0000000000009393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$J&8%8%>#;&:)8&I&?&?&:%8%=";%8$=%8%J"=%9%<"B$ 939393O'00C0C0C00000C0C0C000C0C0C0C00000C0C0C00000C0C00000C0C00000C0C0C00000FFFFFF0000FFFFFF0000FFFFFF0000FFFF0000FFFFFF00FF00FFFF00FFFF00FFFF0000FFFFFFT'0000C0C00000C0C000009393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$E$J"J":">"9"B"F"C"C">"E%?"?"J%;";#8&;#>$ 939393000000CC0:00C0C0C0C0FFFFFFFFFF000000FFFFT/C0000000C000C0C000C0C00000C09393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$E$J$9$9$@"<$F$J$9&9$A$J%J%J$A$ 939393C0C0C0D000000C00000C00000C00000000000005000000FF00FF00FF0000000000006FFFF0000TCC0C00000400C0009393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$J%:$9$@#9%F%I%@%@%D"?"J"J"J$ 939393O'00C0C0C0C0C000C0C000C00000C0C0C0C0C0C0C000FFFFFF00FFFFFF00FFFFFF00FF<00T)C0C9393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$J"E#:"J"8"J$@"J%9"J%J#8#8(?$ 939393800C00000O/00008FF00FF005FF0000FF00?FF0000FFT5C00000C0C000C0C0C000C09393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$J%F'<,8%A"9'C&I'>'>'@#=&9$I#J&A%I$ 9393935C00000C0C000000000C0C0000000C000C0000000C0000000C0C0C0000000C000C0000000C0FF000000FF00FF000000FF00FF000000FF00FFFF00000000FFFF0000FFFFT'00000000C0C00000C09393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$D"=%9"9">%:"9t9$>":"9&8"9"9"9$9"GP9";R9"9P8"9"?"8%;%;"9"9"J%:"9":#;"9"@$ 939393C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFT,C0C0C0C0C0C0C0C0C0C09393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$J$J%J%J$ 939393P?0000FFO 000000FFC000000FFTL9393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$J#J$J$J$ 939393P?FFFFO!FFFFFFDFFFFFFTM9393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$J$ 939393Y=9393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$J$ 939393Y=9393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$J$ 939393Y=9393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$Jz:$ 939393X@G6F9393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$Jz<"J$ 939393P:UMCC6FK9393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$J"Jz8$ 939393P9CCV$KC09393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$JjJ$ 939393P8V#O"9393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$JzJ$ 939393P7V%C0O!9393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$Jz% 939393P8W$6FC09393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$J& 939393Y;E7C09393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$Jz"8$ 939393P:W C0E79393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$J$ 939393Y=9393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$J$ 939393Y=9393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$J$ 939393Y=9393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$J$ 939393Y=9393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$J$ 939393Y=9393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$J"@"J"J"D#8"H"="J"@"J"J$ 939393O"0000A00O8000000000000O!0000=00S%9393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$J%J":"J"A"H$J":"J":"9"8`J%:%<#:%9a9%<#<#9a:#:a8a;#:%:%9a8a;"<#;"H$ 939393=00000000A0000O=000000C0C0OM0000H000000=00000000000000000000000000000000000000000000000000000000000000000000000000009393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$J&E"J"J"H"J"J"J&J'8':#:'8&9':#<#:&:%9&:&:#:'8'8&9&:#<%J$ 939393<00C0C0C0C0C0LC0O8C0C0O"C$ 939393D00000000C0000000000000400000000C0000000000000000000C0000000=000000000000000000000000000000000000000000000000C00000000000000000C000000000000000000000000000C000000000000000000000C0000000000000000000C000005C000?C000C000C000C000C000C000C0C00000C000C0C0C000C000C0C0C000C0C000009393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$J";&9$;&H&9)=%:%J%8+8%<%;%=%8&E%:%8%=%8&9$;&D&9)=%:%JbJ#G#A#<#?#D#:%9#J#<#J$ 939393=0000C0C0C00000C0C000C0C0C00000C0C0C00000C0C0C000C0C0C000C0C00000C0C000?00C0C0C0C000C0C0C000C0C0C000C000C0C000C0C0C0C000C0C000C0C00000C0C0C00000C0C00000C0C00000C0C0C000C0C0C000C0C0C00000C0C000C0C0C00000C0C0C00000C0C0C000C0C0C000C0C00000C0C000<=00C000C000C000C000C000C00000000000C0900C000C0G9393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$J%A"="D#8#@"C#8#9";"J"E#I";"H#8#9"J"="@#8#@"C#8#9"Jr;b8%9*=&A&8#<#J*>%:%J"C$ 939393C0C0C00000C0C000C0C000C0?C000000000C000000000C0C000C0C000000000C00000000000C000C0?C0C0C0C0C000C000C00000000000000000IC09393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$J%9$C$J$>$J$?$J$J$:$C$F$>$Jb;r8&8'8a9%;#;%9a8a:#D#Ba9&9&:#<#J$ 939393=C0C000000000000000004000000C00000O%C00000000000H000000IC00000000000000000000000C00000O"C0C0C0C0C00000C0C0C0C000C0C0C0C000C0C0C0C0C000C000C0C0C0C0C000C0C0C0C00000C000C0H9393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$J":%A%J%>$J$=%J%J">$9%A%F%>$JrJ(J'r#J(J$ 939393?C0C0C0C0C000C0C0C04C0C0C0C0C0C000O%C0C00000C0C0C0G00C0C0C0A00C0C000C0C0C0C000C0C0C0C0C0C0C0C0C000O!C0#;"J#;#8#9#;"J#<#C#8#>"C$ 939393G00;C00000C000C00000C000O)C000LC00000C0C00000C0007C00000C000C00000C0;00C0O$0000C000800C0C00000C000C000@00C000C0C00000C0009393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$J&8&A'G&=%=%J%9+8$<%J'D%A#>%8&A'C&=%=%A'=&J'8'@'@'J%A'@'8'J%;$E$ 939393<00000000C0C0000000C0C0000000C000C0000000C0000000C0C00000C0G000000C0C00000C0C0000000C000C00000C00000006C0000000C000C00000C0C0C0000000C0C0000000C0C0000000C000C0000000C0000000C0C00000C0C000000000C000000000C0;C000000000C0C000000000C0C000000000C0C000000000C0;C00000C0C000000000C0C000000000C0C000000000C0;C00000C00000009393938$J$ 707070Y=7070708$J$ DBDBDBY=DBDBDB8$J%:$9";"9&8">#;$9":$:":#:"9"8"J$;#8&9#8":$<":"9"9"9&8"=":#:"9"C$:$9";"9&8":#;$9":$:":#:"9":%:"8&J%:%=":%:"=%="=":">#;"=%=":%:%:"="?"<#;'C$ 939393) 198 267.8 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (A value r) 378 267.8 B 0.47 0.09 (ead fr) 416.58 267.8 B 0.47 0.09 (om the str) 440.54 267.8 B 0.47 0.09 (eam used to) 482.36 267.8 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (indicate the length of an array) 378 256.4 B 0.47 0.09 (.) 501.68 256.4 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 198 393.4 558 393.4 2 L V 0 Z N 198 376.4 558 376.4 2 L V 0.5 H N 198 251.4 558 251.4 2 L V 0.3 H N 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.47/DEST FmPD2 97 642/M9.9.29227.Head1.53.Grammar.for.the.Stream.Format FmPA 97 642/I9.1.8286 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "47" 55 %%Page: "48" 56 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (48) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Object Serialization Speci\336cation) 265.69 108.7 B 1 F -0.58 0.09 (\321) 414.6 108.7 B 0 F -0.58 0.09 (JDK Playgr) 423.69 108.7 B -0.58 0.09 (ound Alpha, July 3, 1997) 466.59 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (6) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 8 11 Q 0 X 0 0 0 1 0 0 0 K (contents:) 216 640.67 T (content) 234 627.67 T (contents content) 234 614.67 T (content:) 216 595.67 T (object) 234 582.67 T (bloc) 234 569.67 T (kdata) 252.72 569.67 T (object:) 216 550.67 T (ne) 234 537.67 T (wObject) 244.22 537.67 T (ne) 234 524.67 T (wClass) 244.22 524.67 T (ne) 234 511.67 T (wArr) 244.22 511.67 T (ay) 266.67 511.67 T (ne) 234 498.67 T (wString) 244.22 498.67 T (ne) 234 485.67 T (wClassDesc) 244.22 485.67 T (pr) 234 472.67 T (e) 243.37 472.67 T (vObject) 248.09 472.67 T (nullRefer) 234 459.67 T (ence) 274.54 459.67 T (e) 234 446.67 T (xception) 238.66 446.67 T (TC_RESET) 234 433.67 T (ne) 216 414.67 T (wClass:) 226.22 414.67 T 7 F (TC_CLASS) 234 401.67 T 8 F ( classDesc ne) 286.8 401.67 T (wHandle) 346.51 401.67 T (classDesc:) 216 382.67 T (ne) 234 369.67 T (wClassDesc) 244.22 369.67 T (nullRefer) 234 356.67 T (ence) 274.54 356.67 T (\050ClassDesc\051pr) 234 343.67 T (e) 297.14 343.67 T (vObject) 301.86 343.67 T (// an object r) 354 343.67 T (equir) 410.12 343.67 T (ed to be of type ClassDesc) 432.94 343.67 T (superClassDesc:) 216 324.67 T (classDesc) 234 311.67 T (ne) 216 292.67 T (wClassDesc:) 226.22 292.67 T 7 F (TC_CLASSDESC) 234 279.67 T 8 F ( className serialV) 313.2 279.67 T (er) 396.92 279.67 T (sionUID) 405.97 279.67 T -0.26 (ne) 443.86 279.67 P -0.26 (wHandle classDescInfo) 454.08 279.67 P (classDescInfo:) 216 260.67 T (classDescFla) 234 247.67 T (gs \336elds classAnnotation superClassDesc) 293.16 247.67 T (className:) 216 228.67 T (\050utf\051) 234 215.67 T (serialV) 216 196.67 T (er) 246.56 196.67 T (sionUID:) 255.61 196.67 T (\050long\051) 234 183.67 T (classDescFla) 216 164.67 T (gs:) 275.16 164.67 T (\050byte\051) 234 151.67 T (// De\336ned in T) 354 151.67 T (erminal Symbols and Constants) 416.24 151.67 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.48/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "48" 56 %%Page: "49" 57 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 54 108.7 B -0.58 0.09 (6) 88.71 108.7 B -0.58 0.09 (:) 93.3 108.7 B 0 F -0.58 0.09 (Object Serialization Str) 97.4 108.7 B -0.58 0.09 (eam Pr) 184.06 108.7 B -0.58 0.09 (otocol) 209.6 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (49) 548.82 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (6) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 8 11 Q 0 X 0 0 0 1 0 0 0 K (\336elds:) 216 640.67 T (\050short\051 \336eldDesc[count]) 234 627.67 T (\336eldDesc:) 216 608.67 T (primitiveDesc) 234 595.67 T (objectDesc) 234 582.67 T (primitiveDesc:) 216 563.67 T (prim_typecode \336eldName) 234 550.67 T (objectDesc:) 216 531.67 T (obj_typecode \336eldName className1) 234 518.67 T (\336eldName:) 216 499.67 T (\050utf\051) 234 486.67 T (className1:) 216 467.67 T (\050String\051object) 234 454.67 T (// String containing the \336eld\325) 354 454.67 T (s type) 480.68 454.67 T (classAnnotation:) 216 435.67 T (endBloc) 234 422.67 T (kData) 269.83 422.67 T (contents endBloc) 234 409.67 T (kData) 309.24 409.67 T (// contents written by annotateClass) 354 409.67 T (prim_typecode:) 216 390.67 T 7 F (\324B\325) 234 377.67 T 8 F (// byte) 354 377.67 T 7 F (\324C\325) 234 364.67 T 8 F (// c) 354 364.67 T (har) 367.58 364.67 T 7 F (\324D\325) 234 351.67 T 8 F (// double) 354 351.67 T 7 F (\324F\325) 234 338.67 T 8 F (// \337oat) 354 338.67 T 7 F (\324I\325) 234 325.67 T 8 F (// inte) 354 325.67 T (g) 378.93 325.67 T (er) 384.32 325.67 T 7 F (\324J\325) 234 312.67 T 8 F (// long) 354 312.67 T 7 F (\324S\325) 234 299.67 T 8 F (// short) 354 299.67 T 7 F (\324Z\325) 234 286.67 T 8 F (// boolean) 354 286.67 T (obj_typecode:) 216 267.67 T 7 F (\324[\324) 234 254.67 T 8 F (// arr) 354 254.67 T (ay) 376.76 254.67 T 7 F (\324L\325) 234 241.67 T 8 F (// object) 354 241.67 T (ne) 216 222.67 T (wArr) 226.22 222.67 T (ay:) 248.67 222.67 T 7 F (TC_ARRAY) 234 209.67 T 8 F ( classDesc ne) 286.8 209.67 T (wHandle \050int\051 values[size]) 346.51 209.67 T (ne) 216 190.67 T (wObject:) 226.22 190.67 T 7 F (TC_OBJECT) 234 177.67 T 8 F ( classDesc ne) 293.4 177.67 T (wHandle classdata[]) 353.11 177.67 T (// data for eac) 445.7 177.67 T (h class) 507.56 177.67 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.49/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "49" 57 %%Page: "50" 58 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (50) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Object Serialization Speci\336cation) 265.69 108.7 B 1 F -0.58 0.09 (\321) 414.6 108.7 B 0 F -0.58 0.09 (JDK Playgr) 423.69 108.7 B -0.58 0.09 (ound Alpha, July 3, 1997) 466.59 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (6) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 8 11 Q 0 X 0 0 0 1 0 0 0 K (classdata:) 216 640.67 T (nowr) 234 627.67 T (class) 256.21 627.67 T (// SC_WRRD_METHOD & !classDescFla) 354 627.67 T (gs) 539.96 627.67 T (wr) 234 614.67 T (class objectAnnotation) 245.21 614.67 T (// SC_WRRD_METHOD & classDescFla) 354 614.67 T (gs) 536.29 614.67 T (nowr) 216 595.67 T (class:) 238.21 595.67 T (values) 234 582.67 T (// \336elds in or) 354 582.67 T (der of class descriptor) 409.52 582.67 T (wr) 216 563.67 T (class:) 227.21 563.67 T (nowr) 234 550.67 T (class) 256.21 550.67 T (objectAnnotation:) 216 531.67 T (endBloc) 234 518.67 T (kData) 269.83 518.67 T (contents endBloc) 234 505.67 T (kData) 309.24 505.67 T (// contents written by writeObject) 354 505.67 T (bloc) 216 486.67 T (kdata:) 234.72 486.67 T 7 F (TC_BLOCKDATA) 234 473.67 T 8 F ( \050unsigned byte\051 \050byte\051[size]) 313.2 473.67 T (bloc) 216 454.67 T (kdatalong:) 234.72 454.67 T 7 F (TC_BLOCKDATALONG) 234 441.67 T 8 F ( \050int\051 \050byte\051[size]) 339.6 441.67 T (endBloc) 216 422.67 T (kData) 251.83 422.67 T (:) 278.71 422.67 T 7 F (TC_ENDBLOCKDATA) 234 409.67 T 8 F (ne) 216 390.67 T (wString:) 226.22 390.67 T 7 F (TC_STRING) 234 377.67 T 8 F ( \050utf\051) 293.4 377.67 T (pr) 216 358.67 T (e) 225.37 358.67 T (vObject) 230.09 358.67 T (:) 264.3 358.67 T 7 F (TC_REFERENCE) 234 345.67 T 8 F ( \050int\051handle) 313.2 345.67 T (nullRefer) 216 326.67 T (ence) 256.54 326.67 T (:) 276.69 326.67 T 7 F (TC_NULL) 234 313.67 T 8 F (e) 216 294.67 T (xception:) 220.66 294.67 T 7 F (TC_EXCEPTION) 234 281.67 T 8 F (r) 319.8 281.67 T (eset) 323.67 281.67 T (\050Thr) 347.38 281.67 T (owable\051object) 366.44 281.67 T ( r) 428.77 281.67 T (eset) 435.39 281.67 T (ma) 216 262.67 T (gic:) 229.33 262.67 T 7 F (STREAM_MAGIC) 234 249.67 T 8 F (ver) 216 230.67 T (sion) 229.94 230.67 T (:) 248.27 230.67 T 7 F (STREAM_VERSION) 234 217.67 T 8 F (values:) 216 198.67 T (// The size and types ar) 354 198.67 T (e described by the) 455.34 198.67 T (// classDesc for the curr) 354 185.67 T (ent object) 459.92 185.67 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.50/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "50" 58 %%Page: "51" 59 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 54 108.7 B -0.58 0.09 (6) 88.71 108.7 B -0.58 0.09 (:) 93.3 108.7 B 0 F -0.58 0.09 (Object Serialization Str) 97.4 108.7 B -0.58 0.09 (eam Pr) 184.06 108.7 B -0.58 0.09 (otocol) 209.6 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (51) 548.82 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (6) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 8 11 Q 0 X 0 0 0 1 0 0 0 K (ne) 216 640.67 T (wHandle:) 226.22 640.67 T (// The ne) 354 640.67 T (xt number in sequence is assigned) 392.28 640.67 T -0.06 (// to the object being serialized or deserialized) 354 627.67 P (r) 216 601.67 T (eset:) 219.87 601.67 T (// The set of known objects is discar) 354 601.67 T (ded) 510.96 601.67 T (// so the objects of the e) 354 588.67 T (xception do not) 457.66 588.67 T (// o) 354 575.67 T (verlap with the pr) 368.26 575.67 T (e) 446.38 575.67 T (viously sent objects or) 451.1 575.67 T (// with objects that may be sent after the) 354 562.67 T (// e) 354 549.67 T (xception) 367.53 549.67 T 0 14 Q (6.3.2) 125 516.67 T 0.7 (T) 160.49 516.67 P 0.7 (erminal Symbols and Constants) 167.49 516.67 P 1 10 Q 0.52 0.1 (The following symbols in java.io.ObjectStr) 198 495.33 B 0.52 0.1 (eamConstants de\336ne the terminal) 391.08 495.33 B 0.52 0.1 (and constant values expected in a str) 198 482.93 B 0.52 0.1 (eam.) 367.02 482.93 B 7 9 Q (final static short STREAM_MAGIC = \050short\0510xaced;) 218.16 467.2 T (final static short STREAM_VERSION = 5;) 218.16 456.2 T (final static byte TC_NULL = \050byte\0510x70;) 218.16 445.2 T (final static byte TC_REFERENCE = \050byte\0510x71;) 218.16 434.2 T (final static byte TC_CLASSDESC = \050byte\0510x72;) 218.16 423.2 T (final static byte TC_OBJECT = \050byte\0510x73;) 218.16 412.2 T (final static byte TC_STRING = \050byte\0510x74;) 218.16 401.2 T (final static byte TC_ARRAY = \050byte\0510x75;) 218.16 390.2 T (final static byte TC_CLASS = \050byte\0510x76;) 218.16 379.2 T (final static byte TC_BLOCKDATA = \050byte\0510x77;) 218.16 368.2 T (final static byte TC_ENDBLOCKDATA = \050byte\0510x78;) 218.16 357.2 T (final static byte TC_RESET = \050byte\0510x79;) 218.16 346.2 T (final static byte TC_BLOCKDATALONG = \050byte\0510x7A;) 218.16 335.2 T (final static byte TC_EXCEPTION = \050byte\0510x7B;) 218.16 324.2 T (final static int) 218.16 313.2 T (baseWireHandle = 0x7E0000;) 309.96 313.2 T 1 10 Q 0.52 0.1 (The \337ag byte classDescFlags may include values of) 198 293.53 B 7 9 Q (final static byte SC_WRITE_METHOD = 0x01;) 218.16 277.8 T (final static byte SC_SERIALIZABLE = 0x02;) 218.16 266.8 T (final static byte SC_EXTERNALIZABLE = 0x04;) 218.16 255.8 T 1 10 Q 0.52 0.1 (The \337ag SC_WRITE_METHOD is set if the class writing the str) 198 236.13 B 0.52 0.1 (eam had a) 486 236.13 B 0.52 0.1 (writeObject method that may have written additional data to the str) 198 223.73 B 0.52 0.1 (eam. In) 509.68 223.73 B 0.52 0.1 (this case a TC_ENDBLOCKDA) 198 211.33 B 0.52 0.1 (T) 338.85 211.33 B 0.52 0.1 (A marker is always expected to terminate the) 344.34 211.33 B 0.52 0.1 (data for that class.) 198 198.93 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.51/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "51" 59 %%Page: "52" 60 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (52) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Object Serialization Speci\336cation) 265.69 108.7 B 1 F -0.58 0.09 (\321) 414.6 108.7 B 0 F -0.58 0.09 (JDK Playgr) 423.69 108.7 B -0.58 0.09 (ound Alpha, July 3, 1997) 466.59 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (6) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (The \337ag SC_SERIALIZABLE is set if the class that wr) 198 641.33 B 0.52 0.1 (ote the str) 442.28 641.33 B 0.52 0.1 (eam extended) 488.07 641.33 B 7 F 1.2 (java.io.Serializable) 198 628.93 P 1 F 0.52 0.1 ( but not) 318 628.93 B 7 F 1.2 (java.io.Externalizable) 357.32 628.93 P 1 F 0.52 0.1 (, the class) 489.32 628.93 B 0.52 0.1 (r) 198 616.53 B 0.52 0.1 (eading the str) 201.87 616.53 B 0.52 0.1 (eam must also extend) 264.64 616.53 B 7 F 1.2 (java.io.Serializabl) 367.34 616.53 P 1 F 0.52 0.1 ( and the default) 481.34 616.53 B 0.52 0.1 (serialization mechanism is to be used.) 198 604.13 B 0.52 0.1 (The \337ag SC_EXTERNALIZABLE is set if the class that wr) 198 583.73 B 0.52 0.1 (ote the str) 461.08 583.73 B 0.52 0.1 (eam) 506.87 583.73 B 0.52 0.1 (extended) 198 571.33 B 7 F 1.2 (java.io.Externalizable) 242.75 571.33 P 1 F 0.52 0.1 (, the class r) 374.75 571.33 B 0.52 0.1 (eading the data must also) 426.08 571.33 B 0.52 0.1 (extend Externalizable and the data will be r) 198 558.93 B 0.52 0.1 (ead using it\325s writeExternal and) 397.94 558.93 B 0.52 0.1 (r) 198 546.53 B 0.52 0.1 (eadExternal methods.) 201.87 546.53 B 0.1 (Example) 198 526.13 S 0.52 0.1 (Consider the case of an original class and two instances in a linked list:) 198 505.73 B 7 9 Q (class List implements java.io.Serializable {) 198 490 T (int value;) 218.16 479 T (List next;) 218.16 468 T (public static void main\050String[] args\051 {) 218.16 457 T (try {) 238.32 446 T (List list1 = new List\050\051;) 258.48 435 T (List list2 = new List\050\051;) 258.48 424 T (list1.value = 17;) 258.48 413 T (list1.next = list2;) 258.48 402 T (list2.value = 19;) 258.48 391 T (list2.next = null;) 258.48 380 T (ByteArrayOutputStream o = new ByteArrayOutputStream\050\051;) 258.48 358 T (ObjectOutputStream out = new ObjectOutputStream\050o\051;) 258.48 347 T (out.writeObject\050list1\051;) 258.48 336 T (out.writeObject\050list2\051;) 258.48 325 T (out.flush\050\051;) 258.48 314 T (...) 258.48 303 T (} catch \050Exception ex\051 {) 238.32 292 T (ex.printStackTrace\050\051;) 258.48 281 T (}) 238.32 270 T (}) 218.16 259 T (}) 198 248 T 1 10 Q 0.52 0.1 (The r) 198 228.33 B 0.52 0.1 (esulting str) 222.03 228.33 B 0.52 0.1 (eam contains:) 273.04 228.33 B 7 9 Q -1.06 (00: ac ed 00 05 73 72 00 04 4c 69 73 74 69 c8 8a 15 >....sr..Listi...<) 198 212.6 P -1.06 (10: 40 16 ae 68 02 00 02 49 00 05 76 61 6c 75 65 4c >Z......I..valueL<) 198 197.6 P -1.06 (20: 00 04 6e 65 78 74 74 00 06 4c 4c 69 73 74 3b 78 >..nextt..LList;x<) 198 182.6 P -1.06 (30: 70 00 00 00 11 73 71 00 7e 00 00 00 00 00 13 70 >p....sq.~......p<) 198 167.6 P (40: 71 00 7e 00 03 >q.~..<) 198 152.6 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.52/DEST FmPD2 198 677/M9.9.32785.Head1.53.Example FmPA 198 677/I9.1.9423 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "52" 60 %%Page: "53" 61 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Chapter) 54 108.7 B -0.58 0.09 (6) 88.71 108.7 B -0.58 0.09 (:) 93.3 108.7 B 0 F -0.58 0.09 (Object Serialization Str) 97.4 108.7 B -0.58 0.09 (eam Pr) 184.06 108.7 B -0.58 0.09 (otocol) 209.6 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (53) 548.82 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q (6) 528.56 680.03 T 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.53/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "53" 61 %%Page: "54" 62 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (54) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Object Serialization Speci\336cation) 265.69 108.7 B 1 F -0.58 0.09 (\321) 414.6 108.7 B 0 F -0.58 0.09 (JDK Playgr) 423.69 108.7 B -0.58 0.09 (ound Alpha, July 3, 1997) 466.59 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 20 Q 1 1 0 0 0 0 1 K (6) 73.44 680.03 T 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X 0 0 0 1 0 0 0 K V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.54/DEST FmPD2 [/Dest/L.protocoldoc/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "54" 62 %%Page: "55" 63 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (55) 548.82 108.7 B 0 0 0 1 0 0 0 K 198 500.18 558 500.18 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 540.76 521.07 558.36 524.92 R 0 X 1 1 0 0 0 0 1 K V 540.76 514.65 558.36 518.5 R V 540.76 508.42 558.36 512.27 R V 540.76 518.61 558.36 521.29 R 7 X V 540.76 512.4 558.36 514.87 R V 0 0 0 1 0 0 0 K 54 522.64 558 589.39 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 72 612 720 C 0 20 Q 0 X 0 0 0 1 0 0 0 K -2.5 (Security in Object Serialization) 198 509.31 P 54 653/G10.2527 FmPA 1 1 0 0 0 0 1 K 0 24 Q 1 1 0 0 0 0 1 K -3.12 (A) 519.82 508.64 S 0 0 0 1 0 0 0 K 0 13 Q 0 0 0 1 0 0 0 K 0.13 (T) 198 457.68 S 0.13 (opics:) 204.63 457.68 S 6 14 Q 0.14 (\245) 198 438.68 S 1 10 Q 0.1 (Overview) 210.6 438.68 S 6 14 Q 0.14 (\245) 198 420.28 S 1 10 Q 0.52 0.1 (Design Goals) 210.6 420.28 B 6 14 Q 0.14 (\245) 198 401.88 S 1 10 Q 0.52 0.1 (Using transient to Pr) 210.6 401.88 B 0.52 0.1 (otect Important System Resour) 305.65 401.88 B 0.52 0.1 (ces) 446.68 401.88 B 6 14 Q 0.14 (\245) 198 383.48 S 1 10 Q 0.52 0.1 (W) 210.6 383.48 B 0.52 0.1 (riting Class-Speci\336c Serializing Methods) 219.96 383.48 B 6 14 Q 0.14 (\245) 198 365.08 S 1 10 Q 0.52 0.1 (Encrypting a Bytestr) 210.6 365.08 B 0.52 0.1 (eam) 304.07 365.08 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.55/DEST FmPD2 [/Dest/F.securitydoc/DEST FmPD2 [/Rect[211 415 271 430]/Border[0 0 0]/Page 64/View[/XYZ null 97 617 FmDC exch pop null]/LNK FmPD [/Rect[211 397 460 412]/Border[0 0 0]/Page 65/View[/XYZ null 97 792 FmDC exch pop null]/LNK FmPD [/Rect[211 378 404 393]/Border[0 0 0]/Page 65/View[/XYZ null 97 629 FmDC exch pop null]/LNK FmPD [/Rect[211 360 323 375]/Border[0 0 0]/Page 65/View[/XYZ null 97 430 FmDC exch pop null]/LNK FmPD [/Rect[211 434 255 449]/Border[0 0 0]/Page 64/View[/XYZ null 97 792 FmDC exch pop null]/LNK FmPD [/Title(A)/Rect[45 488 567 598]/ARTICLE FmPD2 [/Title(A)/Rect[45 135 567 475]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "55" 63 %%Page: "56" 64 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (56) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Object Serialization Speci\336cation) 265.69 108.7 B 1 F -0.58 0.09 (\321) 414.6 108.7 B 0 F -0.58 0.09 (JDK Playgr) 423.69 108.7 B -0.58 0.09 (ound Alpha, July 3, 1997) 466.59 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 15 Q 0 X 0 0 0 1 0 0 0 K (A.1) 64.14 638 T (Overview) 97.27 638 T 54 782/G10.3435 FmPA 1 10 Q 0.52 0.1 (The object serialization system allows a bytestr) 198 616.33 B 0.52 0.1 (eam to be pr) 412.83 616.33 B 0.52 0.1 (oduced fr) 470.53 616.33 B 0.52 0.1 (om a) 514.49 616.33 B 0.37 0.1 (graph of objects, sent out of the Java envir) 198 603.93 B 0.37 0.1 (onment \050either saved to disk or sent) 390.51 603.93 B 0.52 0.1 (over the network\051 and then used to r) 198 591.53 B 0.52 0.1 (ecr) 367.25 591.53 B 0.52 0.1 (eate an equivalent set of new objects) 380.55 591.53 B 0.52 0.1 (with the same state.) 198 579.13 B 0.51 0.1 (What happens to the state of the objects outside of the envir) 198 558.73 B 0.51 0.1 (onment is outside) 473.24 558.73 B 0.52 0.1 (of the contr) 198 546.33 B 0.52 0.1 (ol of the Java system \050by de\336nition\051, and ther) 250.65 546.33 B 0.52 0.1 (efor) 458.29 546.33 B 0.52 0.1 (e is outside the) 476.04 546.33 B 0.52 0.1 (contr) 198 533.93 B 0.52 0.1 (ol of the security pr) 221.25 533.93 B 0.52 0.1 (ovided by the system. The question then arises, once) 311.42 533.93 B 0.52 0.1 (an object has been serialized, can the r) 198 521.53 B 0.52 0.1 (esulting byte array be examined and) 373.78 521.53 B 0.52 0.1 (changed, per) 198 509.13 B 0.52 0.1 (haps injecting vir) 256.83 509.13 B 0.52 0.1 (uses into Java pr) 336.02 509.13 B 0.52 0.1 (ograms? The intent of this) 412.29 509.13 B 0.52 0.1 (section is to addr) 198 496.73 B 0.52 0.1 (ess these security concerns.) 276.64 496.73 B 0 15 Q (A.2) 64.14 463 T -0.94 (Design Goals) 97.27 463 P 54 607/G10.2630 FmPA 1 10 Q 0.52 0.1 (The goal for object serialization is to be as simple as possible and yet still be) 198 441.33 B 0.08 0.1 (consistent with known security r) 198 428.93 B 0.08 0.1 (estrictions; the simpler the system is, the mor) 346.03 428.93 B 0.08 0.1 (e) 550.43 428.93 B 0.23 0.1 (likely it is to be secur) 198 416.53 B 0.23 0.1 (e. The following points summarize how security in object) 294.34 416.53 B 0.52 0.1 (serialization has been implemented:) 198 404.13 B 6 14 Q 0.14 (\245) 198 385.73 S 1 10 Q 0.52 0.1 (Only objects implementing the java.io.Serializable or java.io.Externalizable) 210.6 385.73 B 0.4 0.1 (interfaces can be serialized. ther) 210.6 373.33 B 0.4 0.1 (e ar) 356.47 373.33 B 0.4 0.1 (e mechanisms for not serializing certain) 373.33 373.33 B 0.52 0.1 (\336elds and certain classes.) 210.6 360.93 B 6 14 Q 0.14 (\245) 198 342.53 S 1 10 Q 0.38 0.1 (The serialization package cannot be used to r) 210.6 342.53 B 0.38 0.1 (ecr) 416.29 342.53 B 0.38 0.1 (eate the) 429.59 342.53 B 0 F 0.38 0.1 (same) 467.96 342.53 B 1 F 0.38 0.1 ( object, and no) 488.36 342.53 B 0.52 0.1 (object is ever overwritten by a deserialize operation. All that can be done) 210.6 330.13 B 0.52 0.1 (with the serialization package is to cr) 210.6 317.73 B 0.52 0.1 (eate) 381.42 317.73 B 0 F 0.52 0.1 (new) 402.78 317.73 B 1 F 0.52 0.1 ( objects, initialized in a) 419.75 317.73 B 0.52 0.1 (particular fashion.) 210.6 305.33 B 6 14 Q 0.14 (\245) 198 286.93 S 1 10 Q 0.52 0.1 (While deserializing an object might cause code for the class of the object to) 210.6 286.93 B 0.52 0.1 (be loaded, that code loading is pr) 210.6 274.53 B 0.52 0.1 (otected by all of the usual Java code) 364.16 274.53 B -0.01 0.1 (veri\336cation and security management guarantees. Classes loaded because of) 210.6 262.13 B 0.52 0.1 (deserialization ar) 210.6 249.73 B 0.52 0.1 (e no mor) 289.25 249.73 B 0.52 0.1 (e or less secur) 330.22 249.73 B 0.52 0.1 (e than those loaded in any other) 394.43 249.73 B 0.1 (fashion.) 210.6 237.33 S 6 14 Q 0.14 (\245) 198 218.93 S 1 10 Q 0.52 0.1 (Externalizable objects expose themselves to being overwritten because the) 210.6 218.93 B 0.52 0.1 (r) 210.6 206.53 B 0.52 0.1 (eadExternal method is public.) 214.47 206.53 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.56/DEST FmPD2 97 617/M10.9.19624.Head1A.A1.Design.Goals FmPA 97 617/I10.1.3416 FmPA 97 792/M10.9.16028.Head1A.A1.Overview FmPA 97 792/I10.1.3437 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "56" 64 %%Page: "57" 65 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Appendix) 54 108.7 B -0.58 0.09 (:) 96.61 108.7 B 0 F -0.58 0.09 (Security in Object Serialization) 100.7 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 F -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (57) 548.82 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 543.04 690.29 558 693.56 R 0 X 1 1 0 0 0 0 1 K V 543.04 684.84 558 688.11 R V 543.04 679.54 558 682.81 R V 543.04 688.2 558 690.48 R 7 X V 543.04 682.92 558 685.02 R V 0 0 0 1 0 0 0 K 0 15 Q 0 X 0 0 0 1 0 0 0 K (A.3) 64.14 638 T -0.94 (Using transient to Pr) 97.27 638 P -0.94 (otect Important System Resour) 224.61 638 P -0.94 (ces) 409.71 638 P 54 782/G10.2595 FmPA 1 10 Q 0.52 0.1 (Dir) 198 616.33 B 0.52 0.1 (ect handles to system r) 212.72 616.33 B 0.52 0.1 (esour) 317.69 616.33 B 0.52 0.1 (ces, such as \336le handles, ar) 342.48 616.33 B 0.52 0.1 (e the kind of) 465.83 616.33 B 0.52 0.1 (information that is r) 198 603.93 B 0.52 0.1 (elative to an addr) 290.17 603.93 B 0.52 0.1 (ess space and should not be written out) 370.87 603.93 B 0.45 0.1 (as part of an object's persistent state. Ther) 198 591.53 B 0.45 0.1 (efor) 389.17 591.53 B 0.45 0.1 (e, \336elds that contain this kind of) 406.91 591.53 B 0.52 0.1 (information should be declar) 198 579.13 B 0.52 0.1 (ed) 330.52 579.13 B 7 F 1.2 (transient) 344.74 579.13 P 1 F 0.52 0.1 (, which pr) 398.74 579.13 B 0.52 0.1 (events them fr) 445.39 579.13 B 0.52 0.1 (om being) 511.18 579.13 B 0.52 0.1 (serialized. Note that this is not a new or overloaded meaning for the) 198 566.73 B 7 F 1.2 (transient) 198 554.33 P 1 F 0.52 0.1 ( keywor) 252 554.33 B 0.52 0.1 (d.) 289.2 554.33 B 0.52 0.1 (If a r) 198 533.93 B 0.52 0.1 (esour) 220.11 533.93 B 0.52 0.1 (ce, like a \336le handle, was not declar) 244.9 533.93 B 0.52 0.1 (ed) 408.48 533.93 B 7 F 1.2 (transient) 422.7 533.93 P 1 F 0.52 0.1 (, the object could) 476.7 533.93 B 0.52 0.1 (be alter) 198 521.53 B 0.52 0.1 (ed while in its serialized state, enabling it to have impr) 231.87 521.53 B 0.52 0.1 (oper access to) 484.35 521.53 B 0.52 0.1 (r) 198 509.13 B 0.52 0.1 (esour) 201.87 509.13 B 0.52 0.1 (ces after it is deserialized.) 226.66 509.13 B 0 15 Q (A.4) 64.14 475.4 T -0.94 (W) 97.27 475.4 P -0.94 (riting Class-Speci\336c Serializing Methods) 111.13 475.4 P 54 619/G10.2605 FmPA 1 10 Q 0.09 0.1 (T) 198 453.73 B 0.09 0.1 (o guarantee that a deserialized object does not have state which violates some) 203.31 453.73 B 0.52 0.1 (set of invariants that need to be guaranteed, a class can de\336ne its own) 198 441.33 B 0.52 0.1 (serializing and deserializing methods. If ther) 198 428.93 B 0.52 0.1 (e is some set of invariants that) 402.88 428.93 B 0.36 0.1 (need to be maintained between the data members of a class, only the class can) 198 416.53 B 0.52 0.1 (know about these invariants, and it is up to the class writer to pr) 198 404.13 B 0.52 0.1 (ovide a) 495.79 404.13 B 0.52 0.1 (deserialization method that checks these invariants.) 198 391.73 B 0.39 0.1 (This is important even if you ar) 198 371.33 B 0.39 0.1 (e not worried about security; it is possible that) 342.42 371.33 B 0.52 0.1 (disk \336les can be corr) 198 358.93 B 0.52 0.1 (upted and serialized data be invalid. So checking such) 292.29 358.93 B 0.52 0.1 (invariants is mor) 198 346.53 B 0.52 0.1 (e than just a security measur) 275.51 346.53 B 0.52 0.1 (e; it is a validity measur) 406.91 346.53 B 0.52 0.1 (e.) 517.18 346.53 B 0.52 0.1 (However) 198 334.13 B 0.52 0.1 (, the only place it can be done is in the code for the particular class,) 239.26 334.13 B 0.52 0.1 (since ther) 198 321.73 B 0.52 0.1 (e is no way the serialization package can determine what invariants) 241.86 321.73 B 0.52 0.1 (should be maintained or checked.) 198 309.33 B 0 15 Q (A.5) 64.14 275.6 T -0.94 (Encrypting a Bytestr) 97.27 275.6 P -0.94 (eam) 222.9 275.6 P 54 420/G10.2492 FmPA 1 10 Q 0.52 0.1 (Another way of pr) 198 253.93 B 0.52 0.1 (otecting a bytestr) 283.11 253.93 B 0.52 0.1 (eam outside the Java virtual machine is to) 361.86 253.93 B 0.52 0.1 (encrypt the str) 198 241.53 B 0.52 0.1 (eam pr) 264.51 241.53 B 0.52 0.1 (oduced by the serialization package. Encrypting the) 296.53 241.53 B 0.52 0.1 (bytestr) 198 229.13 B 0.52 0.1 (eam pr) 229.11 229.13 B 0.52 0.1 (events the decoding and the r) 261.13 229.13 B 0.52 0.1 (eading of a serialized object\325s) 397.32 229.13 B 0.52 0.1 (private state.) 198 216.73 B 0.52 0.1 (The implementation allows encryption, both by allowing the classes to have) 198 196.33 B 0.52 0.1 (their own special methods for serialization/deserialization and by using the) 198 183.93 B 0.52 0.1 (str) 198 171.53 B 0.52 0.1 (eam abstraction for serialization, so the output can be fed into some other) 209.57 171.53 B 0.52 0.1 (str) 198 159.13 B 0.52 0.1 (eam or \336lter) 209.57 159.13 B 0.52 0.1 (.) 265.06 159.13 B 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.57/DEST FmPD2 97 792/M10.9.10922.Head1A.A2.Using.transient.to.Protect.Important.System.Resources FmPA 97 792/I10.1.3421 FmPA 97 629/M10.9.28088.Head1A.A3.Writing.ClassSpecific.Serializing.Methods FmPA 97 629/I10.1.3426 FmPA 97 430/M10.9.21233.Head1A.A4.Encrypting.a.Byte.Stream FmPA 97 430/I10.1.3431 FmPA [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "57" 65 %%Page: "58" 66 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (58) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Object Serialization Speci\336cation) 265.69 108.7 B 1 F -0.58 0.09 (\321) 414.6 108.7 B 0 F -0.58 0.09 (JDK Playgr) 423.69 108.7 B -0.58 0.09 (ound Alpha, July 3, 1997) 466.59 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.58/DEST FmPD2 [/Dest/L.securitydoc/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "58" 66 %%Page: "59" 67 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (59) 548.82 108.7 B 0 0 0 1 0 0 0 K 198 500.18 558 500.18 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 540.76 521.07 558.36 524.92 R 0 X 1 1 0 0 0 0 1 K V 540.76 514.65 558.36 518.5 R V 540.76 508.42 558.36 512.27 R V 540.76 518.61 558.36 521.29 R 7 X V 540.76 512.4 558.36 514.87 R V 0 0 0 1 0 0 0 K 54 522.64 558 589.39 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 72 612 720 C 0 20 Q 0 X 0 0 0 1 0 0 0 K -2.5 (Exceptions In Object Serialization) 198 509.31 P 54 653/G11.3601 FmPA 1 1 0 0 0 0 1 K 0 24 Q 1 1 0 0 0 0 1 K -3.12 (B) 522.48 508.64 S 0 0 0 1 0 0 0 K 1 10 Q 0 0 0 1 0 0 0 K 0.52 0.1 (All exceptions thr) 198 459.68 B 0.52 0.1 (own by serialization classes ar) 279.17 459.68 B 0.52 0.1 (e subclasses of) 417.85 459.68 B 7 9 Q 1.08 (ObjectStreamException) 198 447.28 P 1 10 Q 0.52 0.1 ( which is a subclass of) 311.4 447.28 B 7 9 Q 1.08 (IOException) 416.82 447.28 P 1 10 Q 0.52 0.1 (.) 476.22 447.28 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 5 9 Q 0.09 (Exception) 198 419.94 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (Description) 342 419.94 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 7 F (ObjectStreamException) 198 402.94 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 F 0.47 0.09 (Super) 342 402.94 B 0.47 0.09 (class of all serialization exceptions.) 365.71 402.94 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 7 F (InvalidClassException) 198 385.94 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 F 0.47 0.09 (Thr) 342 385.94 B 0.47 0.09 (own when a class cannot be used to r) 356.42 385.94 B 0.47 0.09 (estor) 511 385.94 B 0.47 0.09 (e) 530.82 385.94 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (objects for any of these r) 342 374.54 B 0.47 0.09 (easons:) 443.1 374.54 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 6 14 Q 0.14 (\245) 342 363.14 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 9 Q 0.23 0.09 (The class does not match the serial version of) 351 363.14 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (the class in the str) 351 353.14 B 0.47 0.09 (eam.) 425.38 353.14 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 6 14 Q 0.14 (\245) 342 343.14 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 9 Q 0.47 0.09 (The class contains \336elds with invalid) 351 343.14 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (primitive data types.) 351 333.14 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 6 14 Q 0.14 (\245) 342 323.14 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 9 Q 0.47 0.09 (The class is not public; the class does not) 351 323.14 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (have an accessible no-ar) 351 313.14 B 0.47 0.09 (g constr) 450.19 313.14 B 0.47 0.09 (uctor) 483.01 313.14 B 0.47 0.09 (.) 503.62 313.14 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 7 F (NotSerializableException) 198 296.14 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 F 0.47 0.09 (Thr) 342 296.14 B 0.47 0.09 (own by a) 356.42 296.14 B 7 F 1.08 (readObject) 397.52 296.14 P 1 F 0.47 0.09 ( or) 451.52 296.14 B 7 F 1.08 (writeObject) 465.79 296.14 P 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 F 0.47 0.09 (method to terminate serialization or) 342 284.74 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (deserialization.) 342 273.34 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 7 F (StreamCorruptedException) 198 256.34 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 F 0.47 0.09 (Thr) 342 256.34 B 0.47 0.09 (own when the str) 356.42 256.34 B 0.47 0.09 (eam header is invalid or) 428.59 256.34 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (when contr) 342 244.94 B 0.47 0.09 (ol information in the str) 388.39 244.94 B 0.47 0.09 (eam is not) 487 244.94 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (found or found to be invalid.) 342 233.54 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 7 F (NotActiveException) 198 216.54 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 F 0.47 0.09 (Thr) 342 216.54 B 0.47 0.09 (own if) 356.42 216.54 B 7 F 1.08 (registerValidation) 385.76 216.54 P 1 F 0.47 0.09 ( is not called) 482.96 216.54 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (during) 342 205.14 B 7 F 1.08 (readObject) 372.69 205.14 P 1 F 0.47 0.09 (.) 426.69 205.14 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 198 431.94 549 431.94 2 L V 0.3 H 0 Z N 198 414.94 549 414.94 2 L V 0.5 H N 198 200.14 549 200.14 2 L V 0.3 H N 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.59/DEST FmPD2 [/Dest/F.exceptionsdoc/DEST FmPD2 467 667/M11.9.16028.Head1A.A1.Overview FmPA 467 667/I11.1.3513 FmPA [/Title(A)/Rect[45 488 567 598]/ARTICLE FmPD2 [/Title(A)/Rect[45 135 567 475]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "59" 67 %%Page: "60" 68 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (60) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Object Serialization Speci\336cation) 265.69 108.7 B 1 F -0.58 0.09 (\321) 414.6 108.7 B 0 F -0.58 0.09 (JDK Playgr) 423.69 108.7 B -0.58 0.09 (ound Alpha, July 3, 1997) 466.59 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 7 F 0 X 0 0 0 1 0 0 0 K (InvalidObjectException) 198 619 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 F 0.27 0.09 (Thr) 342 619 B 0.27 0.09 (own when a r) 356.42 619 B 0.27 0.09 (estor) 412.91 619 B 0.27 0.09 (ed object cannot be made) 432.73 619 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (valid.) 342 607.6 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 7 F (OptionalDataException) 198 590.6 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 F 0.47 0.09 (Thr) 342 590.6 B 0.47 0.09 (own by r) 356.42 590.6 B 0.47 0.09 (eadObject when ther) 393.61 590.6 B 0.47 0.09 (e is primitive) 478.63 590.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (data in the str) 342 579.2 B 0.47 0.09 (eam and an object is expected.) 399.42 579.2 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (The length \336eld of the exception indicates the) 342 567.8 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K -0.1 0.09 (number of bytes that ar) 342 556.4 B -0.1 0.09 (e available in the curr) 436.58 556.4 B -0.1 0.09 (ent) 524.01 556.4 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (block.) 342 545 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 7 F (WriteAbortedException) 198 528 T 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 F 0.47 0.09 (Thr) 342 528 B 0.47 0.09 (own when r) 356.42 528 B 0.47 0.09 (eading a str) 406.1 528 B 0.47 0.09 (eam terminated by) 454.43 528 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (an exception that occurr) 342 516.6 B 0.47 0.09 (ed while the str) 441.31 516.6 B 0.47 0.09 (eam) 505.64 516.6 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.47 0.09 (was being written.) 342 505.2 B 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 5 F 0.09 (Exception) 198 636 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0.09 (Description) 342 636 S 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 198 648 549 648 2 L V 0 Z N 198 631 549 631 2 L V 0.5 H N 198 500.2 549 500.2 2 L V 0.3 H N 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.60/DEST FmPD2 [/Dest/L.exceptionsdoc/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "60" 68 %%Page: "61" 69 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 527.45 108.7 B -0.58 0.09 (61) 548.82 108.7 B 0 0 0 1 0 0 0 K 198 500.18 558 500.18 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 540.76 521.07 558.36 524.92 R 0 X 1 1 0 0 0 0 1 K V 540.76 514.65 558.36 518.5 R V 540.76 508.42 558.36 512.27 R V 540.76 518.61 558.36 521.29 R 7 X V 540.76 512.4 558.36 514.87 R V 0 0 0 1 0 0 0 K 54 522.64 558 589.39 C 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 72 612 720 C 0 20 Q 0 X 0 0 0 1 0 0 0 K -2.5 (Example of Serializable Fields) 198 509.31 P 54 653/G12.3601 FmPA 1 1 0 0 0 0 1 K 0 24 Q 1 1 0 0 0 0 1 K -3.12 (C) 521.14 508.64 S 0 0 0 1 0 0 0 K 0 13 Q 0 0 0 1 0 0 0 K 0.13 (T) 198 457.68 S 0.13 (opics:) 204.63 457.68 S 6 14 Q 0.14 (\245) 198 438.68 S 1 10 Q 0.52 0.1 (Example Alternate Implementation of java.lang.File) 210.6 438.68 B 0 15 Q (C.1) 64.96 384.54 T -0.94 (Example Alternate Implementation of java.lang.File) 97.27 384.54 P 54 529/G12.4324 FmPA 1 10 Q 0.52 0.1 (Her) 198 362.88 B 0.52 0.1 (e\325s a brief example of how an existing class could be speci\336ed and) 215.18 362.88 B 0.52 0.1 (implemented to inter) 198 350.48 B 0.52 0.1 (-operate with the existing implementation but without) 294.36 350.48 B 0.52 0.1 (r) 198 338.08 B 0.52 0.1 (equiring the same assumptions about the r) 201.87 338.08 B 0.52 0.1 (epr) 397.35 338.08 B 0.52 0.1 (esentation of the \336le name as a) 412.22 338.08 B 0.1 (String.) 198 325.68 S 0.52 0.1 (The system class java.lang.File r) 198 305.28 B 0.52 0.1 (epr) 344.09 305.28 B 0.52 0.1 (esents a \336lename and has methods for) 358.96 305.28 B -0.06 0.1 (parsing, manipulating \336les and dir) 198 292.88 B -0.06 0.1 (ectories by name. It has a single private \336eld) 354.92 292.88 B 0.52 0.1 (that contains the curr) 198 280.48 B 0.52 0.1 (ent \336le name. The semantics of the methods that parse) 295.61 280.48 B 0.34 0.1 (paths depend on the curr) 198 268.08 B 0.34 0.1 (ent path separator which is held in a static \336eld. This) 313.05 268.08 B 0.52 0.1 (path separator is part of the persistent state of a \336le so that \336le name can be) 198 255.68 B 0.52 0.1 (adjusted when r) 198 243.28 B 0.52 0.1 (ead.) 271.96 243.28 B 0.52 0.1 (The persistent state of a File object is de\336ned as the persistent \336elds and the) 198 222.88 B 0.52 0.1 (sequence of data values for the \336le. In this case ther) 198 210.48 B 0.52 0.1 (e is one of each.) 435.27 210.48 B 7 9 Q (Serializable Fields:) 198 194.74 T (String path;) 218.16 179.74 T (// path name with embedded separators) 298.8 179.74 T (Serializable Data:) 198 164.74 T (char) 218.16 149.74 T (// path name separator for path name) 298.8 149.74 T 34 414.94 36 466.34 R V 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.61/DEST FmPD2 [/Dest/F.examplesdoc/DEST FmPD2 430 667/M12.9.16028.Head1A.A1.Overview FmPA 430 667/I12.1.3513 FmPA 97 539/M12.9.41279.Head1.21.Specifing.Persistent.Attributes.and.Values.for.a.Class FmPA 97 539/I12.1.4322 FmPA 97 539/M12.9.34720.Head1.28.Example.for.javalangFile FmPA 97 539/I12.1.4323 FmPA [/Rect[211 434 446 449]/Border[0 0 0]/Page 69/View[/XYZ null 97 539 FmDC exch pop null]/LNK FmPD [/Title(A)/Rect[45 488 567 598]/ARTICLE FmPD2 [/Title(A)/Rect[45 135 567 475]/ARTICLE FmPD2 FMENDPAGE %%EndPage: "61" 69 %%Page: "62" 70 612 792 0 FMBEGINPAGE [0 0 0 1 0 0 0] [ 0 1 1 0 1 0 0] [ 1 0 1 0 0 1 0] [ 1 1 0 0 0 0 1] [ 1 0 0 0 0 1 1] [ 0 1 0 0 1 0 1] [ 0 0 1 0 1 1 0] 7 FrameSetSepColors FrameNoSep 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 1 9 Q 0 X 1 1 0 0 0 0 1 K -0.58 0.09 (Page) 54 108.7 B -0.58 0.09 (62) 75.37 108.7 B 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 F -0.58 0.09 (Java\252 Object Serialization Speci\336cation) 265.69 108.7 B 1 F -0.58 0.09 (\321) 414.6 108.7 B 0 F -0.58 0.09 (JDK Playgr) 423.69 108.7 B -0.58 0.09 (ound Alpha, July 3, 1997) 466.59 108.7 B 0 0 0 1 0 0 0 K 558 675 54 675 2 L 0.3 H 2 Z 0 0 0 1 0 0 0 K N 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 1 1 0 0 0 0 1 K 0 0 0 1 0 0 0 K 198 83.74 393.76 101.24 R 7 X V 1 1 0 0 0 0 1 K 54 690.23 68.96 693.5 R 0 X 1 1 0 0 0 0 1 K V 54 684.77 68.96 688.05 R V 54 679.47 68.96 682.75 R V 54 688.14 68.96 690.41 R 7 X V 54 682.86 68.96 684.96 R V 0 0 0 1 0 0 0 K 1 10 Q 0 X 0 0 0 1 0 0 0 K 0.52 0.1 (An alternate implementation might be de\336ned as follows:) 198 641.33 B 7 9 Q (class File implements java.io.Serializable {) 198 625.6 T (...) 218.16 614.6 T (private String[] pathcomponents;) 218.16 603.6 T (...) 218.16 592.6 T (private void writeObject\050ObjectOutputStream s\051) 218.16 581.6 T (throws IOException) 238.32 570.6 T ({) 218.16 559.6 T (ObjectOutputStream.PutField fields = s.putFields\050\051;) 238.32 548.6 T (StringBuffer str = new StringBuffer\050\051;) 238.32 537.6 T (for\050int i = 0; i < pathcomponents; i++\051 {) 238.32 526.6 T (str.append\050separator\051;) 258.48 515.6 T (str.append\050pathcomponents[i]\051;) 258.48 504.6 T (}) 238.32 493.6 T (fields.put\050\322path\323, str.toString\050\051\051;) 238.32 482.6 T (s.writeFields\050\051;) 238.32 471.6 T (s.writeChar\050separatorChar\051; // Add the separator character) 238.32 460.6 T (}) 218.16 449.6 T (...) 218.16 438.6 T (private void readObject\050ObjectInputStream s\051) 218.16 423.6 T (throws IOException) 238.32 412.6 T ({) 218.16 401.6 T (ObjectInputStream.GetField fields = s.readFields\050\051;) 238.32 390.6 T (String path = \050String\051fields.get\050\322path\323, null\051;) 238.32 379.6 T (...) 238.32 368.6 T -0.48 (char sep = s.readChar\050\051; // read the previous separator char) 238.32 357.6 P (// parse path into components using the separator) 238.32 342.6 T (// and store into pathcomponents array.) 238.32 331.6 T (}) 218.16 320.6 T (// Define persistent fields with the ObjectStreamClass) 218.16 298.6 T (static final ObjectStreamField[] serialPersistentFields = {) 218.16 287.6 T (new ObjectStreamField\050\322path\323, String.class\051) 258.48 276.6 T (};) 218.16 261.6 T (}) 198 239.6 T 0 0 0 1 0 0 0 K [/CropBox[0 72 FmDC 612 720 FmDC FmBx]/PAGE FmPD [/Dest/P.62/DEST FmPD2 [/Dest/L.examplesdoc/DEST FmPD2 [/Title(A)/Rect[45 135 567 657]/ARTICLE FmPD2 [/Page 1/View[/XYZ null 198 763 FmDC exch pop null]/Title(Java\222 Object Serialization Specification)/Count 10/OUT FmPD [/Page 7/View[/XYZ null 198 667 FmDC exch pop null]/Title(Change History)/OUT FmPD [/Page 9/View[/XYZ null 198 667 FmDC exch pop null]/Title(System Architecture)/Count -13/OUT FmPD [/Page 10/View[/XYZ null 97 792 FmDC exch pop null]/Title(1.1 Overview)/OUT FmPD [/Page 10/View[/XYZ null 97 424 FmDC exch pop null]/Title(1.2 Writing to an Object Stream)/OUT FmPD [/Page 11/View[/XYZ null 97 420 FmDC exch pop null]/Title(1.3 Reading from an Object Stream)/OUT FmPD [/Page 12/View[/XYZ null 97 552 FmDC exch pop null]/Title(1.4 Object Streams as Containers)/OUT FmPD [/Page 13/View[/XYZ null 97 654 FmDC exch pop null]/Title(1.5 Specifying Serializable Persistent Fields and ...)/OUT FmPD [/Page 14/View[/XYZ null 97 613 FmDC exch pop null]/Title(1.6 Defining Serializable Persistent Fields for a ...)/OUT FmPD [/Page 15/View[/XYZ null 97 792 FmDC exch pop null]/Title(1.7 Accessing Serializable Fields of a Class)/OUT FmPD [/Page 15/View[/XYZ null 97 497 FmDC exch pop null]/Title(1.8 The ObjectOutput Interface)/OUT FmPD [/Page 16/View[/XYZ null 97 660 FmDC exch pop null]/Title(1.9 The ObjectInput Interface)/OUT FmPD [/Page 17/View[/XYZ null 97 792 FmDC exch pop null]/Title(1.10 The Serializable Interface)/OUT FmPD [/Page 17/View[/XYZ null 97 393 FmDC exch pop null]/Title(1.11 The Externalizable Interface)/OUT FmPD [/Page 18/View[/XYZ null 97 449 FmDC exch pop null]/Title(1.12 The Replaceable & Resolvable Interfaces)/OUT FmPD [/Page 19/View[/XYZ null 97 406 FmDC exch pop null]/Title(1.13 Protecting Sensitive Information)/OUT FmPD [/Page 21/View[/XYZ null 198 667 FmDC exch pop null]/Title(Object Output Classes)/Count -4/OUT FmPD [/Page 21/View[/XYZ null 97 504 FmDC exch pop null]/Title(2.1 The ObjectOutputStream Class)/OUT FmPD [/Page 28/View[/XYZ null 97 792 FmDC exch pop null]/Title(2.2 The ObjectOutputStream.PutField Class)/OUT FmPD [/Page 28/View[/XYZ null 97 662 FmDC exch pop null]/Title(2.3 The writeObject Method)/OUT FmPD [/Page 28/View[/XYZ null 97 428 FmDC exch pop null]/Title(2.4 The writeExternal Method)/OUT FmPD [/Page 29/View[/XYZ null 198 667 FmDC exch pop null]/Title(Object Input Classes)/Count -5/OUT FmPD [/Page 29/View[/XYZ null 97 485 FmDC exch pop null]/Title(3.1 The ObjectInputStream Class)/OUT FmPD [/Page 36/View[/XYZ null 97 556 FmDC exch pop null]/Title(3.2 The ObjectInputStream.GetField Class)/OUT FmPD [/Page 37/View[/XYZ null 97 712 FmDC exch pop null]/Title(3.3 The ObjectInputValidation Interface)/OUT FmPD [/Page 37/View[/XYZ null 97 526 FmDC exch pop null]/Title(3.4 The readObject Method)/OUT FmPD [/Page 38/View[/XYZ null 97 514 FmDC exch pop null]/Title(3.5 The readExternal Method)/OUT FmPD [/Page 39/View[/XYZ null 198 667 FmDC exch pop null]/Title(Class Descriptors)/Count -4/OUT FmPD [/Page 39/View[/XYZ null 97 504 FmDC exch pop null]/Title(4.1 The ObjectStreamClass Class)/OUT FmPD [/Page 41/View[/XYZ null 97 706 FmDC exch pop null]/Title(4.2 The ObjectStreamField Class)/OUT FmPD [/Page 42/View[/XYZ null 97 792 FmDC exch pop null]/Title(4.3 Inspecting Serializable Classes)/OUT FmPD [/Page 42/View[/XYZ null 97 542 FmDC exch pop null]/Title(4.4 Stream Unique Identifiers)/OUT FmPD [/Page 45/View[/XYZ null 198 667 FmDC exch pop null]/Title(Versioning of Serializable Objects)/Count -5/OUT FmPD [/Page 45/View[/XYZ null 97 437 FmDC exch pop null]/Title(5.1 Overview)/OUT FmPD [/Page 46/View[/XYZ null 97 667 FmDC exch pop null]/Title(5.2 Goals)/OUT FmPD [/Page 46/View[/XYZ null 97 398 FmDC exch pop null]/Title(5.3 Assumptions)/OUT FmPD [/Page 47/View[/XYZ null 97 675 FmDC exch pop null]/Title(5.4 Who\220s Responsible for Versioning of Streams)/OUT FmPD [/Page 48/View[/XYZ null 97 374 FmDC exch pop null]/Title(5.5 Compatible Java Type Evolution)/OUT FmPD [/Page 53/View[/XYZ null 198 667 FmDC exch pop null]/Title(Object Serialization Stream Protocol)/Count -2/OUT FmPD [/Page 53/View[/XYZ null 97 489 FmDC exch pop null]/Title(6.1 Overview)/OUT FmPD [/Page 53/View[/XYZ null 97 364 FmDC exch pop null]/Title(6.2 Stream Elements)/OUT FmPD [/Page 63/View[/XYZ null 198 667 FmDC exch pop null]/Title(Security in Object Serialization)/Count -5/OUT FmPD [/Page 64/View[/XYZ null 97 792 FmDC exch pop null]/Title(A.1 Overview)/OUT FmPD [/Page 64/View[/XYZ null 97 617 FmDC exch pop null]/Title(A.2 Design Goals)/OUT FmPD [/Page 65/View[/XYZ null 97 792 FmDC exch pop null]/Title(A.3 Using transient to Protect Important System Re...)/OUT FmPD [/Page 65/View[/XYZ null 97 629 FmDC exch pop null]/Title(A.4 Writing Class-Specific Serializing Methods)/OUT FmPD [/Page 65/View[/XYZ null 97 430 FmDC exch pop null]/Title(A.5 Encrypting a Bytestream)/OUT FmPD [/Page 67/View[/XYZ null 198 667 FmDC exch pop null]/Title(Exceptions In Object Serialization)/OUT FmPD [/Page 69/View[/XYZ null 198 667 FmDC exch pop null]/Title(Example of Serializable Fields)/Count -1/OUT FmPD [/Page 69/View[/XYZ null 97 539 FmDC exch pop null]/Title(C.1 Example Alternate Implementation of java.lang....)/OUT FmPD FMENDPAGE %%EndPage: "62" 70 %%Trailer %%BoundingBox: 0 0 612 792 %%PageOrder: Ascend %%Pages: 70 %%DocumentFonts: Palatino-Italic %%+ Palatino-Roman %%+ Times-Roman %%+ Helvetica %%+ Helvetica-Bold %%+ Palatino-Bold %%+ Times-Bold %%+ Courier %%+ Times-Italic %%EOF .