Github user hanm commented on a diff in the pull request:
https://github.com/apache/zookeeper/pull/102#discussion_r86905102
--- Diff: src/java/main/org/apache/jute/compiler/CGenerator.java ---
@@ -61,70 +61,88 @@ void genCode() throws IOException {
+ outputDirectory);
}
}
- FileWriter c = new FileWriter(new File(outputDirectory,
mName+".c"));
- FileWriter h = new FileWriter(new File(outputDirectory,
mName+".h"));
- h.write("/**\n");
- h.write("* Licensed to the Apache Software Foundation (ASF) under
one\n");
- h.write("* or more contributor license agreements. See the NOTICE
file\n");
- h.write("* distributed with this work for additional
information\n");
- h.write("* regarding copyright ownership. The ASF licenses this
file\n");
- h.write("* to you under the Apache License, Version 2.0 (the\n");
- h.write("* \"License\"); you may not use this file except in
compliance\n");
- h.write("* with the License. You may obtain a copy of the License
at\n");
- h.write("*\n");
- h.write("* http://www.apache.org/licenses/LICENSE-2.0\n");
- h.write("*\n");
- h.write("* Unless required by applicable law or agreed to in
writing, software\n");
- h.write("* distributed under the License is distributed on an \"AS
IS\" BASIS,\n");
- h.write("* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
express or implied.\n");
- h.write("* See the License for the specific language governing
permissions and\n");
- h.write("* limitations under the License.\n");
- h.write("*/\n");
- h.write("\n");
+ FileWriter c = null, h = null;
+ try {
+ c = new FileWriter(new File(outputDirectory, mName + ".c"));
+ h = new FileWriter(new File(outputDirectory, mName + ".h"));
- c.write("/**\n");
- c.write("* Licensed to the Apache Software Foundation (ASF) under
one\n");
- c.write("* or more contributor license agreements. See the NOTICE
file\n");
- c.write("* distributed with this work for additional
information\n");
- c.write("* regarding copyright ownership. The ASF licenses this
file\n");
- c.write("* to you under the Apache License, Version 2.0 (the\n");
- c.write("* \"License\"); you may not use this file except in
compliance\n");
- c.write("* with the License. You may obtain a copy of the License
at\n");
- c.write("*\n");
- c.write("* http://www.apache.org/licenses/LICENSE-2.0\n");
- c.write("*\n");
- c.write("* Unless required by applicable law or agreed to in
writing, software\n");
- c.write("* distributed under the License is distributed on an \"AS
IS\" BASIS,\n");
- c.write("* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
express or implied.\n");
- c.write("* See the License for the specific language governing
permissions and\n");
- c.write("* limitations under the License.\n");
- c.write("*/\n");
- c.write("\n");
+ h.write("/**\n");
+ h.write("* Licensed to the Apache Software Foundation (ASF)
under one\n");
+ h.write("* or more contributor license agreements. See the
NOTICE file\n");
+ h.write("* distributed with this work for additional
information\n");
+ h.write("* regarding copyright ownership. The ASF licenses
this file\n");
+ h.write("* to you under the Apache License, Version 2.0
(the\n");
+ h.write("* \"License\"); you may not use this file except in
compliance\n");
+ h.write("* with the License. You may obtain a copy of the
License at\n");
+ h.write("*\n");
+ h.write("* http://www.apache.org/licenses/LICENSE-2.0\n");
+ h.write("*\n");
+ h.write("* Unless required by applicable law or agreed to in
writing, software\n");
+ h.write("* distributed under the License is distributed on an
\"AS IS\" BASIS,\n");
+ h.write("* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
either express or implied.\n");
+ h.write("* See the License for the specific language governing
permissions and\n");
+ h.write("* limitations under the License.\n");
+ h.write("*/\n");
+ h.write("\n");
- h.write("#ifndef __"+mName.toUpperCase().replace('.','_')+"__\n");
- h.write("#define __"+mName.toUpperCase().replace('.','_')+"__\n");
+ c.write("/**\n");
+ c.write("* Licensed to the Apache Software Foundation (ASF)
under one\n");
+ c.write("* or more contributor license agreements. See the
NOTICE file\n");
+ c.write("* distributed with this work for additional
information\n");
+ c.write("* regarding copyright ownership. The ASF licenses
this file\n");
+ c.write("* to you under the Apache License, Version 2.0
(the\n");
+ c.write("* \"License\"); you may not use this file except in
compliance\n");
+ c.write("* with the License. You may obtain a copy of the
License at\n");
+ c.write("*\n");
+ c.write("* http://www.apache.org/licenses/LICENSE-2.0\n");
+ c.write("*\n");
+ c.write("* Unless required by applicable law or agreed to in
writing, software\n");
+ c.write("* distributed under the License is distributed on an
\"AS IS\" BASIS,\n");
+ c.write("* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
either express or implied.\n");
+ c.write("* See the License for the specific language governing
permissions and\n");
+ c.write("* limitations under the License.\n");
+ c.write("*/\n");
+ c.write("\n");
- h.write("#include \"recordio.h\"\n");
- for (Iterator<JFile> i = mInclFiles.iterator(); i.hasNext();) {
- JFile f = i.next();
- h.write("#include \""+f.getName()+".h\"\n");
- }
- // required for compilation from C++
- h.write("\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n");
+ h.write("#ifndef __" + mName.toUpperCase().replace('.', '_') +
"__\n");
+ h.write("#define __" + mName.toUpperCase().replace('.', '_') +
"__\n");
- c.write("#include <stdlib.h>\n"); // need it for calloc() & free()
- c.write("#include \""+mName+".h\"\n\n");
+ h.write("#include \"recordio.h\"\n");
+ for (Iterator<JFile> i = mInclFiles.iterator(); i.hasNext(); )
{
+ JFile f = i.next();
+ h.write("#include \"" + f.getName() + ".h\"\n");
+ }
+ // required for compilation from C++
+ h.write("\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n");
- for (Iterator<JRecord> i = mRecList.iterator(); i.hasNext();) {
- JRecord jr = i.next();
- jr.genCCode(h, c);
- }
+ c.write("#include <stdlib.h>\n"); // need it for calloc() &
free()
+ c.write("#include \"" + mName + ".h\"\n\n");
- h.write("\n#ifdef __cplusplus\n}\n#endif\n\n");
- h.write("#endif //"+mName.toUpperCase().replace('.','_')+"__\n");
+ for (Iterator<JRecord> i = mRecList.iterator(); i.hasNext(); )
{
+ JRecord jr = i.next();
+ jr.genCCode(h, c);
+ }
- h.close();
- c.close();
+ h.write("\n#ifdef __cplusplus\n}\n#endif\n\n");
+ h.write("#endif //" + mName.toUpperCase().replace('.', '_') +
"__\n");
+ } catch (IOException e) {
+ throw e;
+ } finally {
+ if (h != null) {
+ try {
+ h.close();
+ } catch (IOException ex) {
+ throw ex;
+ } finally {
+ if (c != null) {
+ c.close();
+ }
+ }
+ }
+ if (c != null) {
--- End diff --
Yeah I thought about using try / with - for some reasons I had the
impression that we also need to support JDK 1.6 (that's probably only for
3.4.x). I'll update with try / with.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---