Mercurial Hosting > luan
comparison src/goodjava/lucene/backup/Backup.java @ 1508:86c5e7000ecf
lucene.backup checksum
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sat, 16 May 2020 17:56:02 -0600 |
parents | e66e3d50b289 |
children | 0ba144491a42 |
comparison
equal
deleted
inserted
replaced
1507:c8f4867fd083 | 1508:86c5e7000ecf |
---|---|
43 if( call.cmd.equals("check") ) { | 43 if( call.cmd.equals("check") ) { |
44 // nothing | 44 // nothing |
45 } else if( call.cmd.equals("add") || call.cmd.equals("append") ) { | 45 } else if( call.cmd.equals("add") || call.cmd.equals("append") ) { |
46 fileName = (String)call.args[2]; | 46 fileName = (String)call.args[2]; |
47 File f = new File(dir,fileName); | 47 File f = new File(dir,fileName); |
48 if( call.cmd.equals("add") ) | |
49 IoUtils.delete(f); | |
48 LogFile log = new LogFile(f); | 50 LogFile log = new LogFile(f); |
49 LogOutputStream out = log.output(); | 51 LogOutputStream out = log.output(); |
50 IoUtils.copyAll(call.in,out); | 52 IoUtils.copyAll(call.in,out); |
51 out.commit(); | 53 out.commit(); |
52 out.close(); | 54 out.close(); |
76 if( logEnd < end ) { | 78 if( logEnd < end ) { |
77 if( name.equals(fileName) ) logger.error("incomplete"); | 79 if( name.equals(fileName) ) logger.error("incomplete"); |
78 result = new RpcResult("incomplete",name,logEnd); | 80 result = new RpcResult("incomplete",name,logEnd); |
79 break; | 81 break; |
80 } | 82 } |
83 Object checksumObj = fileInfo.get("checksum"); | |
84 if( checksumObj != null ) { | |
85 long checksum = (Long)checksumObj; | |
86 if( log.checksum() != checksum ) { | |
87 index.delete(); | |
88 result = new RpcResult("bad_checksum",name); | |
89 break; | |
90 } | |
91 } | |
81 } | 92 } |
82 if( call.cmd.equals("add") ) { | 93 if( call.cmd.equals("add") ) { |
83 boolean complete = true; | 94 boolean complete = true; |
84 List<LogFile> logs = new ArrayList<LogFile>(); | 95 List<LogFile> logs = new ArrayList<LogFile>(); |
85 for( Object obj : logInfo ) { | 96 for( Object obj : logInfo ) { |