diff --git a/gradle.properties b/gradle.properties index 38ea9c4..5da3566 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ group = org.xbib name = marc -version = 2.9.15 +version = 2.9.16 org.gradle.warning.mode = ALL diff --git a/src/main/java/org/xbib/marc/xml/MarcXchangeWriter.java b/src/main/java/org/xbib/marc/xml/MarcXchangeWriter.java index 784a15c..204e6bd 100644 --- a/src/main/java/org/xbib/marc/xml/MarcXchangeWriter.java +++ b/src/main/java/org/xbib/marc/xml/MarcXchangeWriter.java @@ -348,8 +348,12 @@ public class MarcXchangeWriter extends MarcContentHandler implements Flushable, if (field.isControl()) { String value = field.getValue(); if (value == null || value.isEmpty()) { - // the control field is disguised as a data field, try lookup value in first subfield of " " - value = field.getFirstSubfieldValue(" "); + // the control field is disguised as a data field, try lookup value in first subfield of "_" + value = field.getFirstSubfieldValue("_"); + // if no value, maybe " "? + if (value == null || value.isEmpty()) { + value = field.getFirstSubfieldValue(" "); + } // still no value? Then it is some exotic like MAB with subfield "a"? if (value == null || value.isEmpty()) { value = field.getFirstSubfieldValue("a");