You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2010/03/16 17:00:32 UTC
svn commit: r923828 - in
/ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile: Record.java
RecordIterator.java
Author: jleroux
Date: Tue Mar 16 16:00:32 2010
New Revision: 923828
URL: http://svn.apache.org/viewvc?rev=923828&view=rev
Log:
A patch from BJ Freeman "Datafile does not catch lack of delimiter if at end of line." (https://issues.apache.org/jira/browse/OFBIZ-3026) - OFBIZ-3026
There was an issue if the datafile did not have the last delimiter before the CRLF. This fixes it when there are not data for a field and also fixes the EOL.
Modified:
ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java
ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java
Modified: ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java?rev=923828&r1=923827&r2=923828&view=diff
==============================================================================
--- ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java (original)
+++ ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java Tue Mar 16 16:00:32 2010
@@ -561,18 +561,24 @@ public class Record implements Serializa
strVal = (String)modelField.defaultValue;
}
} else {
- try {
- strVal = st.nextToken();
- if (strVal.equals("" + delimiter)) {
- strVal = null;
- } else {
- if (st.hasMoreTokens()) {
- st.nextToken();
+ //some input lines may be less than the header model.
+ if (st.hasMoreTokens()) {
+ try {
+ strVal = st.nextToken();
+ if (strVal.equals("" + delimiter)) {
+ strVal = null;
+ } else {
+ if (st.hasMoreTokens()) {
+ st.nextToken();
+ }
}
- }
- } catch (NoSuchElementException nsee) {
- throw new DataFileException("Field " + modelField.name + " could not be read from a line (" + lineNum + ") with only " +
- line.length() + " chars.", nsee);
+ } catch (NoSuchElementException nsee) {
+ throw new DataFileException("Field " + modelField.name + " could not be read from a line (" + lineNum + ") with only " +
+ line.length() + " chars.", nsee);
+ }
+ }
+ else { //if input line is less than the header model then pad with null
+ strVal = null;
}
}
try {
Modified: ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java?rev=923828&r1=923827&r2=923828&view=diff
==============================================================================
--- ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java (original)
+++ ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java Tue Mar 16 16:00:32 2010
@@ -26,6 +26,8 @@ import java.io.InputStreamReader;
import java.net.URL;
import java.util.Stack;
+import org.ofbiz.base.util.Debug;
+
/**
* Record Iterator for reading large files
@@ -84,7 +86,6 @@ public class RecordIterator {
this.nextRecord = null;
boolean isFixedRecord = ModelDataFile.SEP_FIXED_RECORD.equals(modelDataFile.separatorStyle);
- boolean isFixedLength = ModelDataFile.SEP_FIXED_LENGTH.equals(modelDataFile.separatorStyle);
boolean isDelimited = ModelDataFile.SEP_DELIMITED.equals(modelDataFile.separatorStyle);
// if (Debug.infoOn()) Debug.logInfo("[DataFile.readDataFile] separatorStyle is " + modelDataFile.separatorStyle + ", isFixedRecord: " + isFixedRecord, module);
@@ -111,12 +112,14 @@ public class RecordIterator {
} else {
try {
nextLine = br.readLine();
- } catch (IOException e) {
+ Debug.logInfo("br.readLine()=\"" + nextLine + "\"", module);
+ } catch (IOException e) {
throw new DataFileException("Error reading line #" + nextLineNum + " from location: " + locationInfo, e);
}
}
- if (nextLine != null && !(eof.equals(nextLine.substring(0,1)) && 1 == nextLine.length())) {
+ //if (nextLine != null && !(eof.equals(nextLine.substring(0,1)) && 1 == nextLine.length())) {
+ if (nextLine != null && !((nextLine.contains(eof) ) )) {
nextLineNum++;
ModelRecord modelRecord = findModelForLine(nextLine, nextLineNum, modelDataFile);
if (isDelimited) {
@@ -136,7 +139,8 @@ public class RecordIterator {
}
public boolean hasNext() {
- return nextLine != null && !(eof.equals(nextLine.substring(0,1)) && 1 == nextLine.length());
+ //return nextLine != null && !(eof.equals(nextLine.substring(0,1)) && 1 == nextLine.length());
+ return nextLine != null && !((nextLine.contains(eof) ) );
}
Re: svn commit: r923828 - in /ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile:
Record.java RecordIterator.java
Posted by Adam Heath <do...@brainfood.com>.
jleroux@apache.org wrote:
> Author: jleroux
> Date: Tue Mar 16 16:00:32 2010
> New Revision: 923828
>
> URL: http://svn.apache.org/viewvc?rev=923828&view=rev
> Log:
> A patch from BJ Freeman "Datafile does not catch lack of delimiter if at end of line." (https://issues.apache.org/jira/browse/OFBIZ-3026) - OFBIZ-3026
>
> There was an issue if the datafile did not have the last delimiter before the CRLF. This fixes it when there are not data for a field and also fixes the EOL.
>
> Modified:
> ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java
> ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java
>
> Modified: ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java?rev=923828&r1=923827&r2=923828&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java (original)
> +++ ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java Tue Mar 16 16:00:32 2010
> @@ -561,18 +561,24 @@ public class Record implements Serializa
> strVal = (String)modelField.defaultValue;
> }
> } else {
> - try {
> - strVal = st.nextToken();
> - if (strVal.equals("" + delimiter)) {
> - strVal = null;
> - } else {
> - if (st.hasMoreTokens()) {
> - st.nextToken();
> + //some input lines may be less than the header model.
> + if (st.hasMoreTokens()) {
> + try {
> + strVal = st.nextToken();
> + if (strVal.equals("" + delimiter)) {
> + strVal = null;
> + } else {
> + if (st.hasMoreTokens()) {
> + st.nextToken();
> + }
> }
> - }
> - } catch (NoSuchElementException nsee) {
> - throw new DataFileException("Field " + modelField.name + " could not be read from a line (" + lineNum + ") with only " +
> - line.length() + " chars.", nsee);
> + } catch (NoSuchElementException nsee) {
> + throw new DataFileException("Field " + modelField.name + " could not be read from a line (" + lineNum + ") with only " +
> + line.length() + " chars.", nsee);
> + }
> + }
> + else { //if input line is less than the header model then pad with null
> + strVal = null;
> }
} else {
> }
> try {
>
> Modified: ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java?rev=923828&r1=923827&r2=923828&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java (original)
> +++ ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java Tue Mar 16 16:00:32 2010
> @@ -26,6 +26,8 @@ import java.io.InputStreamReader;
> import java.net.URL;
> import java.util.Stack;
>
> +import org.ofbiz.base.util.Debug;
> +
Extra blank line.
> /**
> * Record Iterator for reading large files
> @@ -84,7 +86,6 @@ public class RecordIterator {
> this.nextRecord = null;
>
> boolean isFixedRecord = ModelDataFile.SEP_FIXED_RECORD.equals(modelDataFile.separatorStyle);
> - boolean isFixedLength = ModelDataFile.SEP_FIXED_LENGTH.equals(modelDataFile.separatorStyle);
> boolean isDelimited = ModelDataFile.SEP_DELIMITED.equals(modelDataFile.separatorStyle);
> // if (Debug.infoOn()) Debug.logInfo("[DataFile.readDataFile] separatorStyle is " + modelDataFile.separatorStyle + ", isFixedRecord: " + isFixedRecord, module);
>
> @@ -111,12 +112,14 @@ public class RecordIterator {
> } else {
> try {
> nextLine = br.readLine();
> - } catch (IOException e) {
> + Debug.logInfo("br.readLine()=\"" + nextLine + "\"", module);
> + } catch (IOException e) {
Remove this logInfo.
The catch line has bad indentation.
> throw new DataFileException("Error reading line #" + nextLineNum + " from location: " + locationInfo, e);
> }
> }
>
> - if (nextLine != null && !(eof.equals(nextLine.substring(0,1)) && 1 == nextLine.length())) {
> + //if (nextLine != null && !(eof.equals(nextLine.substring(0,1)) && 1 == nextLine.length())) {
> + if (nextLine != null && !((nextLine.contains(eof) ) )) {
Don't leave commented out lines like this; it is generally bad form,
esp. for simple lines. That's what revision history is for.
Bad spacing around parentheses.
> nextLineNum++;
> ModelRecord modelRecord = findModelForLine(nextLine, nextLineNum, modelDataFile);
> if (isDelimited) {
> @@ -136,7 +139,8 @@ public class RecordIterator {
> }
>
> public boolean hasNext() {
> - return nextLine != null && !(eof.equals(nextLine.substring(0,1)) && 1 == nextLine.length());
> + //return nextLine != null && !(eof.equals(nextLine.substring(0,1)) && 1 == nextLine.length());
> + return nextLine != null && !((nextLine.contains(eof) ) );
Same as last paragraph.
Re: svn commit: r923828 - in /ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile: Record.java RecordIterator.java
Posted by Jacques Le Roux <ja...@les7arts.com>.
BJ, Adam,
I prefer top keep these lines for the moment. It's quicker if we need them later and harmless for the moment.
The Debug.logInfo line could be commented out also, maybe useful later, without almost any handlings
For the remaining I agree it's a good exercice
Jacques
From: "BJ Freeman" <bj...@free-man.net>
> thanks for the comments.
> how does the history shows lines removed?
> How can I keep those lines I commented out in my code but not in the patch?
>
> =========================
> BJ Freeman
> http://bjfreeman.elance.com
> Strategic Power Office with Supplier Automation <http://www.businessesnetwork.com/automation/viewforum.php?f=93>
> Specialtymarket.com <http://www.specialtymarket.com/>
>
> Systems Integrator-- Glad to Assist
>
> Chat Y! messenger: bjfr33man
> Linkedin
> <http://www.linkedin.com/profile?viewProfile=&key=1237480&locale=en_US&trk=tab_pro>
>
>
> Adam Heath sent the following on 3/16/2010 9:06 AM:
>> jleroux@apache.org wrote:
>>> Author: jleroux
>>> Date: Tue Mar 16 16:00:32 2010
>>> New Revision: 923828
>>>
>>> URL: http://svn.apache.org/viewvc?rev=923828&view=rev
>>> Log:
>>> A patch from BJ Freeman "Datafile does not catch lack of delimiter if at end of line."
>>> (https://issues.apache.org/jira/browse/OFBIZ-3026) - OFBIZ-3026
>>>
>>> There was an issue if the datafile did not have the last delimiter before the CRLF. This fixes it when there are not data for a
>>> field and also fixes the EOL.
>>>
>>> Modified:
>>> ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java
>>> ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java
>>>
>>> Modified: ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java
>>> URL:
>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java?rev=923828&r1=923827&r2=923828&view=diff
>>> ==============================================================================
>>> --- ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java (original)
>>> +++ ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java Tue Mar 16 16:00:32 2010
>>> @@ -561,18 +561,24 @@ public class Record implements Serializa
>>> strVal = (String)modelField.defaultValue;
>>> }
>>> } else {
>>> - try {
>>> - strVal = st.nextToken();
>>> - if (strVal.equals("" + delimiter)) {
>>> - strVal = null;
>>> - } else {
>>> - if (st.hasMoreTokens()) {
>>> - st.nextToken();
>>> + //some input lines may be less than the header model.
>>> + if (st.hasMoreTokens()) {
>>> + try {
>>> + strVal = st.nextToken();
>>> + if (strVal.equals("" + delimiter)) {
>>> + strVal = null;
>>> + } else {
>>> + if (st.hasMoreTokens()) {
>>> + st.nextToken();
>>> + }
>>> }
>>> - }
>>> - } catch (NoSuchElementException nsee) {
>>> - throw new DataFileException("Field " + modelField.name + " could not be read from a line (" + lineNum + ")
>>> with only " +
>>> - line.length() + " chars.", nsee);
>>> + } catch (NoSuchElementException nsee) {
>>> + throw new DataFileException("Field " + modelField.name + " could not be read from a line (" + lineNum +
>>> ") with only " +
>>> + line.length() + " chars.", nsee);
>>> + }
>>> + }
>>> + else { //if input line is less than the header model then pad with null
>>> + strVal = null;
>>> }
>>
>> } else {
>>
>>> }
>>> try {
>>>
>>> Modified: ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java
>>> URL:
>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java?rev=923828&r1=923827&r2=923828&view=diff
>>> ==============================================================================
>>> --- ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java (original)
>>> +++ ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java Tue Mar 16 16:00:32 2010
>>> @@ -26,6 +26,8 @@ import java.io.InputStreamReader;
>>> import java.net.URL;
>>> import java.util.Stack;
>>>
>>> +import org.ofbiz.base.util.Debug;
>>> +
>>
>> Extra blank line.
>>
>>> /**
>>> * Record Iterator for reading large files
>>> @@ -84,7 +86,6 @@ public class RecordIterator {
>>> this.nextRecord = null;
>>>
>>> boolean isFixedRecord = ModelDataFile.SEP_FIXED_RECORD.equals(modelDataFile.separatorStyle);
>>> - boolean isFixedLength = ModelDataFile.SEP_FIXED_LENGTH.equals(modelDataFile.separatorStyle);
>>> boolean isDelimited = ModelDataFile.SEP_DELIMITED.equals(modelDataFile.separatorStyle);
>>> // if (Debug.infoOn()) Debug.logInfo("[DataFile.readDataFile] separatorStyle is " + modelDataFile.separatorStyle + ",
>>> isFixedRecord: " + isFixedRecord, module);
>>>
>>> @@ -111,12 +112,14 @@ public class RecordIterator {
>>> } else {
>>> try {
>>> nextLine = br.readLine();
>>> - } catch (IOException e) {
>>> + Debug.logInfo("br.readLine()=\"" + nextLine + "\"", module);
>>> + } catch (IOException e) {
>>
>> Remove this logInfo.
>>
>> The catch line has bad indentation.
>>
>>> throw new DataFileException("Error reading line #" + nextLineNum + " from location: " + locationInfo, e);
>>> }
>>> }
>>>
>>> - if (nextLine != null && !(eof.equals(nextLine.substring(0,1)) && 1 == nextLine.length())) {
>>> + //if (nextLine != null && !(eof.equals(nextLine.substring(0,1)) && 1 == nextLine.length())) {
>>> + if (nextLine != null && !((nextLine.contains(eof) ) )) {
>>
>> Don't leave commented out lines like this; it is generally bad form,
>> esp. for simple lines. That's what revision history is for.
>>
>> Bad spacing around parentheses.
>>
>>> nextLineNum++;
>>> ModelRecord modelRecord = findModelForLine(nextLine, nextLineNum, modelDataFile);
>>> if (isDelimited) {
>>> @@ -136,7 +139,8 @@ public class RecordIterator {
>>> }
>>>
>>> public boolean hasNext() {
>>> - return nextLine != null && !(eof.equals(nextLine.substring(0,1)) && 1 == nextLine.length());
>>> + //return nextLine != null && !(eof.equals(nextLine.substring(0,1)) && 1 == nextLine.length());
>>> + return nextLine != null && !((nextLine.contains(eof) ) );
>>
>> Same as last paragraph.
>>
>>
>>
>
>
Re: svn commit: r923828 - in /ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile:
Record.java RecordIterator.java
Posted by BJ Freeman <bj...@free-man.net>.
did so
=========================
BJ Freeman
http://bjfreeman.elance.com
Strategic Power Office with Supplier Automation <http://www.businessesnetwork.com/automation/viewforum.php?f=93>
Specialtymarket.com <http://www.specialtymarket.com/>
Systems Integrator-- Glad to Assist
Chat Y! messenger: bjfr33man
Linkedin
<http://www.linkedin.com/profile?viewProfile=&key=1237480&locale=en_US&trk=tab_pro>
Jacques Le Roux sent the following on 3/16/2010 10:44 AM:
> BJ, Adam,
>
> I prefer top keep these lines for the moment. It's quicker if we need
> them later and harmless for the moment.
> The Debug.logInfo line could be commented out also, maybe useful later,
> without almost any handlings
> For the remaining I agree it's a good exercice
>
> Jacques
>
> From: "BJ Freeman" <bj...@free-man.net>
>> thanks for the comments.
>> how does the history shows lines removed?
>> How can I keep those lines I commented out in my code but not in the
>> patch?
>>
>> =========================
>> BJ Freeman
>> http://bjfreeman.elance.com
>> Strategic Power Office with Supplier Automation
>> <http://www.businessesnetwork.com/automation/viewforum.php?f=93>
>> Specialtymarket.com <http://www.specialtymarket.com/>
>>
>> Systems Integrator-- Glad to Assist
>>
>> Chat Y! messenger: bjfr33man
>> Linkedin
>> <http://www.linkedin.com/profile?viewProfile=&key=1237480&locale=en_US&trk=tab_pro>
>>
>>
>>
>> Adam Heath sent the following on 3/16/2010 9:06 AM:
>>> jleroux@apache.org wrote:
>>>> Author: jleroux
>>>> Date: Tue Mar 16 16:00:32 2010
>>>> New Revision: 923828
>>>>
>>>> URL: http://svn.apache.org/viewvc?rev=923828&view=rev
>>>> Log:
>>>> A patch from BJ Freeman "Datafile does not catch lack of delimiter
>>>> if at end of line."
>>>> (https://issues.apache.org/jira/browse/OFBIZ-3026) - OFBIZ-3026
>>>>
>>>> There was an issue if the datafile did not have the last delimiter
>>>> before the CRLF. This fixes it when there are not data for a field
>>>> and also fixes the EOL.
>>>>
>>>> Modified:
>>>> ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java
>>>>
>>>> ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java
>>>>
>>>>
>>>> Modified:
>>>> ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java
>>>> URL:
>>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java?rev=923828&r1=923827&r2=923828&view=diff
>>>>
>>>> ==============================================================================
>>>>
>>>> ---
>>>> ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java
>>>> (original)
>>>> +++
>>>> ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java
>>>> Tue Mar 16 16:00:32 2010
>>>> @@ -561,18 +561,24 @@ public class Record implements Serializa
>>>> strVal = (String)modelField.defaultValue;
>>>> }
>>>> } else {
>>>> - try {
>>>> - strVal = st.nextToken();
>>>> - if (strVal.equals("" + delimiter)) {
>>>> - strVal = null;
>>>> - } else {
>>>> - if (st.hasMoreTokens()) {
>>>> - st.nextToken();
>>>> + //some input lines may be less than the header model.
>>>> + if (st.hasMoreTokens()) {
>>>> + try {
>>>> + strVal = st.nextToken();
>>>> + if (strVal.equals("" + delimiter)) {
>>>> + strVal = null;
>>>> + } else {
>>>> + if (st.hasMoreTokens()) {
>>>> + st.nextToken();
>>>> + }
>>>> }
>>>> - }
>>>> - } catch (NoSuchElementException nsee) {
>>>> - throw new DataFileException("Field " +
>>>> modelField.name + " could not be read from a line (" + lineNum + ")
>>>> with only " +
>>>> - line.length() + " chars.", nsee);
>>>> + } catch (NoSuchElementException nsee) {
>>>> + throw new DataFileException("Field " +
>>>> modelField.name + " could not be read from a line (" + lineNum + ")
>>>> with only " +
>>>> + line.length() + " chars.", nsee);
>>>> + }
>>>> + }
>>>> + else { //if input line is less than the header
>>>> model then pad with null
>>>> + strVal = null;
>>>> }
>>>
>>> } else {
>>>
>>>> }
>>>> try {
>>>>
>>>> Modified:
>>>> ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java
>>>>
>>>> URL:
>>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java?rev=923828&r1=923827&r2=923828&view=diff
>>>>
>>>> ==============================================================================
>>>>
>>>> ---
>>>> ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java
>>>> (original)
>>>> +++
>>>> ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java
>>>> Tue Mar 16 16:00:32 2010
>>>> @@ -26,6 +26,8 @@ import java.io.InputStreamReader;
>>>> import java.net.URL;
>>>> import java.util.Stack;
>>>>
>>>> +import org.ofbiz.base.util.Debug;
>>>> +
>>>
>>> Extra blank line.
>>>
>>>> /**
>>>> * Record Iterator for reading large files
>>>> @@ -84,7 +86,6 @@ public class RecordIterator {
>>>> this.nextRecord = null;
>>>>
>>>> boolean isFixedRecord =
>>>> ModelDataFile.SEP_FIXED_RECORD.equals(modelDataFile.separatorStyle);
>>>> - boolean isFixedLength =
>>>> ModelDataFile.SEP_FIXED_LENGTH.equals(modelDataFile.separatorStyle);
>>>> boolean isDelimited =
>>>> ModelDataFile.SEP_DELIMITED.equals(modelDataFile.separatorStyle);
>>>> // if (Debug.infoOn())
>>>> Debug.logInfo("[DataFile.readDataFile] separatorStyle is " +
>>>> modelDataFile.separatorStyle + ", isFixedRecord: " + isFixedRecord,
>>>> module);
>>>>
>>>> @@ -111,12 +112,14 @@ public class RecordIterator {
>>>> } else {
>>>> try {
>>>> nextLine = br.readLine();
>>>> - } catch (IOException e) {
>>>> + Debug.logInfo("br.readLine()=\"" + nextLine + "\"",
>>>> module);
>>>> + } catch (IOException e) {
>>>
>>> Remove this logInfo.
>>>
>>> The catch line has bad indentation.
>>>
>>>> throw new DataFileException("Error reading line #"
>>>> + nextLineNum + " from location: " + locationInfo, e);
>>>> }
>>>> }
>>>>
>>>> - if (nextLine != null &&
>>>> !(eof.equals(nextLine.substring(0,1)) && 1 == nextLine.length())) {
>>>> + //if (nextLine != null &&
>>>> !(eof.equals(nextLine.substring(0,1)) && 1 == nextLine.length())) {
>>>> + if (nextLine != null && !((nextLine.contains(eof) ) )) {
>>>
>>> Don't leave commented out lines like this; it is generally bad form,
>>> esp. for simple lines. That's what revision history is for.
>>>
>>> Bad spacing around parentheses.
>>>
>>>> nextLineNum++;
>>>> ModelRecord modelRecord = findModelForLine(nextLine,
>>>> nextLineNum, modelDataFile);
>>>> if (isDelimited) {
>>>> @@ -136,7 +139,8 @@ public class RecordIterator {
>>>> }
>>>>
>>>> public boolean hasNext() {
>>>> - return nextLine != null &&
>>>> !(eof.equals(nextLine.substring(0,1)) && 1 == nextLine.length());
>>>> + //return nextLine != null &&
>>>> !(eof.equals(nextLine.substring(0,1)) && 1 == nextLine.length());
>>>> + return nextLine != null && !((nextLine.contains(eof) ) );
>>>
>>> Same as last paragraph.
>>>
>>>
>>>
>>
>>
>
>
>
Re: svn commit: r923828 - in /ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile:
Record.java RecordIterator.java
Posted by BJ Freeman <bj...@free-man.net>.
thanks for the comments.
how does the history shows lines removed?
How can I keep those lines I commented out in my code but not in the patch?
=========================
BJ Freeman
http://bjfreeman.elance.com
Strategic Power Office with Supplier Automation <http://www.businessesnetwork.com/automation/viewforum.php?f=93>
Specialtymarket.com <http://www.specialtymarket.com/>
Systems Integrator-- Glad to Assist
Chat Y! messenger: bjfr33man
Linkedin
<http://www.linkedin.com/profile?viewProfile=&key=1237480&locale=en_US&trk=tab_pro>
Adam Heath sent the following on 3/16/2010 9:06 AM:
> jleroux@apache.org wrote:
>> Author: jleroux
>> Date: Tue Mar 16 16:00:32 2010
>> New Revision: 923828
>>
>> URL: http://svn.apache.org/viewvc?rev=923828&view=rev
>> Log:
>> A patch from BJ Freeman "Datafile does not catch lack of delimiter if at end of line." (https://issues.apache.org/jira/browse/OFBIZ-3026) - OFBIZ-3026
>>
>> There was an issue if the datafile did not have the last delimiter before the CRLF. This fixes it when there are not data for a field and also fixes the EOL.
>>
>> Modified:
>> ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java
>> ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java
>>
>> Modified: ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java?rev=923828&r1=923827&r2=923828&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java (original)
>> +++ ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/Record.java Tue Mar 16 16:00:32 2010
>> @@ -561,18 +561,24 @@ public class Record implements Serializa
>> strVal = (String)modelField.defaultValue;
>> }
>> } else {
>> - try {
>> - strVal = st.nextToken();
>> - if (strVal.equals("" + delimiter)) {
>> - strVal = null;
>> - } else {
>> - if (st.hasMoreTokens()) {
>> - st.nextToken();
>> + //some input lines may be less than the header model.
>> + if (st.hasMoreTokens()) {
>> + try {
>> + strVal = st.nextToken();
>> + if (strVal.equals("" + delimiter)) {
>> + strVal = null;
>> + } else {
>> + if (st.hasMoreTokens()) {
>> + st.nextToken();
>> + }
>> }
>> - }
>> - } catch (NoSuchElementException nsee) {
>> - throw new DataFileException("Field " + modelField.name + " could not be read from a line (" + lineNum + ") with only " +
>> - line.length() + " chars.", nsee);
>> + } catch (NoSuchElementException nsee) {
>> + throw new DataFileException("Field " + modelField.name + " could not be read from a line (" + lineNum + ") with only " +
>> + line.length() + " chars.", nsee);
>> + }
>> + }
>> + else { //if input line is less than the header model then pad with null
>> + strVal = null;
>> }
>
> } else {
>
>> }
>> try {
>>
>> Modified: ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java?rev=923828&r1=923827&r2=923828&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java (original)
>> +++ ofbiz/trunk/framework/datafile/src/org/ofbiz/datafile/RecordIterator.java Tue Mar 16 16:00:32 2010
>> @@ -26,6 +26,8 @@ import java.io.InputStreamReader;
>> import java.net.URL;
>> import java.util.Stack;
>>
>> +import org.ofbiz.base.util.Debug;
>> +
>
> Extra blank line.
>
>> /**
>> * Record Iterator for reading large files
>> @@ -84,7 +86,6 @@ public class RecordIterator {
>> this.nextRecord = null;
>>
>> boolean isFixedRecord = ModelDataFile.SEP_FIXED_RECORD.equals(modelDataFile.separatorStyle);
>> - boolean isFixedLength = ModelDataFile.SEP_FIXED_LENGTH.equals(modelDataFile.separatorStyle);
>> boolean isDelimited = ModelDataFile.SEP_DELIMITED.equals(modelDataFile.separatorStyle);
>> // if (Debug.infoOn()) Debug.logInfo("[DataFile.readDataFile] separatorStyle is " + modelDataFile.separatorStyle + ", isFixedRecord: " + isFixedRecord, module);
>>
>> @@ -111,12 +112,14 @@ public class RecordIterator {
>> } else {
>> try {
>> nextLine = br.readLine();
>> - } catch (IOException e) {
>> + Debug.logInfo("br.readLine()=\"" + nextLine + "\"", module);
>> + } catch (IOException e) {
>
> Remove this logInfo.
>
> The catch line has bad indentation.
>
>> throw new DataFileException("Error reading line #" + nextLineNum + " from location: " + locationInfo, e);
>> }
>> }
>>
>> - if (nextLine != null && !(eof.equals(nextLine.substring(0,1)) && 1 == nextLine.length())) {
>> + //if (nextLine != null && !(eof.equals(nextLine.substring(0,1)) && 1 == nextLine.length())) {
>> + if (nextLine != null && !((nextLine.contains(eof) ) )) {
>
> Don't leave commented out lines like this; it is generally bad form,
> esp. for simple lines. That's what revision history is for.
>
> Bad spacing around parentheses.
>
>> nextLineNum++;
>> ModelRecord modelRecord = findModelForLine(nextLine, nextLineNum, modelDataFile);
>> if (isDelimited) {
>> @@ -136,7 +139,8 @@ public class RecordIterator {
>> }
>>
>> public boolean hasNext() {
>> - return nextLine != null && !(eof.equals(nextLine.substring(0,1)) && 1 == nextLine.length());
>> + //return nextLine != null && !(eof.equals(nextLine.substring(0,1)) && 1 == nextLine.length());
>> + return nextLine != null && !((nextLine.contains(eof) ) );
>
> Same as last paragraph.
>
>
>