From 02cd615926a3e0f629549afe1ed1b3f360b33484 Mon Sep 17 00:00:00 2001 From: Patrick Meyer Date: Fri, 5 Aug 2016 15:25:35 +0200 Subject: [PATCH 1/3] close FileInputStream at the end. Not to closing in some cases can cause IOException "To many open files". Write better message in case of IOExcepion --- .../kie/builder/impl/FileKieModule.java | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/drools-compiler/src/main/java/org/drools/compiler/kie/builder/impl/FileKieModule.java b/drools-compiler/src/main/java/org/drools/compiler/kie/builder/impl/FileKieModule.java index 19da0440c57..f6c36617c03 100644 --- a/drools-compiler/src/main/java/org/drools/compiler/kie/builder/impl/FileKieModule.java +++ b/drools-compiler/src/main/java/org/drools/compiler/kie/builder/impl/FileKieModule.java @@ -55,16 +55,26 @@ public boolean isAvailable(String pResourceName) { @Override public byte[] getBytes(String pResourceName) { - try { + FileInputStream input = null; + try { File resource = new File( file, pResourceName); if( resource.exists() ) { - return IoUtils.readBytesFromInputStream( new FileInputStream( resource ) ); + input = new FileInputStream( resource ); + return IoUtils.readBytesFromInputStream( input ); } else { return null; } - } catch ( Exception e ) { - throw new RuntimeException("Unable to get bytes for: " + new File( file, pResourceName) ); - } + } catch ( IOException e ) { + throw new RuntimeException("Unable to get bytes for: " + new File( file, pResourceName) +" "+e.getMessage()); + } finally { + if(input != null){ + try { + input.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } } @Override From d12814d5a1fbe2ab611560dd620d762d9187ef3f Mon Sep 17 00:00:00 2001 From: sivy Date: Fri, 5 Aug 2016 22:22:47 +0200 Subject: [PATCH 2/3] Update FileKieModule.java code indentation fixed --- .../org/drools/compiler/kie/builder/impl/FileKieModule.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drools-compiler/src/main/java/org/drools/compiler/kie/builder/impl/FileKieModule.java b/drools-compiler/src/main/java/org/drools/compiler/kie/builder/impl/FileKieModule.java index f6c36617c03..bae5789c1f4 100644 --- a/drools-compiler/src/main/java/org/drools/compiler/kie/builder/impl/FileKieModule.java +++ b/drools-compiler/src/main/java/org/drools/compiler/kie/builder/impl/FileKieModule.java @@ -65,12 +65,12 @@ public byte[] getBytes(String pResourceName) { return null; } } catch ( IOException e ) { - throw new RuntimeException("Unable to get bytes for: " + new File( file, pResourceName) +" "+e.getMessage()); + throw new RuntimeException("Unable to get bytes for: " + new File( file, pResourceName) +" "+ e.getMessage()); } finally { - if(input != null){ + if( input != null ) { try { input.close(); - } catch (IOException e) { + } catch ( IOException e ) { e.printStackTrace(); } } From 0e56464dfcb60969a1f35eacaef44e8d49b53dd8 Mon Sep 17 00:00:00 2001 From: sivy Date: Fri, 5 Aug 2016 22:46:00 +0200 Subject: [PATCH 3/3] Update FileKieModule.java fixed code indentation #2 --- .../kie/builder/impl/FileKieModule.java | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/drools-compiler/src/main/java/org/drools/compiler/kie/builder/impl/FileKieModule.java b/drools-compiler/src/main/java/org/drools/compiler/kie/builder/impl/FileKieModule.java index bae5789c1f4..358e79467b9 100644 --- a/drools-compiler/src/main/java/org/drools/compiler/kie/builder/impl/FileKieModule.java +++ b/drools-compiler/src/main/java/org/drools/compiler/kie/builder/impl/FileKieModule.java @@ -54,27 +54,27 @@ public boolean isAvailable(String pResourceName) { @Override - public byte[] getBytes(String pResourceName) { - FileInputStream input = null; - try { + public byte[] getBytes(String pResourceName ) { + FileInputStream input = null; + try { File resource = new File( file, pResourceName); if( resource.exists() ) { - input = new FileInputStream( resource ); - return IoUtils.readBytesFromInputStream( input ); + input = new FileInputStream( resource ); + return IoUtils.readBytesFromInputStream( input ); } else { return null; } } catch ( IOException e ) { - throw new RuntimeException("Unable to get bytes for: " + new File( file, pResourceName) +" "+ e.getMessage()); + throw new RuntimeException("Unable to get bytes for: " + new File( file, pResourceName) + " " +e.getMessage()); } finally { - if( input != null ) { - try { - input.close(); - } catch ( IOException e ) { - e.printStackTrace(); - } - } - } + if( input != null ){ + try { + input.close(); + } catch ( IOException e ) { + e.printStackTrace(); + } + } + } } @Override