123 try { 124 gen = new RMIGenerator(env, cdef, destDir, remoteClass, version); 125 } catch (ClassNotFound e) { 126 env.error(0, "rmic.class.not.found", e.name); 127 return; 128 } 129 gen.generate(); 130 } 131 132 private void generate() { 133 env.addGeneratedFile(stubFile); 134 135 try { 136 IndentingWriter out = new IndentingWriter( 137 new OutputStreamWriter(new FileOutputStream(stubFile))); 138 writeStub(out); 139 out.close(); 140 if (env.verbose()) { 141 env.output(Main.getText("rmic.wrote", stubFile.getPath())); 142 } 143 env.parseFile(new ClassFile(stubFile)); 144 } catch (IOException e) { 145 env.error(0, "cant.write", stubFile.toString()); 146 return; 147 } 148 149 if (version == STUB_VERSION_1_1 || 150 version == STUB_VERSION_FAT) 151 { 152 env.addGeneratedFile(skeletonFile); 153 154 try { 155 IndentingWriter out = new IndentingWriter( 156 new OutputStreamWriter( 157 new FileOutputStream(skeletonFile))); 158 writeSkeleton(out); 159 out.close(); 160 if (env.verbose()) { 161 env.output(Main.getText("rmic.wrote", 162 skeletonFile.getPath())); 163 } 164 env.parseFile(new ClassFile(skeletonFile)); 165 } catch (IOException e) { 166 env.error(0, "cant.write", stubFile.toString()); 167 return; 168 } 169 } else { 170 /* 171 * For bugid 4135136: if skeleton files are not being generated 172 * for this compilation run, delete old skeleton source or class 173 * files for this remote implementation class that were 174 * (presumably) left over from previous runs, to avoid user 175 * confusion from extraneous or inconsistent generated files. 176 */ 177 178 File outputDir = Util.getOutputDirectoryFor(remoteClassName,destDir,env); 179 File skeletonClassFile = new File(outputDir,skeletonClassName.getName().toString() + ".class"); 180 181 skeletonFile.delete(); // ignore failures (no big deal) 182 skeletonClassFile.delete(); 183 } 184 } | 123 try { 124 gen = new RMIGenerator(env, cdef, destDir, remoteClass, version); 125 } catch (ClassNotFound e) { 126 env.error(0, "rmic.class.not.found", e.name); 127 return; 128 } 129 gen.generate(); 130 } 131 132 private void generate() { 133 env.addGeneratedFile(stubFile); 134 135 try { 136 IndentingWriter out = new IndentingWriter( 137 new OutputStreamWriter(new FileOutputStream(stubFile))); 138 writeStub(out); 139 out.close(); 140 if (env.verbose()) { 141 env.output(Main.getText("rmic.wrote", stubFile.getPath())); 142 } 143 env.parseFile(ClassFile.newClassFile(stubFile)); 144 } catch (IOException e) { 145 env.error(0, "cant.write", stubFile.toString()); 146 return; 147 } 148 149 if (version == STUB_VERSION_1_1 || 150 version == STUB_VERSION_FAT) 151 { 152 env.addGeneratedFile(skeletonFile); 153 154 try { 155 IndentingWriter out = new IndentingWriter( 156 new OutputStreamWriter( 157 new FileOutputStream(skeletonFile))); 158 writeSkeleton(out); 159 out.close(); 160 if (env.verbose()) { 161 env.output(Main.getText("rmic.wrote", 162 skeletonFile.getPath())); 163 } 164 env.parseFile(ClassFile.newClassFile(skeletonFile)); 165 } catch (IOException e) { 166 env.error(0, "cant.write", stubFile.toString()); 167 return; 168 } 169 } else { 170 /* 171 * For bugid 4135136: if skeleton files are not being generated 172 * for this compilation run, delete old skeleton source or class 173 * files for this remote implementation class that were 174 * (presumably) left over from previous runs, to avoid user 175 * confusion from extraneous or inconsistent generated files. 176 */ 177 178 File outputDir = Util.getOutputDirectoryFor(remoteClassName,destDir,env); 179 File skeletonClassFile = new File(outputDir,skeletonClassName.getName().toString() + ".class"); 180 181 skeletonFile.delete(); // ignore failures (no big deal) 182 skeletonClassFile.delete(); 183 } 184 } |