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.
---

Reply via email to