7"jnlp/sample/servlet/JarDiffHandlerjava/lang/ObjectBUF_SIZEI ConstantValueJARDIFF_MIMETYPELjava/lang/String; application/x-java-archive-diff_jarDiffEntriesLjava/util/HashMap;_logLorg/slf4j/Logger;_servletContextLjavax/servlet/ServletContext;_jarDiffMimeType3(Ljavax/servlet/ServletContext;Lorg/slf4j/Logger;)VCode  ()V       !  #java/util/HashMap "& xyz.jardiff (*)javax/servlet/ServletContext +, getMimeType&(Ljava/lang/String;)Ljava/lang/String;LineNumberTableLocalVariableTablethis$Ljnlp/sample/servlet/JarDiffHandler;servletContextlog StackMapTable5org/slf4j/LoggergetJarDiffEntry(Ljnlp/sample/servlet/ResourceCatalog;Ljnlp/sample/servlet/DownloadRequest;Ljnlp/sample/servlet/JnlpResource;)Ljnlp/sample/servlet/DownloadResponse; 9;:#jnlp/sample/servlet/DownloadRequest <=getCurrentVersionId()Ljava/lang/String;?1.0* A BCisJavawsVersion:(Ljnlp/sample/servlet/DownloadRequest;Ljava/lang/String;)ZE-jnlp/sample/servlet/JarDiffHandler$JarDiffKey GIH jnlp/sample/servlet/JnlpResource J=getName GL M=getReturnVersionId DO P:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V "R STget&(Ljava/lang/Object;)Ljava/lang/Object;V/jnlp/sample/servlet/JarDiffHandler$JarDiffEntryXservlet.log.info.jardiff.gen 4Z [\info((Ljava/lang/String;[Ljava/lang/Object;)V ^ _`generateJarDiff}(Ljnlp/sample/servlet/ResourceCatalog;Ljnlp/sample/servlet/DownloadRequest;Ljnlp/sample/servlet/JnlpResource;Z)Ljava/io/File;b"servlet.log.warning.jardiff.failed 4d e\warn Ug h(Ljava/io/File;)V "j klput8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; Un opgetJarDiffFile()Ljava/io/File; rts java/io/File uv lastModified()J xzy$jnlp/sample/servlet/DownloadResponse {|getFileDownloadResponse[(Ljava/io/File;Ljava/lang/String;JLjava/lang/String;)Ljnlp/sample/servlet/DownloadResponse;catalog%Ljnlp/sample/servlet/ResourceCatalog;dreq%Ljnlp/sample/servlet/DownloadRequest;res"Ljnlp/sample/servlet/JnlpResource;doJarDiffWorkAroundZkey/Ljnlp/sample/servlet/JarDiffHandler$JarDiffKey;entry1Ljnlp/sample/servlet/JarDiffHandler$JarDiffEntry;fLjava/io/File;#jnlp/sample/servlet/ResourceCatalogjava/lang/Stringjavaws 9 getHttpRequest)()Ljavax/servlet/http/HttpServletRequest; User-Agent %javax/servlet/http/HttpServletRequest , getHeaderjavaws-  startsWith(Ljava/lang/String;)Zjava/util/StringTokenizer (Ljava/lang/String;)V = nextToken indexOf(Ljava/lang/String;)I length()I  substring(I)Ljava/lang/String; jnlp/sample/util/VersionString contains'(Ljava/lang/String;Ljava/lang/String;)Z  hasMoreTokens()Z-/ (II)Ljava/lang/String;version javawsAgentjwsVerstLjava/util/StringTokenizer; verStringindex startIndexendIndexverIddownload(Ljava/net/URL;Ljava/io/File;)ZJarDiffHandler: Doing download 4 debugjava/io/BufferedInputStream  java/net/URL  openStream()Ljava/io/InputStream; (Ljava/io/InputStream;)Vjava/io/BufferedOutputStreamjava/io/FileOutputStream g (Ljava/io/OutputStream;)V write([BII)V read([B)Ijava/lang/StringBuilder total read: append(I)Ljava/lang/StringBuilder; =toString Wrote URL  -(Ljava/lang/String;)Ljava/lang/StringBuilder; to file   -(Ljava/lang/Object;)Ljava/lang/StringBuilder; *Got exception while downloading resource:  close  r deletejava/io/IOExceptiontargetLjava/net/URL;fileretinLjava/io/BufferedInputStream;outLjava/io/BufferedOutputStream; totalReadbuf[BioeLjava/io/IOException;$java/lang/Throwable getRealPath Exceptions(resourceResolver (* +, getAttribute&(Ljava/lang/String;)Ljava/lang/Object;.$jnlp/sample/servlet/ResourceResolver -0 12 getResource"(Ljava/lang/String;)Ljava/net/URL;4javax.servlet.context.tempdir6temp8.jar r: ;<createTempFileB(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File; > r@ A=getPathpathfileURLtempDirnewFilefilePath 9H IJgetFromDownloadRequest'()Ljnlp/sample/servlet/DownloadRequest;L Request::: 9 O PQlookupResourceI(Ljnlp/sample/servlet/DownloadRequest;)Ljnlp/sample/servlet/JnlpResource;S Old skool: G@V New skool: -X YZgetDir"(Ljava/lang/String;)Ljava/io/File;\New situation: r^ _=getAbsolutePatha to new: c %,ejnlpg.jardiffiGenerating Jardiff between k and m Store in oqpjnlp/sample/jardiff/JarDiff rs createPatch>(Ljava/lang/String;Ljava/lang/String;Ljava/io/OutputStream;Z)V u vjava/io/OutputStream rx v r{&JarDiff discarded - since it is bigger } ~valueOf&(Ljava/lang/Object;)Ljava/lang/String;.pack.gz r existsgenerated jardiff size:  (J)Ljava/lang/StringBuilder;packed requesting file size: @JarDiff discarded - packed version of requesting file is smallerJarDiff generation succeeded  printStackTrace)(IOException) Failed to genereate jardiff 4 *(Ljava/lang/String;Ljava/lang/Throwable;)V *jnlp/sample/servlet/ErrorResponseException4(ErrorResponseException) Failed to genereate jardiffdel_olddel_newfromDreqfromRes resolvedOld resolvedNew newFilePath oldFilePath outputFileosLjava/io/OutputStream; newFilePackedere,Ljnlp/sample/servlet/ErrorResponseException; SourceFileJarDiffHandler.java InnerClasses JarDiffEntry JarDiffKey NestMembers!    J***** *"Y$*+*,**%' * * -2 E HIJ#(-<CI. J/0J1J23I(4!67 ,8,>@6DY-F,8-KN:*QU:r*WY-FSY,8SY-KSY*+,-]:'*aY-FSY,8SY-KScUYf:*iWmm* mq-Kw-n !+0>CO]bgrw.R/0}~0>r@3Z 9G9GoDUr BCM*N-FY-:/:,6,``:+-6-¶6 -`:+-Z"%,4:>EJQY[ciks.f    "9,% 4c2s" 3%+   *ӹ>6::Y+ڷ:YY,:66:  `6 Y6*Y*Y+,:*Y >,6 : : *Y  : : *Y  ,,W:  : : *Y  : : *Y   ,,W  : : *Y  : : *Y   ,,W68EHeru-.K #47: @ C M T b|!"#$#()+, -. -%1*2.368=B!E"J#X$`#e(j)o+r,w-.-1237!"#$#()+,-.-123 8. /0   7k:h@b $ ! ! J !  !   ! w !  ! 3C r"Pr% E EP# r#E E r E E %,&L*')-+/M*3)rN,#57-9:*,= ?:-:@A @A@CD"C&G*H6I@JGKJN.>L/0LB 6C&&D6EGF 3 Jr_`66,G:*YKM+N:*YRT*YU-T*')-TW: *')--TW: *Y[ ]` ] ]:  ]:  *-Tb:  6 *Tb:  6  *3)r: df 9:*Yh j lY:  ntwrY yw5*zrY yWrY yWrYY |y:*Yw*Ywww5*rY yWrY yW*:rY yWrY yW:rY yWrY yW:*:* Lr pr pr-fYSTW Y*[2^P_m`qay`|b`cdcdcefeghklmnqrst wx|}#|(5Nafqw"-2@LQ^cpr~./0}~ 2J 0   (D 5qa !3p 9G9Grr h9G9Grrrruu9G9Grrrruu:r!9G9Grrrrurr9G9Grrrru#9G9Grrrru#9G9VU D UD